Выполнить немедленный запуск из пакета PL / SQL - PullRequest
1 голос
/ 31 января 2012

У меня есть следующие строки кода в пакете PL / SQL

l_sql := 'alter table LOG_FILES location ('||chr(39)|| filename || to_char(sysdate,'DDMMYY') ||chr(39)||'))';
execute immediate l_sql;

Пакет pl / sql компилируется нормально, но я не вижу изменений. Команда alter не имеет никакого эффекта. Есть ли причина для этого?

Примечание. Таблица, которую я пытаюсь изменить, является таблицей Oracle External.

Ответы [ 2 ]

5 голосов
/ 01 февраля 2012

Имя файла является строкой, и в заключительном утверждении его необходимо заключить в одинарные кавычки. Для того, чтобы добиться этого, вам нужно избежать одиночной кавычки. Одним из способов является использование двух одинарных кавычек. Итак, ваше задание должно выглядеть примерно так:

l_sql := 'alter table LOG_FILES location ('''|| filename || to_char(sysdate,'DDMMYY') ||''')';
4 голосов
/ 31 января 2012

У вас есть дополнительные скобки в конце вашего заявления

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