更改DB2脚本中的分隔符

5n0oy7gb  于 2022-11-07  发布在  DB2
关注(0)|答案(1)|浏览(311)

我在Docker容器中安装了DB2v11.5.5.1,并通过DBeaver访问了它。
我想在DB2数据库上运行一个带有CREATE PROCEDURE语句的脚本。
但它返回SQL Error [42601]: An unexpected token "END-OF-STATEMENT" was found following "E IF EXISTS TEMP_IDS"
我尝试的示例脚本在这里。

--#SET DELIMITER $$
CREATE PROCEDURE proc_name ()
BEGIN
    -- some statements;
END$$

如何解决DB2脚本中的这个分隔符问题?我认为是改变分隔符的问题。

nkhmeac6

nkhmeac61#

您的错误在于您尝试在DBEaver中使用Db2 CLP(命令行处理器)功能,即您尝试使用--#SET TERMINATOR...
如果您使用Db2 clp执行脚本(即在MS-Windows上使用db2.exe,在linux/unix上使用shell中的db2命令),则可以使用--#SET TERMINATOR功能。
对于Dbeaver(一个jdbc应用程序),有一种不同的方法可以配置替代语句终止符/分隔符。使用属性设置查找此选项,然后在该GUI中选择一个有效字符。然后重试。
例如,在DBeaver社区版2021.04版中,请用途:

File > Properties > Editors > SQL Exitor > SQL Processing: "Statements Delimiter"

相关问题