2016-11-17 6 views
0

У меня есть внешняя таблица определяется как:Невозможно запросить внешнюю таблицу в виде сценария из SQL Developer

CREATE TABLE EXAM_BDE_ventes (
    customerNumber varchar(255), 
    clerkId varchar(255), 
    productId varchar(255), 
    saleDate varchar(255), 
    factoryId varchar(255) 
) 
ORGANIZATION EXTERNAL 
(TYPE ORACLE_LOADER 
    DEFAULT DIRECTORY mydirectory 
    ACCESS PARAMETERS 
    (
     RECORDS DELIMITED BY newline 
     SKIP 0 
     CHARACTERSET UTF8 
     BADFILE logs:'ventes.txt.bad' 
     LOGFILE logs:'ventes.txt.log' 
     FIELDS TERMINATED BY ';' 
     OPTIONALLY ENCLOSED BY '"' 
    ) 
LOCATION ('LightSaberInc.txt')) 
REJECT LIMIT UNLIMITED; 

The LightSaberInc.txt file is here, и имеет около 75K строк.

Если я запрашиваю эту таблицу в качестве заявления (Ctrl + Enter) можно просмотреть данные из таблицы:

working

Но когда я запускаю его как сценарий (F5) я не вижу ничего в окне вывода сценария:

not working

в журнале не показывает ошибку.

Я думаю, что эта странная ошибка скрывает ошибку, в то время как я импортировал CSV. Эта ошибка вызывает другие проблемы позже в моем коде, например, номера не распознаются должным образом, когда я использую to_number().

Почему я не могу запросить внешнюю таблицу из сценария?

+0

Как вы импортировали данные и какую таблицу? –

+0

Я отредактировал свое сообщение с запросом, который я делаю, чтобы создать таблицу и импортировать данные. – Chuck

+0

Я не могу дублировать это в 4.2.0, я получаю ожидаемые результаты в окне вывода сценария. Какую версию вы используете? Можете ли вы запускать другие запросы (даже 'select * from dual') в качестве скрипта? Я предполагаю, что вы попробовали отказаться и перезапустить SQL Developer, чтобы узнать, сохраняется ли это поведение ... –

ответ

1

Хорошо, поэтому на самом деле в сценарии мне нужно было указать '\r\n вместо newline.

Я думаю, файл был создан с использованием ОС, которая не использует значение newline, чтобы указать новую строку, но вместо этого '\r\n.

+0

Я не уверен, как вы получили результаты с помощью оператора выполнения. Рад, что вы все решили. –