【问题标题】:Sending data in a file.txt by oracle stored procedure using utl_file packageoracle存储过程使用utl_file包发送file.txt中的数据
【发布时间】:2012-02-10 16:05:12
【问题描述】:

我想通过 oracle 存储过程使用 utl_file 包将 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;

感谢和问候

【问题讨论】:

    标签: encoding database packages oracle


    【解决方案1】:

    我建议改用 SQL*Loader。看到这个FAQ就可以了。 utl_file.get_line 很好,但是您必须拆分输入以获取表格插入的值。

    【讨论】:

      【解决方案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

      【讨论】:

        猜你喜欢
        • 2011-02-20
        • 1970-01-01
        • 2014-05-07
        • 1970-01-01
        • 2013-02-06
        • 1970-01-01
        • 1970-01-01
        • 2014-06-27
        • 2012-10-13
        相关资源
        最近更新 更多