Как я могу проверить данные в контрольном файле? - PullRequest
1 голос
/ 24 января 2011

Учтите, что SQLLoader считывает файл входных данных из пути и загружает данные в таблицы на основе описаний, указанных в контрольном файле.Сначала создается таблица, которую нужно заполнить:

create table sql_loader_1 ( load_time date, field_1 Numeric, field_2 varchar2(10) 

Образец управляющего файла: load_1.ctl

load data 
infile 'load_1.dat' "str '\r\n'" 
insert into table sql_loader_1 
( 
 load_time sysdate, 
 field_2 position( 1:10),
 field_1 position(11:20)
) 

Обратите внимание, что позиции с 11 по 20 загружены в поле_1, а позиции с 1 по10 в поле_2.Поле load_time заполнено текущим временем (sysdate) загрузки.

Вот данные.Имя файла (load_1.dat) было указано с помощью инструкции infile в контрольном файле.

load_1.dat

0123456789abcdefghij
**********##########
foo         bar
here comes a very long line 
and the next is 
short 

Здесь я хочу проверить field_1 (числовой тип данных), поскольку файл данных содержит символьное значение (то есть) abcdefghij

1 Ответ

1 голос
/ 24 января 2011

Вы говорите, что хотите проверить field_1, но не ясно, какое действие вы ожидаете в случае неудачной проверки?

Две другие мысли:

  1. Рассматривали ли вы возможность использования опции BADFILE в контрольном файле для отклоненных строк?

  2. Вместо того чтобы заниматься преобразованием чисел в SQL-Loader, загрузите данные в виде текста и преобразуйте их в число / обработайте один раз в базе данных. Это может быть проще.

...