我在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脚本中的这个分隔符问题?我认为是改变分隔符的问题。
1条答案
按热度按时间nkhmeac61#
您的错误在于您尝试在DBEaver中使用Db2 CLP(命令行处理器)功能,即您尝试使用
--#SET TERMINATOR...
。如果您使用Db2 clp执行脚本(即在MS-Windows上使用db2.exe,在linux/unix上使用shell中的
db2
命令),则可以使用--#SET TERMINATOR
功能。对于Dbeaver(一个jdbc应用程序),有一种不同的方法可以配置替代语句终止符/分隔符。使用属性设置查找此选项,然后在该GUI中选择一个有效字符。然后重试。
例如,在DBeaver社区版2021.04版中,请用途: