问题标签 [sql-pl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - 如何在 DB2 SQL PL VARCHAR 变量中插入换行符?
看起来这应该非常容易,但到目前为止我还没有运气。
db2 - DB2 删除并创建表
我试图确保当我运行存储过程时,它会检查表是否存在,如果存在则删除它然后重新创建表。使用以下存储过程
现在,数据工作室不喜欢上面标记为 **-->> 的点。我不确定这句话有什么问题。请帮忙
stored-procedures - 无法在 db2 的 SQL PL 存储过程中更改表(添加唯一约束)
我正在尝试在 SQL PL 中为 db2 创建一个存储过程。需要添加一个新字段作为唯一键的一部分,所以我需要先删除之前的 uk,然后添加新的唯一键。这对 MS SQLServer 和 Oracle 来说效果很好,但我无法为 db2 做到这一点。
尝试使用 IBM Data Studio 作为客户端部署例程时出现此错误(数据库为 db2 9.5)
我不明白的是:
- 如果在例程中我只是放弃它的约束。
- 我可以添加约束,只需从 sql 客户端(Squirrel)执行更改表
- 如果我只有一个例程尝试添加约束,我会得到相同的错误。
我很感激任何帮助。谢谢
oracle - DB2 中的包
我想知道 DB2 中是否有像 Oracle 那样的包结构。
对于 DB2,我找到了存储过程和函数。
在 Oracle 中,可以将多个存储过程和函数组合在一个包中。DB2 中有类似的东西吗?我知道可以启用一些 Oracle 兼容性,但是我们应该在这里使用 IBM 的东西。
我发现了一篇关于DB2 包的旧文章,但这似乎与一个完全不同的概念有关。似乎更多的是关于集成第三方库并在数据库之外使用不同的编程语言进行编码。
sql - 从 SP 调用同一架构中的存储过程
在编码另一个存储过程时,如何在不指定完整模式名称的情况下调用同一模式中的存储过程。这些是 DB2 中的 SQL PL 过程。
第一个SP:
创建一个没有模式名直接调用这个SP的SP会导致编译错误:
它会抛出:
未找到具有兼容参数的类型为“PROCEDURE”的名为“SP_TEST”的授权例程。SQLCODE=-440,SQLSTATE=42884,DRIVER=3.53.71
直接给出完整的模式名称有效:
但是,如果我移动到不同的模式,我将不得不在整个地方替换这些引用。是否有合适的解决方法或更好的解决方案?
db2 - IBM DB2 SQL PL 中“set”和“select into”之间的差异
在 SQL PL 中开发时,'set' 和 'select into' 有什么区别?
它们完全等效吗?我在哪里可以找到关于它们的文档?
arrays - 在 DB2 SQL PL 中测试数组成员资格
我正在将存储过程代码从 Oracle 迁移到 DB2,我需要找到一种方法来测试数组成员资格(Oracle 有一个MEMBER OF
运算符)。
除其他外,存储过程使用一组用户(通过 JDBC 作为 Java 代码的参数接收)。我想找到在该数组中进行成员资格测试的最有效方法。使用 Oracle,我会这样做:
MEMBER OF
但是我在 DB2 中找不到等效项:
我看到两种选择:
- 对所有数组元素执行另一个内部循环以“手动”进行测试。
- 不要使用数组,而是使用单个字符串并使用
LIKE
基于 - 的模式匹配。
有没有更好的办法?请记住,数组来自外部代码,不能作为我可以JOIN
或任何相关的表传递。
sql - DB2 更新触发器
我试图在 DB2 数据库中创建一个触发器,该触发器在更新一个表中的列时运行,然后用某些值填充另一个表。
例如,有一个带有一FLEET_ID
列的功率单位表。每次FLEET_ID
更改时,我都需要在TRANS_AUDIT
表中创建一个新行。
TRANS_AUDIT
架构如下:
这是我到目前为止所拥有的,但我似乎无法让它工作,我遇到了一个function sequence
错误。
sql - 如何在 FOR 循环语句中使用动态 SQL?
是否可以在 FOR 语句中使用动态 SQL?
我正在使用 FOR 循环来处理来自 SELECT 语句的一批记录。但是,如果我希望 SELECT 语句在运行时被框起来,比如表名可能存储在一个变量中。
我想要类似下面的东西
for-loop - 在 DB2 PL SQL 的 For 循环游标内使用“With”子句进行查询
我有一个非常复杂的查询,其中包含一个“With”子句。在 DB2 Client 上执行该查询时可以正常工作。但是,如果在 PL SQL 存储过程的 For 循环游标内使用相同的查询,则它不起作用。在尝试将存储过程应用于数据库时,它会给出如下所示的语法错误。
for 循环如下图所示。
你能帮忙解决这个问题吗?提前致谢。