问题标签 [db2-zos]
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.
database - DB2/IDAA:如何以毫秒为单位将 VARCHAR 正确格式化为 TIMESTAMP
我正在为 DB2 使用 IDAA。在某一时刻,我使用 TO_DATE 来转换一些日期并且它可以工作:
TO_DATE('09/03/2018 06:49:23','MM/DD/YYYY HH:MI:SS')
但是当我在时间戳中有一个以毫秒为单位的 VARCHAR 值时,TO_DATE 会返回一个错误。我在网上环顾四周,找到了一个使用 TO_TIMESTAMP 的答案,但这不起作用:
TO_TIMESTAMP('09/03/2018 06:49:23.443000','MM/DD/YYYY HH:MI:SS.NNNNNN')
我已经查看了这里的每个答案并尝试了许多变体。我已经尝试过 TO_TIMESTAMP、TO_DATE、TIMESTAMP_FORMAT 函数的每一种组合,以及 FF、FF6、NNNNNN 的毫秒格式。我收到这些错误:
NO AUTHORIZED FUNCTION NAMED TO_TIMESTAMP HAVING COMPATIBLE ARGUMENTS WAS FOUND. SQLCODE=-440
SQL error: SQLCODE = -904, SQLSTATE = 57011, SQLERRMC = Invalid Date.. SQLCODE=-904
也许 IDAA 不一样?我不知道。
我正在使用 IBM Data Studio 4.1.3 运行 DB2 for z/OS V11。
db2 - 在 DB2 for z/OS 中,我可以用一个命令重建多个索引空间吗?
在 DB2 for z/OS 版本 10 上,错误的实用程序在特定数据库中将 MANY 索引空间置于“RW,RBDP”状态。我可以成功地使用 REBUILD INDEXSPACE 命令来一一修复它们,但是它们有很多。所以,我希望有某种通配符或 *ALL 选项,但这对我来说还行不通。
有没有办法做相当于以下的事情?
重建索引空间 (MYDB.*)
提前致谢!
db2 - 执行选择查询时出现 DB2 性能问题
我有这个查询:
它在表格中有 10000 条记录时运行良好,但我们今天添加了更多(+30k)并计划在表格中添加更多(+250-300k)。现在我收到此错误:
查询是否不正确或未针对具有大量记录的表进行优化?我们应该如何处理?索引某些列或重组查询?
更新:显然,我对添加到表中的记录数有误,此时我们在 TABLE1 中有 200 万条记录,在 TABLE2 中有 400 万条记录,而不是我最初提到的 30k。
ms-access - 使用 MSAccess 中的“DISTINCT”关键字查询 DB2 表
我对链接的 DB2 表有一个相当简单的查询。
工作正常,返回结果。但是,当我添加“DISTINCT”关键字时,出现错误:
ODBC——调用失败
[[IBM][CLI Driver][DB2] SQL0904N 由于资源不可用导致执行不成功。原因码:“00C90305”,资源类型:“00000100”,资源名称:“DSNDB07”。SQLSTATE=57011
关于为什么“DISTINCT”关键字会导致这种情况的任何想法,以及是否有办法从表中获取不同的记录?
db2 - 如何在 DB2 中检索存储在 CLOB 数据类型中的 JSON 数据?
我将 JSON 数据存储在 DB2 数据库的 CLOB 中。我想查询这个 JSON 数据并检索一些数据。
我试过JSON_VAL
并得到这个错误
DB2 SQL 错误:SQLCODE=-440、SQLSTATE=42884、SQLERRMC=JSON_VAL。
任何人都可以让我知道我是否可以使用 JSON_VAL 如果不是正确的一个示例有帮助。
java - Spring Data JPA 上的条件查询在 DB2 (z/OS) 上给出 -417 错误
我目前在 Spring Data CrudRepository 中有以下方法签名:
这被 Hibernate 翻译成(简化的):
我用它来获得一个既可以过滤表又可以返回所有记录的方法。
我的问题是,当我尝试执行存储库的方法时,我得到一个负面的 417 (-417) Db2 错误。谷歌搜索它说这意味着
要准备的语句字符串包括参数标记作为同一运算符的操作数(例如:?>?)
即使我的 Hibernate 查询没有这样做。
db2 - 在 DB2 z/OS 上通过 EclipseLink 的替换功能
我正在使用 z/OS 上的 DB2 12 将应用程序从 WebSphere 8.5 上带有 OpenJPA 的 JPA 2.0 迁移到 WebSphere 9.0 上带有 EclipseLink 的 JPA 2.1。通常它可以工作,但是一个相当复杂的查询失败了。我可以将问题定位为在标准查询中使用自定义 DB2 函数调用。调用看起来像这样:
这会产生以下错误(必须翻译一些错误文本,因为 WebSphere 将它们本地化,并匿名化我的字段/表名称,因此标签/名称可能不是 100% 准确):
真正让我感到困惑的是,如果我使用生成的查询,用给定的绑定参数替换占位符,然后自己在数据库客户端中执行它,它就可以正常工作。
文档指出,第一个参数不能为空(https://www.ibm.com/support/knowledgecenter/en/SSEPEK_12.0.0/sqlref/src/tpc/db2z_bif_replace.html),如果我使用的是空的字符串作为查询或我的数据库客户端中的文字,它将产生上述错误。但是数据库中没有任何行包含空值。在旧环境中进行了检查以防止这种情况发生,但它们似乎不适用于新环境,因此我在搜索问题时禁用了它们,并确保自己不存在空值。我什至可以使用主键作为第一个参数,它仍然会失败,甚至不能包含空/空值。
使用其他函数(如 TRANSLATE)可以工作,我也尝试使用“SYSIBM.REPLACE”作为名称和不同的参数组合,但是一旦我使用真实列替换数据,它就会失败。有人知道我在这里做错了什么吗?
这是我的表定义:
sql - 理解为什么 SQL DB2 中的长度会返回短结果作为最大字符长度
我有一个查询,它提取我们数据库中所有姓氏的计数,并按姓氏长度对计数进行排序。这是一个最大长度为 120 的 VARCHAR 字段。
一些字符长度短得多的结果 - 5、6、7 等字符 - 显示为 120。使用 RTRIM 似乎得到了正确的结果,但我很困惑为什么当我没有 RTRIM 时为什么大多数值计算正确,但有些不正确。虽然我知道我使用 RTRIM 得到了正确的结果,但我只是想了解为什么有些情况下没有它就不能正确地实现它。
db2 - 在 DB2 for z 上通过 DB2 UNLOAD 实用程序使用常量
我正在处理数据升级问题。
我们的现有 DB2 表中添加了一个新列。
为了升级客户的 DB2 表,我正在从现有 DB2 表中卸载数据,并为新列(假设 D 类型为 SMALLINT)设置一个常量值,如下所示:
在卸载数据时,我们使用以下卸载参数:
我面临的问题是,DB2 在卸载记录中列 D 的值之后添加字符分隔符 X'22'。
请注意,B 列是现有列,并被声明为 SMALLINT,DB2 未在卸载记录中为此添加字符 del。
这可能会发生,因为此处添加的新列 D 未声明为 SMALLINT,因此未将其视为 SMALLINT,并且 DB2 在卸载记录中为此结束了 char del。
我只是在寻找一种摆脱这种情况的方法,我不希望我的新列 D 在卸载记录中以字符分隔。
任何克服此问题的建议将不胜感激。
merge - 尝试使用 Merge 更新 IBM DB2 中的表时出错
我有一条 SQL 语句,我试图从 IBM DB2 数据库上的控制台应用程序执行该语句。
但是,我收到此错误:
我不确定出了什么问题。