Я пытаюсь создать тестовую среду для тестирования приложения на сервере Oracle и SQL Server. Цель состоит в том, чтобы иметь одинаковую кодовую базу для обоих тестовых сценариев, единственное отличие должно заключаться в некоторых операторах SQL / DDL / ..., которые хранятся в файлах сценариев. Проблема в том, что ODP Oracle не поддерживает выполнение сценариев, а только отдельные команды.
Я нашел обходной путь, но есть еще одна проблема, которую я не могу решить:
Мой скрипт Drop для оракула выглядит так:
BEGIN EXECUTE IMMEDIATE 'SELECT ''DROP TABLE '' || table_name || '' CASCADE CONSTRAINTS;'' FROM user_tables'; EXECUTE IMMEDIATE 'SELECT ''DROP SEQUENCE '' || sequence_name || '';'' FROM user_sequences;'; END[;]
Проблема в последней точке с запятой после END:
Хотя база данных оракула жалуется, если я не предоставляю точку с запятой в конце:
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.)
Я получаю исключение, выдаваемое объектом команды Oracle ODP .Net, если я предоставлю точку с запятой:
ORA-00911: invalid character
ORA-06512: at line 1
Есть ли способ удовлетворить и базу данных Oracle, и ODP .Net?