为了账号安全,请及时绑定邮箱和手机立即绑定

PLSQL Oracle 命令不允许在同一命令中出现多个异常

PLSQL Oracle 命令不允许在同一命令中出现多个异常

C#
Smart猫小萌 2022-06-12 10:21:57
我将以下脚本存储在 C#OracleCommand中。当我执行它时,我得到“在预期以下情况之一时遇到符号“/”:“错误。我正在尝试大量创建大量表,同时检查它们是否首先存在,如果存在则删除。BEGINEXECUTE IMMEDIATE 'DROP TABLE allexact';EXCEPTIONWHEN OTHERS THEN NULL;EXECUTE IMMEDIATE 'CREATE TABLE allexact(t_long long NULL,t_binFloat binary_float NULL,t_binDbl binary_double NULL,t_rowid rowid NULL,t_date date NULL,t_blob BLOB NULL,t_CLOB CLOB NULL,t_NCLOB NCLOB NULL)';END;//BEGINEXECUTE IMMEDIATE 'DROP TABLE chr_1';EXCEPTIONWHEN OTHERS THEN NULL;EXECUTE IMMEDIATE 'CREATE TABLE chr_1(chr_1 char(1) NULL,chr_2 char(2) NULL,chr_3 char(3) NULL,chr_4 char(4) NULL,...chr_60 char(60) NULL)';END;//此命令在 plsql 开发人员中运行良好,但在 C# 中作为命令执行时则不行。如果我在所有代码的底部只有 1 个异常,它可以正常工作,但是一旦遇到异常,那么(如预期的那样)其余代码将被跳过。如何将多个异常语句放入存储在 C# OracleCommand 变量中的 plsql 命令中?
查看完整描述

1 回答

?
临摹微笑

TA贡献1982条经验 获得超2个赞

使用OracleCommand,您只能执行 1 个 SQL 语句或 1 个存储过程或 1 个匿名块(您的情况)。但是你通过了 2 个匿名块。因此错误。尝试将所有内容打包到 1 个块中


begin

   begin 

     EXECUTE IMMEDIATE . . . 

     EXECUTE IMMEDIATE . . . 

   exception when

   end;


   begin

     EXECUTE IMMEDIATE . . . 

     EXECUTE IMMEDIATE . . . 

   exception when

   end;

end;


查看完整回答
反对 回复 2022-06-12
  • 1 回答
  • 0 关注
  • 134 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号