2016-08-16 3 views
-2

Я использую базу данных Oracle 9i. Я хочу извлечь данные из плоского файла (.txt), а затем вставить их в таблицу (на клиенте), используя не sql_loader, utl_file, внешнюю таблицу, sqldeveloper, жабу.Извлечь данные из плоского файла в таблицу

Пример плоского источника файла:

Allain Аналитик 13456 ...

King менеджер 98768 ...

+0

Примером плоского файла было бы полезно. И вы имеете в виду, что вы не хотите использовать какое-либо из этих программ? Есть ли что-нибудь, что у вас есть? – Gallus

+0

Я отредактировал мое сообщение. Я хочу использовать другое решение, чем sql_loader, utl_file, внешнюю таблицу, sqldeveloper, toad. – Goldray

+0

И можете ли вы определить это другое решение для нас. – XING

ответ

0

Это извлекает данные из file_name.csv файла и вставляет его в EX_TABLE

create table EX_TABLE(
         COL1 varchar2(13 BYTE) 
         ,COL2 varchar2(250 CHAR) 
         ,COL3 varchar2(210 CHAR) 
         ,COL4 varchar2(70 CHAR) 
         ) 
organization external 
(type oracle_loader 
default directory EXT_DIR 
access parameters 
(
    records delimited by newline 
    fields terminated by ',' 
    missing field values are null 
    reject rows with all null 
    fields(COL1 CHAR(13) 
     ,COL2 char(250) 
     ,COL3 char(210) 
     ,COL4 char(70) 
     ) 
) 

location ('file_name.csv') 
) 
reject limit unlimited 
; 
+0

Предполагается, что поля разделены запятой? Если посмотреть на файл примера, нет разделителя, поэтому он должен быть позиционным или что-то еще. – Gallus

+0

Да, это для файлов .csv. Ниже я ответил за простой .txt-файл. – Shine

0
CREATE TABLE EX_TABLE 
    ( COL1 varchar2(3 BYTE) 
         ,COL2 varchar2(3 CHAR) 
         ,COL3 varchar2(1 CHAR) 
         ,COL4 varchar2(10 CHAR) 
    ) 
    ORGANIZATION EXTERNAL 
    (TYPE ORACLE_LOADER 
     DEFAULT DIRECTORY DAT_DIR 
     ACCESS PARAMETERS 
     (RECORDS DELIMITED BY \n 
     CHARACTERSET JA16SJISTILDE BADFILE BAD_DIR : 'test_%p_%a.bad' LOGFILE LOG_DIR : 'test_%p_%a.log' READSIZE 10485760 FIELDS LRTRIM MISSING FIELD VALUES ARE NULL REJECT ROWS 
WITH ALL NULL FIELDS (COL1 (1: 3) CHAR(3) ,COL2 (4: 6) CHAR(3) ,COL3 (7: 7) CHAR(1) COL4 (8: 17) CHAR(10))) 
     LOCATION 
     ('STS.txt' 
     ) 
    ) 
    REJECT LIMIT UNLIMITED; 

Загрузка данных во внешнюю таблицу в зависимости от позиции в файле

Смежные вопросы