Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 更改DB2脚本中的分隔符_Sql_Docker_Db2_Dbeaver - Fatal编程技术网

Sql 更改DB2脚本中的分隔符

Sql 更改DB2脚本中的分隔符,sql,docker,db2,dbeaver,Sql,Docker,Db2,Dbeaver,我已经在Docker容器中设置了DB2V11.5.5.1,并通过DBeaver访问了它 我想在DB2数据库上运行带有CREATE PROCEDURE语句的脚本 但它返回SQL错误[42601]:在“E IF EXISTS TEMP_id”后面发现了意外的标记“END-OF-STATEMENT” 我尝试的示例脚本在这里 ——#设置分隔符$$ 创建过程过程名称() 开始 --一些声明; 结束$$ 如何在DB2脚本中解决这个分隔符问题?我认为更改分隔符的问题在于。您的错误是试图在DBEaver内部使

我已经在Docker容器中设置了DB2V11.5.5.1,并通过DBeaver访问了它

我想在DB2数据库上运行带有
CREATE PROCEDURE
语句的脚本

但它返回
SQL错误[42601]:在“E IF EXISTS TEMP_id”后面发现了意外的标记“END-OF-STATEMENT”

我尝试的示例脚本在这里

——#设置分隔符$$
创建过程过程名称()
开始
--一些声明;
结束$$

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

您的错误是试图在DBEaver内部使用Db2 CLP(命令行处理器)功能,即试图使用
--\SET TERMINATOR…

如果使用Db2 clp执行脚本(即,在MS Windows上为Db2.exe,在linux/unix上为shell中的
Db2
命令),则此功能
——#SET TERMINATOR
可用

对于jdbc应用程序Dbeaver,有一种不同的方法来配置替代语句终止符/分隔符。使用属性设置查找此选项并在该GUI中选择有效字符。然后重试

例如,在Dbeaver社区版2021.04中,使用:

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

除了将
语句分隔符
更改为有效字符外,我还必须启用
忽略本机分隔符
。现在它开始工作了。