How to manage two OS Text files in UTL_FILE Package simultaneously?
I am using UTL_FILE Package in order to insert rows into my table from the OS text files.
It inserts the row in one of the column in the table successfully.
But when I change the code in following routine in order to insert two rows from the two OS text files, it fails and no row inserted in any column of the table.
Could someone assist what changes I will do in the following script in order to insert the rows in both the columns of the table from the two different OS Text files simultaneously?
The UTL_FILE_DIR parameter is set to * .
I am using Oracle 8.1.7.
Following is the procedure, which I am trying to insert the rows in two columns at a time:
l_file_handle1 := UTL_FILE.FOPEN('c:\Test\Result', 'System_Name.txt', 'r', 4000);
l_file_handle2 := UTL_FILE.FOPEN('c:\Test\Result',
'Machine.txt', 'r', 4000);
insert into test (Hostname,Machine) values(l_buffer1,l_buffer2);
when no_data_found then
when others then
which of the values is being inserted and which one not ?
IMHO, merging the two files and then loading them using SQL*Loader would be a better option. It will be more scalable than your code as it performs array inserts and will provide comprehensive errors in it's log file as to why any inserts failed. Otherwise, you're re-inventing the wheel.
Also, aren't you concerned that the files you are receiving are logically one single table in two files (one column per file)? Can you be sure that the order in which the rows appear in each file matches exactly so that you are getting a proper row, and not actually two columns for two unrelated records. I personally wouldn't accept files constructed in this manner.
Could some one send a UTL_FILE routine (sample), in which two OS text files reads at a same time & then inserted into the table.
This will be helpul form me.
Your exception block is catching exceptions here -- take it out and check what error is being raised.
Click Here to Expand Forum to Full Width