1

I am running a PL/SQL code on oracle which is supposed to insert data from table 'A' into a table 'B' along with a unique sequence being returned from a function. My sql query is like this

SEQUENCE_COLUMN:=SEQ_COL_FUNC('WTPARTMASTER', 'ELEM10',SEQUENCE_COLUMN);
sequence_value:=seq_val_func('WTPARTMASTER', 'ELEM10',sequence_value);
dest_Columns:=dest_Columns || ',' || sequence_column;

QUERY_TEST :=  'insert into wbm.' || DESTINATION_TABLE || '(' || DEST_COLUMNS || ') select ' || SRC_COLUMNS || ', :value from ' || SOURCE_TABLE;

execute immediate query_test USING sequence_value;

Now the issue is in this way, select statement brings whole data in one go and I get same sequence no. in each row instaead of unique sequence number.

How can manipulate the query here such that I get the data as well as sequence inserted in my destination table one by one such that sequence no is unique.

Thanks for your help.

4

2 に答える 2

-1

これはおそらくあなたが望むものだと思います:

SEQUENCE_COLUMN:=SEQ_COL_FUNC('WTPARTMASTER', 'ELEM10',SEQUENCE_COLUMN);
dest_Columns:=dest_Columns || ',' || sequence_column;

QUERY_TEST :=  'insert into wbm.' || DESTINATION_TABLE || '(' || DEST_COLUMNS || ') select ' || SRC_COLUMNS || ', seq_val_func('WTPARTMASTER', 'ELEM10',sequence_value) from ' || SOURCE_TABLE;

execute immediate query_test;

これにより、挿入された各レコードに対して seq_val_func が呼び出されます。

于 2013-12-24T17:58:40.930 に答える