我想使用utl_file包通过oracle存储过程将file.txt中的数据发送到数据库中的表,
file.txt包含:
QRIFR6M Index,BID,0.7875, aaa
QRIFR9M Index,BID,0.8625, bbb
QRIFR1Y Index,BID,0.975, ccc
QRIFROVN Index,ASK,0.74375, ddd
QRIFR1W Index,ASK,0.78125, hhh
QRIFR1M Index,ASK,0.90625, hhh
我写了这段代码来打开文件并关闭它,但现在如何读取数据?在哪里写入读取和发送数据的代码?我必须使用数组或有更好的解决方案?
CREATE DIRECTORY sampledata AS 'c:sampledata';
declare
f utl_file.file_type;
s varchar2(200);
begin
f := utl_file.fopen('SAMPLEDATA','test.txt','R');
utl_file.get_line(f,s);
utl_file.fclose(f);
dbms_output.put_line(s);
end;
谢谢和问候
答案 0 :(得分:2)
如果你想留在“oracle环境”(只有sql和plsql - 没有批处理文件),那么你可以考虑使用“外部表”。这些允许您读取文件,就像它是一个表
http://docs.oracle.com/cd/B19306_01/server.102/b14215/et_concepts.htm
http://www.adp-gmbh.ch/ora/misc/ext_table.html
答案 1 :(得分:1)
我建议使用SQL * Loader。请参阅此FAQ。 utl_file.get_line
很好,但您必须拆分输入以获取表插入的值。