powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ошибка при создании внешней таблицы с помощью динамического sql
6 сообщений из 6, страница 1 из 1
ошибка при создании внешней таблицы с помощью динамического sql
    #40069418
Stravicki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребята, привет!
Очень нужна помощь. Создаю внешнюю таблицу с помощью динамического sql, и выдает ошибку на строчке
Код: plaintext
EXECUTE IMMEDIATE
ORA-00905: отсутствует ключевое слово .
Но если буду создавать обычным способом, то все работает нормально. В чем причина?

Вот это работает:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
CREATE TABLE ext_tab ("Дата" VARCHAR2(35), "Понедельник" VARCHAR2(20), "Вторник" VARCHAR2(20), "Среда" VARCHAR2(20),
                          "Четверг" VARCHAR2(20), "Пятница" VARCHAR2(20), "Суббота" VARCHAR2(20), "Воскресенье" VARCHAR2(20))
ORGANIZATION EXTERNAL
(TYPE ORACLE_LOADER
DEFAULT DIRECTORY STUD_PLSQL
ACCESS PARAMETERS
(RECORDS DELIMITED BY "!"
BADFILE 'mybadfile.bad'
LOGFILE 'mylogfile.log'
FIELDS TERMINATED BY "%"
MISSING FIELD VALUES ARE NULL
REJECT ROWS WITH ALL NULL FIELDS
)
LOCATION ('myfile.txt'))
REJECT LIMIT UNLIMITED;


А этот код выдает ошибку:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
BEGIN
EXECUTE IMMEDIATE 
'CREATE TABLE ext_tab("Дата" VARCHAR2(35), "Понедельник" VARCHAR2(20), "Вторник" VARCHAR2(20), "Среда" VARCHAR2(20),
                          "Четверг" VARCHAR2(20), "Пятница" VARCHAR2(20), "Суббота" VARCHAR2(20), "Воскресенье" VARCHAR2(20))
ORGANIZATION EXTERNAL
(TYPE ORACLE_LOADER DEFAULT
DIRECTORY STUD_PLSQL
ACCESS PARAMETERS
(RECORDS DELIMITED BY "!"
BADFILE "mybadfile.bad"
LOGFILE "mylogfile.log"
FIELDS TERMINATED BY "%"
MISSING FIELD VALUES ARE NULL
REJECT ROWS WITH ALL NULL FIELDS)
LOCATION ("myfile.txt"))
REJECT LIMIT UNLIMITED';
END;

Пробовал еще так, но выдает ту же ошибку:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
DECLARE
r varchar2(50):= '!';
f varchar2(50):= '%';
tf varchar2(50):= 'myfile.txt';
BEGIN
EXECUTE IMMEDIATE 
'CREATE TABLE ext_tab("Дата" VARCHAR2(35), "Понедельник" VARCHAR2(20), "Вторник" VARCHAR2(20), "Среда" VARCHAR2(20),
                          "Четверг" VARCHAR2(20), "Пятница" VARCHAR2(20), "Суббота" VARCHAR2(20), "Воскресенье" VARCHAR2(20))
ORGANIZATION EXTERNAL
(TYPE ORACLE_LOADER DEFAULT
DIRECTORY STUD_PLSQL
ACCESS PARAMETERS
(RECORDS DELIMITED BY r
FIELDS TERMINATED BY f
MISSING FIELD VALUES ARE NULL
REJECT ROWS WITH ALL NULL FIELDS)
LOCATION (tf))
REJECT LIMIT UNLIMITED';
END;
...
Рейтинг: 0 / 0
ошибка при создании внешней таблицы с помощью динамического sql
    #40069425
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
del
...
Рейтинг: 0 / 0
ошибка при создании внешней таблицы с помощью динамического sql
    #40069426
Stravicki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev,

нет, написал ORA-00905: отсутствует ключевое слово
...
Рейтинг: 0 / 0
ошибка при создании внешней таблицы с помощью динамического sql
    #40069427
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stravicki,

Я бы все же посоветовал и проверять " создавая обычным способом" и выполнять через Execute immediate ОДНУ и ту же команду.
С точностью до кавычек.

А так, вижу ТРИ разные команды, на двух которых Oracle говорит ошибку. Скорее всего, она там и есть. (во второй команде скорее всего перепутаны " и ', в третьей, совершенно не понятно, что такое tf )
...
Рейтинг: 0 / 0
ошибка при создании внешней таблицы с помощью динамического sql
    #40069428
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если нужны одинарные кавычку внутри строковой переменной, они задваиваются

Код: plsql
1.
2.
3.
begin
  dbms_output.put_line( 'А тут будет ''текст в одинарных кавычках'' ' );
end;
...
Рейтинг: 0 / 0
ошибка при создании внешней таблицы с помощью динамического sql
    #40069430
Stravicki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev,

Спасибо большое! Получилось!
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ошибка при создании внешней таблицы с помощью динамического sql
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]