Direct path insert via db link












1














i have two databases I will call LOCAL and REMOTE. I understand and have confirmed that running the following from LOCAL will not result in direct path insert:



INSERT /*+ APPEND */ INTO REMOTE_TABLE@REMOTEDB
SELECT * FROM LOCAL_TABLE;


but running the following from REMOTE does result in a direct path insert:



INSERT /*+ APPEND */ INTO REMOTE_TABLE
SELECT * FROM LOCAL_TABLE@LOCALDB;


My problem is that I need to run the process from my LOCAL database. So I created a procedure on the remote database as follows:



CREATE OR REPLACE PROCEDURE MY_LOAD AS
BEGIN
INSERT /*+ APPEND */ INTO REMOTE_TABLE
SELECT * FROM LOCAL_TABLE@LOCALDB;
END;


And I ran the procedure from LOCAL database:



BEGIN
MY_LOAD@REMOTEDB;
END;


But it does not do a direct path insert.



Can anyone confirm that yes, this will not do a direct path insert? Can anyone offer an alternative way to do direct path insert?



Big picture requirements are to copy all or a subset of rows from a partition in LOCAL database to a partition in REMOTE database. The destination table is in LOGGING mode, so the plan is to direct load INSERT into a NOLOGGING staging table on the REMOTE database and then swap this table with the destination partition.










share|improve this question




















  • 1




    What do you mean by direct load the query you wrote to call procedure is a direct load itself except the fact that internally it is processing from (select * from table) to insert as append operation.
    – Himanshu Ahuja
    Nov 22 at 21:21










  • @HimanshuAhuja, by direct load I mean this: docs.oracle.com/cd/A58617_01/server.804/a58227/ch_dlins.htm When it does not do a direct load it does a 'conventional load'.
    – Salaam Yitbarek
    Nov 22 at 21:23












  • Actually the thing is you can create a view as (select * from table ) to direct load in the prior case insert is a append mode load. Only creating from select works as a direct load
    – Himanshu Ahuja
    Nov 22 at 21:25












  • And i dont understand you have so much in this article why not you first understand from this article itself parallel insert load might be handy in your case as you want direct load and you can try nologging as well to remove logs
    – Himanshu Ahuja
    Nov 22 at 21:29
















1














i have two databases I will call LOCAL and REMOTE. I understand and have confirmed that running the following from LOCAL will not result in direct path insert:



INSERT /*+ APPEND */ INTO REMOTE_TABLE@REMOTEDB
SELECT * FROM LOCAL_TABLE;


but running the following from REMOTE does result in a direct path insert:



INSERT /*+ APPEND */ INTO REMOTE_TABLE
SELECT * FROM LOCAL_TABLE@LOCALDB;


My problem is that I need to run the process from my LOCAL database. So I created a procedure on the remote database as follows:



CREATE OR REPLACE PROCEDURE MY_LOAD AS
BEGIN
INSERT /*+ APPEND */ INTO REMOTE_TABLE
SELECT * FROM LOCAL_TABLE@LOCALDB;
END;


And I ran the procedure from LOCAL database:



BEGIN
MY_LOAD@REMOTEDB;
END;


But it does not do a direct path insert.



Can anyone confirm that yes, this will not do a direct path insert? Can anyone offer an alternative way to do direct path insert?



Big picture requirements are to copy all or a subset of rows from a partition in LOCAL database to a partition in REMOTE database. The destination table is in LOGGING mode, so the plan is to direct load INSERT into a NOLOGGING staging table on the REMOTE database and then swap this table with the destination partition.










share|improve this question




















  • 1




    What do you mean by direct load the query you wrote to call procedure is a direct load itself except the fact that internally it is processing from (select * from table) to insert as append operation.
    – Himanshu Ahuja
    Nov 22 at 21:21










  • @HimanshuAhuja, by direct load I mean this: docs.oracle.com/cd/A58617_01/server.804/a58227/ch_dlins.htm When it does not do a direct load it does a 'conventional load'.
    – Salaam Yitbarek
    Nov 22 at 21:23












  • Actually the thing is you can create a view as (select * from table ) to direct load in the prior case insert is a append mode load. Only creating from select works as a direct load
    – Himanshu Ahuja
    Nov 22 at 21:25












  • And i dont understand you have so much in this article why not you first understand from this article itself parallel insert load might be handy in your case as you want direct load and you can try nologging as well to remove logs
    – Himanshu Ahuja
    Nov 22 at 21:29














1












1








1







i have two databases I will call LOCAL and REMOTE. I understand and have confirmed that running the following from LOCAL will not result in direct path insert:



