OracleおよびSQLサーバーに対してアプリをテストするためのテスト環境を構築しようとしています。目的は、両方のテストシナリオで同じコードベースを使用することです。唯一の違いは、スクリプトファイルに格納されているSQL / DDL/...ステートメントです。問題は、OracleのODPがスクリプトの実行をサポートしておらず、単一のコマンドのみをサポートしていることです。
回避策を見つけましたが、解決できない問題が1つあります。
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の後の最後のセミコロンです。
最後にセミコロンを指定しないと、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.)
セミコロンを指定すると、oracleODP.Netコマンドオブジェクトによって例外がスローされます。
ORA-00911: invalid character
ORA-06512: at line 1
OracleデータベースとODP.Netの両方を満たす方法はありますか?