问题标签 [db2-luw]
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 - 从 SQL 检索应用程序句柄
我想通过 SQL 检索当前连接的应用程序句柄,但是我找不到这样做的方法。
有一个名为APPLICATION_ID的标量函数检索当前连接的 ID,但不检索句柄。
特殊寄存器也不检索。
我想在 SQL 中检索它以在存储过程中使用它。
db2 - DB2 - 根据两个字段确定未来日期
我需要在 DB2 for UNIX 中计算一个日期。
我有一个日期字段:CONTRACT_DT(例如:2/7/2006、8/25/2006、11/16/2007、2/25/2008、12/29/2005)
和一个类型字段 PRIME(示例:C、I、E、Z、V、K)
我需要计算下一次审查贷款的日期(REVIEW_DT)。
- 如果 Prime = Z 则每年从 CONTRACT_DT
- 如果 Prime = V,则每三年从 CONTRACT_DT
- 如果 Prime = K 则每五年从 CONTRACT_DT
- 如果 Prime = NULL 或任何其他字母,则 NULL
例如,贷款 01 的 CONTRACT_DT 为 2004 年 3 月 1 日,PRIME 为 V。所以我需要在 2004 年 3 月 1 日之前计算/添加三年,直到我得到一个大于 MTHLY_CLOSE_DT 的日期。(选项为 2007、2010、2013、2016、2019、2022)。
所以正确答案是 2016 年 3 月 1 日。
我意识到该结构是一个 CASE 语句,但我不知道如何根据年份倍数选择日期并找到大于 MNTHLY_CLOSE_DT 的日期。
这是我到目前为止所拥有的:
谢谢!
php - Linux 上 DB2 驱动程序的许可错误
我正在尝试连接到 DB2 数据库。我从 IBM 10.5 安装了驱动程序服务器包。
当我尝试连接到 db2 服务器时,我收到了该消息:
[IBM][CLI 驱动程序] SQL1598N 由于许可问题,尝试连接到数据库服务器失败。SQLSTATE=42968 SQLCODE=-1598
我怎么解决这个问题?我在谷歌上寻找 inf,我看不到任何可以帮助我的东西。
驱动服务器软件包已安装在 debian 机器上,可与 php/apache2 服务器一起使用。
谢谢!
db2 - 在 DB2 存储过程中使用变量来引用模式和表
我将模式名称存储在表列中(例如 , SOURCE_SCHEMA
)TARGET_SCHEMA
,并且正在检索我想要作为 DB2 存储过程中的变量使用的模式名称(例如 , vSchema
)。
然后如何在 SQL 语句中使用该变量,例如:
有一个更好的方法吗?提前致谢。
stored-procedures - DB2 存储过程:声明一个内部“行集”
我正在将一些过程从 PostgreSQL 迁移到新的 DB2 环境。我已经完成了大部分工作,但我找不到为内部行集/记录声明变量的方法。
基本上,该程序在 Postgres 上的作用是:
我在 IBM 手册或在线其他地方找不到等同于声明“计数”的方法。我需要的行是静态的(3 列聚合数据)。因此,如果可能的话,声明该行硬编码就足够了。
是否可以在 DB2 上的存储过程中声明记录/数据集/“虚拟表”?
我们使用的是 DB2 for Linux (V10.5) 而不是 DB2 for iSeries。
@mustaccio的答案指向正确的解决方案:
在过程之外创建所需的行类型:
CREATE TYPE empRow AS ROW (failed_inserts INTEGER, failed_updates INTEGER, failed_deletes INTEGER);
然后您可以在过程中声明新类型
DECLARE newRow empRow;
db2 - DB2 中的用户定义表函数
我想知道可以在 SQL-PL 中创建用户定义表函数的 DB2 平台。似乎在 DB2 for i 中是可能的,但我没有看到任何关于 LUW 的东西,而不是 z/OS。
它没有像许多其他流行特性一样出现在“跨平台开发版本的 SQL 参考”中。
sql - 在 SQL 中跨多个表求和和计数
我有 3 个表,我需要从中选择和汇总数据。
我需要做的是从两个表的 ACCTS 字段中提取按 SL 排序的汇总。
这是我目前使用的 SQL:
我发现的问题是,当 ACCT1 和 ACCT2 表中有多个值参考 IDEA 表时。以下是此查询的结果:
SL3 线将 ACCT1 和 ACCT2 值相加两次。我似乎找不到正确的方法来添加它们适当的次数。
所需的输出是:
任何帮助将非常感激。
java - jdbc db2 SocketTimeoutException 连接到数据库
我正在尝试使用 db2 jdbc 驱动程序连接到远程 db2 数据库,但遇到了 sockertimeout 错误。我已经部署到两台不同的机器上,在第二台机器上我没有收到错误。我认为这可能与我的 db2 数据库所在的盒子的网络连接有关。
谁能帮助我尝试调试此错误的方法。到目前为止,我能想到的唯一想法是使用 tracert 主机名来比较连接有效的盒子上的跳数和连接无效的盒子上的跳数。
谢谢
unicode - 如何找出 DB2 LUW 的哪个版本引入了对 NVARCHAR 的支持?
我很难用谷歌搜索什么应该是直截了当的答案:DB2 LUW 在哪个版本中引入了对 NVARCHAR 数据类型(当然还有其他国家语言类型)的支持。
根据我自己组织内的经验,我知道 9.7.300.3885 支持它们,但 9.7.0.441 不支持它们。这表明它们是在 9.7 版本中发布的,这令人惊讶,但并不像没有明显宣布这一事实那样令人惊讶。
我想知道,以便我们可以告诉我们的客户我们可以支持的最低版本,但我也想知道如何找到,既出于我自己的兴趣,也因为它应该是一个更有用的 SO 问题。
php - 将 Ubuntu 14.04 上的 ibm_db2 函数 (php) 连接到 DB2 for z/OS
我有一个脚本,当前使用 php ibm_db2 函数连接到 Ubuntu 14.04 服务器上的 DB2 Express C。当我尝试翻译相同的脚本以远程连接到 DB2 z/OS 上的数据库时,我收到此错误,“[IBM][CLI Driver] SQL1598N 由于许可问题,尝试连接到数据库服务器失败。SQLSTATE =42968 SQLCODE=-1598"。我搜索了这个网站http://www-01.ibm.com/support/docview.wss?uid=swg21305417,它基本上告诉我 ibm_db2 函数使用的驱动程序由于驱动程序不匹配而无法连接数据库和许可证。如何寻找驱动程序和许可证以安装在我的 Ubuntu 机器上以连接到 z/Os 上的 DB2?还是我以错误的方式解决这个问题?
这是我正在使用的连接代码。