如何在DBeaver/DBVisualizer中编写一个简单的DB2 pl/sql脚本?我基本上尝试创建动态SQL (在循环中),然后运行它。为此,我需要变量,如SQL字符串、build等,然后运行动态创建的脚本。
下面是Server中的一个示例。我想为DB2写这样的东西:
BEGIN
DECLARE @example VARCHAR(15) ;
SET @example = 'welcome' ;
SELECT @example;
END发布于 2020-12-24 08:59:34
dbvis允许您为Db2开发脚本。
你需要了解一些基本知识。
首先,您需要告诉dbvis,除了默认的分号之外,还有一个附加的语句分隔符。Db2需要知道临时语句的结尾和复合块的结尾之间的区别,为此,Db2为块的结尾使用了一个额外的分隔符/终止符。
您可以使用@delimiter命令(特定于dbvis)在脚本中指定这个块分隔符/终止符,也可以通过dbvis设置GUI配置分隔符(这是更好的方法)。这取决于dbvis的版本。
许多人在为Db2编写复合SQL时使用@字符作为块分隔符,尽管其他字符是可能的(只要它不同于默认的分号)。
如果希望Db2命令行处理器直接运行脚本,而不使用dbvis (即从命令行shell (cmd.exe或bash/ksh等)运行脚本),则不会使用@delimiter命令,因为只有dbvis才知道这一点。Db2命令行处理器理解语法--#SET TERMINATOR @在脚本中动态更改分隔符,它还有一个命令行选项(-td@),允许您通过命令行指定可选分隔符。
其次,您需要知道您正在获取的是哪个平台(DB2-forZ/OS、Db2-for-i、DB2-for-linux/Unix///),因为每个平台的特性和语法可能不同。在请求Db2帮助时,您应该始终使用指定目标平台,并且堆栈溢出具有DB2LUW、db2-400、DB2ZOS的专用标记。
第三,您需要遵循ANSI语法规则(即而不是Microsoft中使用的事务SQL ),其中包括有关标识符名称的有效字符的规则。在Db2上,变量不能以@开头。如果您的Db2 -服务器运行在Linux/Unix/Windows上,并且预先进行了特殊配置,那么您也可以用Oracle /SQL语法编写块,Db2将对此进行仿真。但目前,Db2中还没有类似Transact-SQL的能力。
https://stackoverflow.com/questions/65431452
复制相似问题