gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 17:28:01 25 4
gpt4 key购买 nike

我将以下脚本存储在 C# OracleCommand 中.当我执行它时,我得到

"encountered the symbol "/" when expecting one of the following: " errors.

我正在尝试批量创建大量表,同时先检查它们是否存在,如果存在则删除。

BEGIN
EXECUTE IMMEDIATE 'DROP TABLE allexact';
EXCEPTION
WHEN 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;//
BEGIN
EXECUTE IMMEDIATE 'DROP TABLE chr_1';
EXCEPTION
WHEN 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 developer 中运行良好,但在 C# 中作为命令执行时却不行。如果我在所有代码的底部只有 1 个异常,它工作正常,但一旦遇到异常,然后(如预期的那样)将跳过其余代码。如何将多个异常语句放入存储在 C# OracleCommand 变量中的 plsql 命令中?

最佳答案

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

begin
begin
EXECUTE IMMEDIATE . . .
EXECUTE IMMEDIATE . . .
exception when
end;

begin
EXECUTE IMMEDIATE . . .
EXECUTE IMMEDIATE . . .
exception when
end;
end;

关于c# - PLSQL Oracle Command不允许在同一个命令中出现多个异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53753061/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com