更改 DB2 脚本中的定界符
Change delimiter in a DB2 script
我在 Docker 容器中安装了 DB2 v11.5.5.1 并通过 DBeaver 访问它。
我想 运行 一个在 DB2 数据库上带有 CREATE PROCEDURE
语句的脚本。
但是 returns 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 脚本中的分隔符问题?我认为更改分隔符的问题。
您的错误是您试图在 DBEaver 中使用 Db2 CLP(命令行处理器)功能,即您正在尝试使用 --#SET TERMINATOR...
.
如果您使用 Db2 clp 执行脚本(即在 MS-Windows 上是 db2.exe,而在 linux/unix 上 db2
命令在 shell).
对于 jdbc 应用程序 Dbeaver,有一种不同的方法来配置替代语句终止符/定界符。使用属性设置找到此选项并在该 GUI 中选择一个有效字符。然后重试。
例如在Dbeaver Community Edition 2021.04版本中,使用:
File > Properties > Editors > SQL Exitor > SQL Processing: "Statements Delimiter"
我在 Docker 容器中安装了 DB2 v11.5.5.1 并通过 DBeaver 访问它。
我想 运行 一个在 DB2 数据库上带有 CREATE PROCEDURE
语句的脚本。
但是 returns 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 脚本中的分隔符问题?我认为更改分隔符的问题。
您的错误是您试图在 DBEaver 中使用 Db2 CLP(命令行处理器)功能,即您正在尝试使用 --#SET TERMINATOR...
.
如果您使用 Db2 clp 执行脚本(即在 MS-Windows 上是 db2.exe,而在 linux/unix 上 db2
命令在 shell).
对于 jdbc 应用程序 Dbeaver,有一种不同的方法来配置替代语句终止符/定界符。使用属性设置找到此选项并在该 GUI 中选择一个有效字符。然后重试。
例如在Dbeaver Community Edition 2021.04版本中,使用:
File > Properties > Editors > SQL Exitor > SQL Processing: "Statements Delimiter"