如何在DBeaver/DBDVisualizer中编写一个简单的DB2pl/sql脚本?我基本上是在尝试创建动态SQL(在循环中(,然后运行它。因此,为此,我需要SQL字符串、构建等变量,然后运行动态创建的脚本。
下面是SQL Server中的一个示例。我想为DB2:写这样的东西
BEGIN
DECLARE @example VARCHAR(15) ;
SET @example = 'welcome' ;
SELECT @example;
END
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-for-Z/OS、Db2-for-i、Db2-for Linux/Unix/Windows/Cloud(,因为每个平台的功能和语法可能不同。当请求Db2的帮助时,您应该始终指定目标平台,stackoverflow为db2luw、Db2-400和db2zos提供了专用标签。
第三,您需要遵循ANSI SQL PL语法规则(即而不是在Microsoft SQL Server中使用的transaction SQL(,其中包括标识符名称的有效字符规则。在Db2上,变量不能以@开头。如果您的Db2服务器运行在Linux/Unix/Windows上,并且事先经过专门配置,那么您也可以用Oracle PL/SQL语法编写块,Db2将模仿它。但是目前Db2还没有能力模拟Transact-SQL。