Я пытаюсь создать тестовую среду для тестирования приложения с сервером oracle и sql. Цель состоит в том, чтобы иметь одну и ту же базу кода для обоих тестовых сценариев, единственной разницей должны быть некоторые операторы SQL/DDL/..., которые хранятся в файлах сценариев. Проблема в том, что ODP оракула не поддерживает выполнение скриптов, а только отдельные команды.Выполнение скрипта sql oracle с нечетным командным объектом od.: Взаимные исключительные сообщения об ошибках
Я нашел обходной путь, но есть еще один вопрос, который я не могу решить:
Моей Капли сценарий оракул выглядит следующим образом:
BEGIN EXECUTE IMMEDIATE 'SELECT ''DROP TABLE '' || table_name || '' CASCADE CONSTRAINTS;'' FROM user_tables'; EXECUTE IMMEDIATE 'SELECT ''DROP SEQUENCE '' || sequence_name || '';'' FROM user_sequences;'; END[;]
Проблема является последней точкой с запятой после кОНЕЦ:
в то время как база данных Oracle жалуется, если я не обеспечивают точку с запятой в конце:
ORA-06550: line 1, column 208:
PLS-00103: Encountered the symbol "end-of-file" when expecting one of the following:
; <an identifier> <a double-quoted delimited-identifier>
The symbol ";" was substituted for "end-of-file" to continue.)
я получаю исключение брошенного оракула ODP .Net объект команды, если я обеспечиваю точку с запятой:
ORA-00911: invalid character
ORA-06512: at line 1
Есть ли способ, чтобы удовлетворить обоих, базы данных Oracle и ODP .Net?
Спасибо Аллан, это прекрасно работает. Я просто добавил дополнительный запуск немедленного «вокруг вашего кода и заменил его на», чтобы иметь возможность выполнять его с ODP .NET. – phatoni