2013-02-22 3 views
0

Привет друзья я попытался загрузить данные из плоского файла во внешний файл, используя oralce_loader драйвер доступа мой кодвнешний стол в оракуле?

create table test_ext (
    id_1 varchar(35), 
    emp_name varchar(25), 
    e_mail varchar(25)) 
organization external (
    type oracle_loader default directory new_dir access parameters 
     (records delimited by newline fields(
      id_1 char(30), 
      e_name char(25), 
      mail char(25))) 
    location('test.csv')) reject limit unlimited; 

и мой файл данных:

"E.FIRST_NAME||','||E.EMAIL||','||MANAGER_ID" 
----------------------------------------------- 
"Jennifer,JWHALEN,101" 
"Michael,MHARTSTE,100" 
"Susan,SMAVRIS,101" 
"Hermann,HBAER,101" 
"Shelley,SHIGGINS,101" 
"William,WGIETZ,205" 
"Steven,SKING," 
"Neena,NKOCHHAR,100" 
"Lex,LDEHAAN,100" 
"Alexander,AHUNOLD,102" 
"Bruce,BERNST,103" 
"David,DAUSTIN,103" 
"Valli,VPATABAL,103" 
"Diana,DLORENTZ,103" 
"Nancy,NGREENBE,101" 
"Daniel,DFAVIET,108" 
"John,JCHEN,108" 

во время запуска, что выше запрос я получил

**ORA-29913: error in executing ODCIEXTTABLEOPEN callout 
ORA-29400: data cartridge error 
KUP-04043: table column not found in external source: EMP_NAME 
29913. 00000 - "error in executing %s callout" 
*Cause: The execution of the specified callout caused an error. 
*Action: Examine the error messages take appropriate action.** 

Я пробовал так много всего, но не могу.

+0

Проверьте ввод! Вы создаете таблицу со столбцом: emp_name, но в параметрах доступа, которые вы называете: e_name –

+0

ya Я думаю, что это не проблема! –

ответ

1

во-первых, ваш файл csv выглядит неправильно.

"Alexander,AHUNOLD,102" 

удалить все цитаты, в противном случае это будет выглядеть как одно поле.

Во-вторых, вы используете синтаксис «поля», предлагая вам файл csv с фиксированной длиной, но ваш файл данных разделяется запятой. поэтому я думаю, что вы хотите, чтобы исправить CSV-файл, чтобы удалить кавычки и две паразитные строки заголовка и изменить таблицу DDL для:

create table test_ext (
    id_1 varchar(35), 
    emp_name varchar(25), 
    e_mail varchar(25)) 
organization external (
    type oracle_loader default directory new_dir access parameters 
     ( 
     records delimited by newline 
     fields terminated by ',' optionally enclosed by '"') 
    location('test.csv')) reject limit unlimited; 

например:

SQL> host cat test.csv 
Jennifer,JWHALEN,101 
Michael,MHARTSTE,100 
Susan,SMAVRIS,101 
Hermann,HBAER,101 
Shelley,SHIGGINS,101 
William,WGIETZ,205 
Steven,SKING, 
Neena,NKOCHHAR,100 
Lex,LDEHAAN,100 
Alexander,AHUNOLD,102 
Bruce,BERNST,103 
David,DAUSTIN,103 
Valli,VPATABAL,103 
Diana,DLORENTZ,103 
Nancy,NGREENBE,101 
Daniel,DFAVIET,108 
John,JCHEN,108 
SQL> create table test_ext (
    2  id_1 varchar(35), 
    3  emp_name varchar(25), 
    4  e_mail varchar(25)) 
    5 organization external (
    6  type oracle_loader default directory new_dir access parameters 
    7   (
    8   records delimited by newline 
    9   fields terminated by ',' optionally enclosed by '"') 
10  location('test.csv')) reject limit unlimited; 

Table created. 

SQL> select * from test_ext; 

ID_1        EMP_NAME     E_MAIL 
----------------------------------- ------------------------- ------------------------- 
Jennifer       JWHALEN     101 
Michael        MHARTSTE     100 
Susan        SMAVRIS     101 
Hermann        HBAER      101 
Shelley        SHIGGINS     101 
William        WGIETZ     205 
Neena        NKOCHHAR     100 
Lex         LDEHAAN     100 
...etc... 
+0

Я такая же проблема, с которой я столкнулся сейчас ... как я могу устранить «во всех записях!» –

+0

@Thiyagu как вы создаете csv? Похоже, что вы делаете поле выбора || ',' || ... из таблицы ? Вы можете показать, что sql – DazzaL

+0

ya это может генерировать csv: выберите e.first_name || ',' || e.email от сотрудников e, но у меня есть этот csv с помощью опции экспорта в sql Developer –

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