INSERT /*+ APPEND */ INTO REMOTE_TABLE@REMOTEDB
SELECT * FROM LOCAL_TABLE;


but running the following from REMOTE does result in a direct path insert:



INSERT /*+ APPEND */ INTO REMOTE_TABLE
SELECT * FROM LOCAL_TABLE@LOCALDB;


My problem is that I need to run the process from my LOCAL database. So I created a procedure on the remote database as follows:



CREATE OR REPLACE PROCEDURE MY_LOAD AS
BEGIN
INSERT /*+ APPEND */ INTO REMOTE_TABLE
SELECT * FROM LOCAL_TABLE@LOCALDB;
END;


And I ran the procedure from LOCAL database:



BEGIN
MY_LOAD@REMOTEDB;
END;


But it does not do a direct path insert.



Can anyone confirm that yes, this will not do a direct path insert? Can anyone offer an alternative way to do direct path insert?



Big picture requirements are to copy all or a subset of rows from a partition in LOCAL database to a partition in REMOTE database. The destination table is in LOGGING mode, so the plan is to direct load INSERT into a NOLOGGING staging table on the REMOTE database and then swap this table with the destination partition.










share|improve this question















i have two databases I will call LOCAL and REMOTE. I understand and have confirmed that running the following from LOCAL will not result in direct path insert:



INSERT /*+ APPEND */ INTO REMOTE_TABLE@REMOTEDB
SELECT * FROM LOCAL_TABLE;


but running the following from REMOTE does result in a direct path insert:



INSERT /*+ APPEND */ INTO REMOTE_TABLE
SELECT * FROM LOCAL_TABLE@LOCALDB;


My problem is that I need to run the process from my LOCAL database. So I created a procedure on the remote database as follows:



CREATE OR REPLACE PROCEDURE MY_LOAD AS
BEGIN
INSERT /*+ APPEND */ INTO REMOTE_TABLE
SELECT * FROM LOCAL_TABLE@LOCALDB;
END;


And I ran the procedure from LOCAL database:



BEGIN
MY_LOAD@REMOTEDB;
END;


But it does not do a direct path insert.



Can anyone confirm that yes, this will not do a direct path insert? Can anyone offer an alternative way to do direct path insert?



Big picture requirements are to copy all or a subset of rows from a partition in LOCAL database to a partition in REMOTE database. The destination table is in LOGGING mode, so the plan is to direct load INSERT into a NOLOGGING staging table on the REMOTE database and then swap this table with the destination partition.







sql oracle insert append dblink






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 23 at 16:46

























asked Nov 22 at 20:56









Salaam Yitbarek

62




62








  • 1




    What do you mean by direct load the query you wrote to call procedure is a direct load itself except the fact that internally it is processing from (select * from table) to insert as append operation.
    – Himanshu Ahuja
    Nov 22 at 21:21










  • @HimanshuAhuja, by direct load I mean this: docs.oracle.com/cd/A58617_01/server.804/a58227/ch_dlins.htm When it does not do a direct load it does a 'conventional load'.
    – Salaam Yitbarek
    Nov 22 at 21:23












  • Actually the thing is you can create a view as (select * from table ) to direct load in the prior case insert is a append mode load. Only creating from select works as a direct load
    – Himanshu Ahuja
    Nov 22 at 21:25












  • And i dont understand you have so much in this article why not you first understand from this article itself parallel insert load might be handy in your case as you want direct load and you can try nologging as well to remove logs
    – Himanshu Ahuja
    Nov 22 at 21:29














  • 1




    What do you mean by direct load the query you wrote to call procedure is a direct load itself except the fact that internally it is processing from (select * from table) to insert as append operation.
    – Himanshu Ahuja
    Nov 22 at 21:21










  • @HimanshuAhuja, by direct load I mean this: docs.oracle.com/cd/A58617_01/server.804/a58227/ch_dlins.htm When it does not do a direct load it does a 'conventional load'.
    – Salaam Yitbarek
    Nov 22 at 21:23












  • Actually the thing is you can create a view as (select * from table ) to direct load in the prior case insert is a append mode load. Only creating from select works as a direct load
    – Himanshu Ahuja
    Nov 22 at 21:25












  • And i dont understand you have so much in this article why not you first understand from this article itself parallel insert load might be handy in your case as you want direct load and you can try nologging as well to remove logs
    – Himanshu Ahuja
    Nov 22 at 21:29








1




1




What do you mean by direct load the query you wrote to call procedure is a direct load itself except the fact that internally it is processing from (select * from table) to insert as append operation.
– Himanshu Ahuja
Nov 22 at 21:21




