Отправка данных в файл file.txt с помощью хранимой процедуры oracle с использованием пакета utl_file - PullRequest
2 голосов
/ 15 января 2012

Я хочу отправить данные из файла file.txt в таблицу в базе данных с помощью процедуры хранения Oracle, используя пакет utl_file,

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;

Спасибо и С уважением

Ответы [ 2 ]

2 голосов
/ 15 января 2012

Если вы хотите остаться в «среде Oracle» (только sql и plsql - без пакетных файлов), то вы можете рассмотреть возможность использования «Внешних таблиц». Они позволяют читать файл, как если бы он был таблицей.
http://docs.oracle.com/cd/B19306_01/server.102/b14215/et_concepts.htm
http://www.adp -gmbh.ch / ора / разное / ext_table.html

1 голос
/ 15 января 2012

Я бы рекомендовал вместо этого использовать SQL * Loader.Смотрите это FAQ на нем.utl_file.get_line нормально, но вам придется разделить ввод, чтобы получить значения для вставок в таблицу.

...