【发布时间】:2010-03-30 10:03:01
【问题描述】:
我正在尝试构建一个测试环境来测试针对 oracle 和 sql server 的应用程序。目的是为两个测试场景提供相同的代码库,唯一的区别应该是存储在脚本文件中的一些 SQL/DDL/... 语句。问题是oracle的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后的最后一个分号:
如果我没有在末尾提供分号,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.)
如果我提供分号,我会收到 oracle ODP .Net 命令对象引发的异常:
ORA-00911: invalid character
ORA-06512: at line 1
有没有办法同时满足oracle数据库和ODP .Net?
【问题讨论】:
标签: .net oracle ado odp.net ora-00911