环境描述:我们目前数据库Oracle脚本写在xml中,然后通过C#语言调用它。在一个xml节点中,目前有两个以上的Oracle执行语句,比如:
select 1 from dual;
select 2 from dual
但是,在C#中,用公司内部封装的getDataSet方法调用,无法识别“;”,被认为是无效字符,如果去掉,在Oracle中又无法执行,
于是我想到了写函数调用,比如:
declare
v_sql varchar2(2000);
begin
 v_sql:='select 1 from dual';
 execte immidete v_sql;
 v_sql:='select 2 from dual';
 execte immidete v_sql;
end;
这样写到xml节点后,经过C#调用是没有问题的。但是在之后的C#运行过程中会发现语句执行后并没有存放到DataSet中去。目前,由于为了保证C#代码能够同时满足sqlserver等其他数据库,部门经理不允许我再更改C#代码,只能考虑对Oracle脚本进行处理。我实在想不出其他解决方案了,还有个,我也试过,在Oracle中运行
execte immidete 'select 1 from dual;
select 2 from dual';语句,也会报无效字符的错误,不知道是不是跟我前台代码调用这样的语句后被视为无效字符情况一样呀,我怀疑。