What do you mean by direct load the query you wrote to call procedure is a direct load itself except the fact that internally it is processing from (select * from table) to insert as append operation.
– Himanshu Ahuja
Nov 22 at 21:21












@HimanshuAhuja, by direct load I mean this: docs.oracle.com/cd/A58617_01/server.804/a58227/ch_dlins.htm When it does not do a direct load it does a 'conventional load'.
– Salaam Yitbarek
Nov 22 at 21:23






@HimanshuAhuja, by direct load I mean this: docs.oracle.com/cd/A58617_01/server.804/a58227/ch_dlins.htm When it does not do a direct load it does a 'conventional load'.
– Salaam Yitbarek
Nov 22 at 21:23














Actually the thing is you can create a view as (select * from table ) to direct load in the prior case insert is a append mode load. Only creating from select works as a direct load
– Himanshu Ahuja
Nov 22 at 21:25






Actually the thing is you can create a view as (select * from table ) to direct load in the prior case insert is a append mode load. Only creating from select works as a direct load
– Himanshu Ahuja
Nov 22 at 21:25














And i dont understand you have so much in this article why not you first understand from this article itself parallel insert load might be handy in your case as you want direct load and you can try nologging as well to remove logs
– Himanshu Ahuja
Nov 22 at 21:29




And i dont understand you have so much in this article why not you first understand from this article itself parallel insert load might be handy in your case as you want direct load and you can try nologging as well to remove logs
– Himanshu Ahuja
Nov 22 at 21:29












2 Answers
2






active

oldest

votes


















0














You mean Direct-Path INSERT, this feature has a number of restriction, one of them is




A transaction containing a direct-path INSERT statement cannot be or become distributed.




which exactly describes your observation. You'd have to initiate the transaction from a connection to the REMOTE site, so you'll direct path INSERT in a local table getting data via DB link.



Your approach with remote procedure call doesn't work as this opens a distributed transactions.






share|improve this answer





















  • Thanks, yes, I suppose I foolishly thought that would be a workaround. Do you have any suggestions for another workaround. The problem is that the code is on the local database. It does a direct path insert and partition exchange on the local database, then wants to send data to the remote database to do the same thing. If I have the code on the remote database, then can't do a direct path insert and partition exchange on local. I suppose one way is to send a message to the remote database to get it to start a scheduled job.
    – Salaam Yitbarek
    Nov 23 at 16:39










  • Yes this would work. Define a scheduler job on the remote DB and run it when required.
    – Marmite Bomber
    Nov 23 at 19:24



















0














CREATE OR REPLACE PROCEDURE MY_LOAD
AS
BEGIN
INSERT /*+ APPEND */
INTO REMOTE_TABLE
(COLUM1,COULMN2
)
SELECT COLUMN1,COULMN2 FROM LOCAL_TABLE@LOCALDB;
END;
---OR---------
CREATE OR REPLACE PROCEDURE MY_LOAD
AS
TYPE T_BULK_COLLECT
IS
TABLE OF REMOTE_TABLE%ROWTYPE;
L_BULK T_BULK_COLLECT;
CURSOR C1
IS
SELECT * FROM LOCAL_TABLE@LOCALDB;
BEGIN
OPEN C1;
LOOP
FETCH C1 BULK COLLECT INTO L_BULK LIMIT 1000;
FORALL I IN 1 .. L_BULK.COUNT
INSERT INTO REMOTE_TABLE VALUES L_BULK;
(I );
EXIT
WHEN C1%NOTFOUND;
END LOOP;
CLOSE C1;
END;





