Direct path insert via db link
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
add a comment |
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
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
add a comment |
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
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
sql oracle insert append dblink
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
add a comment |
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
add a comment |
2 Answers
2
active
oldest
votes
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.
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
add a comment |
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;
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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.
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
add a comment |
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.
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
add a comment |
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.
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.
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
add a comment |
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
add a comment |
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;
add a comment |
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;
add a comment |
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;
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;
answered Nov 23 at 7:20
psk
11
11
add a comment |
add a comment |
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
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