[英]How can I write a DB2 pl/sql script in DBeaver/DBVisualizer
如何在 DBeaver/DBVisualizer 中编写一个简单的 DB2 pl/sql 脚本? 我基本上是在尝试创建动态 SQL (循环)然后运行它。 因此,为此我将需要诸如 SQL 字符串、构建等变量,然后运行动态创建的脚本。
这是 SQL 服务器中的示例。 我想为 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 为 db2-luw、db2-400、db2-zos 提供了专用标签。
第三,您需要遵循 ANSI SQL PL 语法规则(即不处理 Microsoft SQL 服务器中使用的 SQL),其中包括关于有效字符名称标识符的规则。 在 Db2 上,变量不能以 @ 开头。 如果您的 Db2 服务器在 Linux/Unix/Windows 上运行,并且已经预先进行了特殊配置,那么您还可以使用 Oracle PL/SQL 语法编写您的块,Db2 将模拟该语法。 但目前 Db2 没有能力模拟 Transact-SQL。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.