share|improve this answer





















    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53437885%2fdirect-path-insert-via-db-link%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    2 Answers
    2






    active

    oldest

    votes








    2 Answers
    2






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0














    You mean Direct-Path INSERT, this feature has a number of restriction, one of them is




    A transaction containing a direct-path INSERT statement cannot be or become distributed.




    which exactly describes your observation. You'd have to initiate the transaction from a connection to the REMOTE site, so you'll direct path INSERT in a local table getting data via DB link.



    Your approach with remote procedure call doesn't work as this opens a distributed transactions.






    share|improve this answer





















    • Thanks, yes, I suppose I foolishly thought that would be a workaround. Do you have any suggestions for another workaround. The problem is that the code is on the local database. It does a direct path insert and partition exchange on the local database, then wants to send data to the remote database to do the same thing. If I have the code on the remote database, then can't do a direct path insert and partition exchange on local. I suppose one way is to send a message to the remote database to get it to start a scheduled job.
      – Salaam Yitbarek
      Nov 23 at 16:39










    • Yes this would work. Define a scheduler job on the remote DB and run it when required.
      – Marmite Bomber
      Nov 23 at 19:24
















    0














    You mean Direct-Path INSERT, this feature has a number of restriction, one of them is




    A transaction containing a direct-path INSERT statement cannot be or become distributed.




    which exactly describes your observation. You'd have to initiate the transaction from a connection to the REMOTE site, so you'll direct path INSERT in a local table getting data via DB link.



    Your approach with remote procedure call doesn't work as this opens a distributed transactions.






    share|improve this answer





















    • Thanks, yes, I suppose I foolishly thought that would be a workaround. Do you have any suggestions for another workaround. The problem is that the code is on the local database. It does a direct path insert and partition exchange on the local database, then wants to send data to the remote database to do the same thing. If I have the code on the remote database, then can't do a direct path insert and partition exchange on local. I suppose one way is to send a message to the remote database to get it to start a scheduled job.
      – Salaam Yitbarek
      Nov 23 at 16:39










    • Yes this would work. Define a scheduler job on the remote DB and run it when required.
      – Marmite Bomber
      Nov 23 at 19:24














    0












    0








    0






    You mean Direct-Path INSERT, this feature has a number of restriction, one of them is




    A transaction containing a direct-path INSERT statement cannot be or become distributed.




    which exactly describes your observation. You'd have to initiate the transaction from a connection to the REMOTE site, so you'll direct path INSERT in a local table getting data via DB link.



    Your approach with remote procedure call doesn't work as this opens a distributed transactions.






    share|improve this answer












    You mean Direct-Path INSERT, this feature has a number of restriction, one of them is




    A transaction containing a direct-path INSERT statement cannot be or become distributed.




    which exactly describes your observation. You'd have to initiate the transaction from a connection to the REMOTE site, so you'll direct path INSERT in a local table getting data via DB link.



    Your approach with remote procedure call doesn't work as this opens a distributed transactions.







    share|improve this answer












    share|improve this answer



    share|improve this answer










    answered Nov 23 at 0:27









    Marmite Bomber

    7,1453829




    7,1453829












    • Thanks, yes, I suppose I foolishly thought that would be a workaround. Do you have any suggestions for another workaround. The problem is that the code is on the local database. It does a direct path insert and partition exchange on the local database, then wants to send data to the remote database to do the same thing. If I have the code on the remote database, then can't do a direct path insert and partition exchange on local. I suppose one way is to send a message to the remote database to get it to start a scheduled job.
      – Salaam Yitbarek
      Nov 23 at 16:39










    • Yes this would work. Define a scheduler job on the remote DB and run it when required.
      – Marmite Bomber
      Nov 23 at 19:24


















    • Thanks, yes, I suppose I foolishly thought that would be a workaround. Do you have any suggestions for another workaround. The problem is that the code is on the local database. It does a direct path insert and partition exchange on the local database, then wants to send data to the remote database to do the same thing. If I have the code on the remote database, then can't do a direct path insert and partition exchange on local. I suppose one way is to send a message to the remote database to get it to start a scheduled job.
      – Salaam Yitbarek
      Nov 23 at 16:39










    • Yes this would work. Define a scheduler job on the remote DB and run it when required.
      – Marmite Bomber
      Nov 23 at 19:24
















    Thanks, yes, I suppose I foolishly thought that would be a workaround. Do you have any suggestions for another workaround. The problem is that the code is on the local database. It does a direct path insert and partition exchange on the local database, then wants to send data to the remote database to do the same thing. If I have the code on the remote database, then can't do a direct path insert and partition exchange on local. I suppose one way is to send a message to the remote database to get it to start a scheduled job.
    – Salaam Yitbarek
    Nov 23 at 16:39




    Thanks, yes, I suppose I foolishly thought that would be a workaround. Do you have any suggestions for another workaround. The problem is that the code is on the local database. It does a direct path insert and partition exchange on the local database, then wants to send data to the remote database to do the same thing. If I have the code on the remote database, then can't do a direct path insert and partition exchange on local. I suppose one way is to send a message to the remote database to get it to start a scheduled job.
    – Salaam Yitbarek
    Nov 23 at 16:39












    Yes this would work. Define a scheduler job on the remote DB and run it when required.
    – Marmite Bomber
    Nov 23 at 19:24




    Yes this would work. Define a scheduler job on the remote DB and run it when required.
    – Marmite Bomber
    Nov 23 at 19:24













    0














    CREATE OR REPLACE PROCEDURE MY_LOAD
    AS
    BEGIN
    INSERT /*+ APPEND */
    INTO REMOTE_TABLE
    (COLUM1,COULMN2
    )
    SELECT COLUMN1,COULMN2 FROM LOCAL_TABLE@LOCALDB;
    END;
    ---OR---------
    CREATE OR REPLACE PROCEDURE MY_LOAD
    AS
    TYPE T_BULK_COLLECT
    IS
    TABLE OF REMOTE_TABLE%ROWTYPE;
    L_BULK T_BULK_COLLECT;
    CURSOR C1
    IS
    SELECT * FROM LOCAL_TABLE@LOCALDB;
    BEGIN
    OPEN C1;
    LOOP
    FETCH C1 BULK COLLECT INTO L_BULK LIMIT 1000;
    FORALL I IN 1 .. L_BULK.COUNT
    INSERT INTO REMOTE_TABLE VALUES L_BULK;
    (I );
    EXIT
    WHEN C1%NOTFOUND;
    END LOOP;
    CLOSE C1;
    END;





    share|improve this answer


























      0














      CREATE OR REPLACE PROCEDURE MY_LOAD
      AS
      BEGIN
      INSERT /*+ APPEND */
      INTO REMOTE_TABLE
      (COLUM1,COULMN2
      )
      SELECT COLUMN1,COULMN2 FROM LOCAL_TABLE@LOCALDB;
      END;
      ---OR---------
      CREATE OR REPLACE PROCEDURE MY_LOAD
      AS
      TYPE T_BULK_COLLECT
      IS
      TABLE OF REMOTE_TABLE%ROWTYPE;
      L_BULK T_BULK_COLLECT;
      CURSOR C1
      IS
      SELECT * FROM LOCAL_TABLE@LOCALDB;
      BEGIN
      OPEN C1;
      LOOP
      FETCH C1 BULK COLLECT INTO L_BULK LIMIT 1000;
      FORALL I IN 1 .. L_BULK.COUNT
      INSERT INTO REMOTE_TABLE VALUES L_BULK;
      (I );
      EXIT
      WHEN C1%NOTFOUND;
      END LOOP;
      CLOSE C1;
      END;





      share|improve this answer
























        0












        0








        0






        CREATE OR REPLACE PROCEDURE MY_LOAD
        AS
        BEGIN
        INSERT /*+ APPEND */
        INTO REMOTE_TABLE
        (COLUM1,COULMN2
        )
        SELECT COLUMN1,COULMN2 FROM LOCAL_TABLE@LOCALDB;
        END;
        ---OR---------
        CREATE OR REPLACE PROCEDURE MY_LOAD
        AS
        TYPE T_BULK_COLLECT
        IS
        TABLE OF REMOTE_TABLE%ROWTYPE;
        L_BULK T_BULK_COLLECT;
        CURSOR C1
        IS
        SELECT * FROM LOCAL_TABLE@LOCALDB;
        BEGIN
        OPEN C1;
        LOOP
        FETCH C1 BULK COLLECT INTO L_BULK LIMIT 1000;
        FORALL I IN 1 .. L_BULK.COUNT
        INSERT INTO REMOTE_TABLE VALUES L_BULK;
        (I );
        EXIT
        WHEN C1%NOTFOUND;
        END LOOP;
        CLOSE C1;
        END;





        share|improve this answer












        CREATE OR REPLACE PROCEDURE MY_LOAD
        AS
        BEGIN
        INSERT /*+ APPEND */
        INTO REMOTE_TABLE
        (COLUM1,COULMN2
        )
        SELECT COLUMN1,COULMN2 FROM LOCAL_TABLE@LOCALDB;
        END;
        ---OR---------
        CREATE OR REPLACE PROCEDURE MY_LOAD
        AS
        TYPE T_BULK_COLLECT
        IS
        TABLE OF REMOTE_TABLE%ROWTYPE;
        L_BULK T_BULK_COLLECT;
        CURSOR C1
        IS
        SELECT * FROM LOCAL_TABLE@LOCALDB;
        BEGIN
        OPEN C1;
        LOOP
        FETCH C1 BULK COLLECT INTO L_BULK LIMIT 1000;
        FORALL I IN 1 .. L_BULK.COUNT
        INSERT INTO REMOTE_TABLE VALUES L_BULK;
        (I );
        EXIT
        WHEN C1%NOTFOUND;
        END LOOP;
        CLOSE C1;
        END;






        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 23 at 7:20









        psk

        11




        11






























            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.





            Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


            Please pay close attention to the following guidance:


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53437885%2fdirect-path-insert-via-db-link%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Contact image not getting when fetch all contact list from iPhone by CNContact

            count number of partitions of a set with n elements into k subsets

            A CLEAN and SIMPLE way to add appendices to Table of Contents and bookmarks