ORA-29913: ошибка при выполнении вызова ODCIEXTTABLEOPEN - PullRequest
0 голосов
/ 22 мая 2018

Я создаю внешнюю таблицу, используя схему hr, но получаю ошибки

"ORA-29913: ошибка при выполнении вызова ODCIEXTTABLEOPEN ORA-29400: ошибка картриджа данных KUP-00554: ошибка при анализе доступапараметры KUP-01005: синтаксическая ошибка: обнаружен «отсутствует»: ожидается один из столбцов: «, (« KUP-01007: в строке 4, столбец 3 29913. 00000 - «ошибка при выполнении вызова% s» * Причина: выполнениеуказанный вызов вызвал ошибку. * Действие. Изучите сообщения об ошибках и выполните соответствующие действия. "

---------------- Мой код -------------------

create directory ex_tab as 'C:\My Works\External Table';


create table strecords (
st_id number(4),
st_name varchar(10),
schl_name varchar(5),
st_city varchar(15),
st_year number(4)
)
ORGANIZATION EXTERNAL
(TYPE oracle_loader
 DEFAULT DIRECTORY ex_tab
 ACCESS PARAMETERS
 (
  RECORDS DELIMITED BY newline
  FIELDS TERMINATED BY ',' 
  REJECT ROWS WITH ALL NULL FIELDS
  MISSING FIELDS VALUES ARE NULL
  (
    st_id number(4),
    st_name char(10),
    schl_name char(5),
    st_city char(15),
    st_year number(4)
  )
 )
 LOCATION ('strecords.txt')
);

desc strecords;

select * from strecords;

Это мой код, пожалуйста, проверьте его и просмотрите его.

Ответы [ 2 ]

0 голосов
/ 22 мая 2018

У вас есть несколько вопросов здесь.Непосредственная причина, вызывающая вашу проблему, состоит в том, что у вас есть пункты в неправильном порядке , но у вас также есть MISSING FIELDS вместо MISSING FIELD:

...
 ACCESS PARAMETERS
 (
  RECORDS DELIMITED BY newline
  FIELDS TERMINATED BY ',' 
  MISSING FIELD VALUES ARE NULL
  REJECT ROWS WITH ALL NULL FIELDS
  (
...

Тогда ваш содержимое списка полей имеет недопустимые типы данных для этой части оператора;Вы можете просто опустить это полностью в этом случае, так как они соответствуют определению столбца таблицы.

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

Так что вы можете упростить его до:

create table strecords (
st_id number(4),
st_name varchar(10),
schl_name varchar(5),
st_city varchar(15),
st_year number(4)
)
ORGANIZATION EXTERNAL
(TYPE oracle_loader
 DEFAULT DIRECTORY ex_tab
 ACCESS PARAMETERS
 (
  RECORDS DELIMITED BY newline
  FIELDS TERMINATED BY ',' 
  MISSING FIELD VALUES ARE NULL
  REJECT ROWS WITH ALL NULL FIELDS
 )
 LOCATION ('strecords.txt')
);
0 голосов
/ 22 мая 2018

Некоторые операции, необходимые для ошибки Oracle, под названием

Выбор из внешней таблицы возвращает ошибки ORA-29913 ORA-29400 KUP-554 KUP-1005 (идентификатор документа 302672.1)

При создании внешней таблицы параметры доступа должны быть указаны в следующем порядке:

  • Комментарии
  • Информация о формате записи
  • Определения полей

Укажите комментарии, информацию о формате записи и определения полей в правильном порядке.Даже внутри Info формата Record предложение «Records delimited by ...» должно предшествовать любому другому предложению.

Для получения дополнительной информации см. пункт access_parameters .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...