问题标签 [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.
db2 - 从 IBM Z/OS 获取日志
我是大型机概念的新手,之前没有使用过任何 IBM Z 系列机器。但现在我需要从 Z/OS 平台获取 db2 日志。
我之前使用 JT400.jar 从 IBM AS400 收集日志。(将执行远程命令并使用 java 读取输出)。但是对于 Z/OS,我无法从文档中找到这样的东西。
所以我需要知道以下情况的可能性。
- 运行远程命令并使用 JT400 等任何 API 读取它的输出。
- 将日志作为 Syslog 转发到任何 SIEM 解决方案((如ManageEngine EventLog Analyzer或ArcSight ESM),无需任何第三方安装)
- 使用 SSH 连接列出日志文件,因为我听说 Z/os 也会有一些 Unix 属性(例如使用 JSCH)
即使有任何其他可能性,请在下面提及。这真的很有帮助。基于可能性,我只能考虑购买 Z/OS 大型机。
提前致谢。
spring - 将 spring 数据配置连接到 IBM DB2 z/os 时出现异常
我在启动 Spring Boot 应用程序时遇到以下异常(应用程序没有任何代码,只有在 application.properties 文件中定义的 DB 相关配置和连接参数)
无法从数据库 com.ibm.db2.jcc.am.SqlSyntaxErrorException 获取 SequenceInformation:DB2 SQL 错误:SQLCODE=-204,SQLSTATE=42704,SQLERRMC=SYSCAT.SEQUENCES,DRIVER=4.19.49
pom.xml
数据库连接属性:
春季启动中的数据库配置代码:
}
db2 - Db2 在什么平台上运行
我被要求连接到公司大型机上的 Db2 数据库。我得到了主机名、端口号和数据库。我能够使用 Java 与 IBM JDK 1.8 版和 Db2 Universal JDBC 驱动程序成功连接到它。现在我已经连接到它,我如何找出底层的大型机平台是什么。它是 z/OS、OS/400 还是 VSE?是否有任何 SQL 查询可以获得该平台信息?另外我如何找出 Db2 的版本是什么?
db2 - DSNURWBG - 输入字段 ffffff 不完全在输入记录中
我正在尝试将文件加载到 DB2 表并收到以下错误:
输入字段 ffffffff 不完全在输入记录中
任何人都可以建议出了什么问题。
stored-procedures - 在 INSERT 或 UPDATE 记录存储过程中仅使用可更新表字段的子集?
考虑简单的命令:
更多的时候,我们只插入或更新一些表字段,但在 INSERT/UPDATE 上的所有 CRUD 存储过程示例都包含所有可更新的表字段,并且要使用这个 SP,我们需要填写所有这些参数。
在以下情况下会出现此类 SP 的问题:
- 用户最初只想设置字段的子集 (1+),因此他不能使用插入所有字段的 SP
- 用户并不总是知道所有表字段,因此他不能使用 SP更新所有字段。我不想为可能的字段子集编写相同的 SP。
- 用户不应访问更新所有字段的 SP。
- 用户/用户操作并不总是有权更改所有表字段的值。
- 用户只想更新 1 个字段,但需要使用 CALL {table}_update( ... ) 中的所有表字段
在此示例中,用户可以访问记录的“主键”和“版本”(时间戳/数字)列.
可能的解决方案:
- 解决方案 0:继续使用 INSERT/UPDATE 语句
这种方法的优点:
- 它有效
这种方法的缺点:
- 允许用户直接访问表时的安全问题-删除记录
时无法保存用户的数据
- 解决方案 1:发送部分 DML 语句作为参数,SP 将使用它来创建动态 SQL 语句:
这种方法的缺点:
- 可能的 SQL 注入
- 动态 SQL 上没有可用的缓存和优化
- 无法检查输入字符串等...
- 解决方案2:发送未使用的值 AS NULL并添加带有值的列列表的字符串参数以使用实际参数(即使它为空)
这种方法的缺点:
- 如果 SP 将来会更改参数的顺序,则该系统将中断
- 语句将再次动态准备,因此没有缓存。
- 创建“ins_fields”或“upd_fields”参数的复杂性
- 解决方案 3:使用包含所有更改的 XML 字符串发送更新。
这种方法的优点:
- 可用于 1 个 SP 调用中的 INSERTs/UPDATEs/DELETEs
- 只有 1 个参数来列出所有更新的字段。
这种方法的缺点:
- 传输更多数据(因为 XML)
- 由于需要在服务器上解析 XML 而降低性能
- 增加了存储过程的复杂性。
- 增加客户端代码复杂性(创建 XML 字符串)
那么我缺少什么解决方案?哪些被认为是主流/最佳/普遍?
这个问题在现代 ORM 中是如何解决的?他们使用第一种、第二种或第三种方法吗?
我个人想使用第三种解决方案(带有 XML 参数),但我需要示例:
1)此类 XML 参数的模式示例。
2)解析XML参数的存储过程示例
当前使用的环境:使用 Visual FoxPro 应用程序中的 SQL 直通 (ODBC) 执行直接 INSERT/UPDATE/DELETE 语句。DBMS:DB2 for z/OS v10。
stored-procedures - 存储过程 - 如何在 rexx 中获取数组作为输出
我正在测试 Db2 for z/OS 的一些功能,现在当我尝试通过 REXX 调用存储过程时遇到了麻烦。
Bellow 是创建我需要在存储过程中返回的数据类型的代码
这是我用来创建存储过程的 DDL
这就是我用来调用存储过程的 REXX
现在我有 SQLCODE
你能帮我吗,我试图将存储过程的输出返回到 REXX 程序,它说我在 CALL 中使用的变量与我在存储过程中定义的变量不兼容。
我不明白是什么问题,你能帮帮我吗?
提前问候
db2 - IBM DB2 - 不要卸载超过一定长度的 DECIMAL 行
我有一个 IBM DB2 表,我想从中卸载数据,以便将其加载到另一个 DB2 表中。
两个表都有相同的列(和类型),除了一个十进制字段。
在源表中为 DECIMAL(6),在目标表中为 DECIMAL(5)。
源表中有许多条目在 DECIMAL 字段中最多仅使用 5 位数字,并且只有一些条目使用了全部 6 位。
我要做的只是复制源表中最多 5 位的条目并删除所有其他条目。
我可以仅使用 UNLOAD 语句执行此操作吗?因此,有一个选项告诉系统“将列 'id' 卸载为 DECIMAL(5)(尽管它在表本身中是 DECIMAL(6)),并且如果该列的条目使用所有 6 个数字 (>99999),则不卸载那一排”。
另外,如果情况相反,您将如何处理?例如,从源中卸载 DECIMAL(5) 并在目标中加载为 DECIMAL(6)
我为什么要这样做?因为目标表是旧版本应用程序使用的表的旧版本。我们将在 6 个月内停止支持,但在那之前我们需要刷新其中的数据集。
使用 UNLOAD 和 LOAD 我正在谈论例如 https://www.ibm.com/support/knowledgecenter/SSEPEK_11.0.0/ugref/src/tpc/db2z_utl_unload.html下描述的 z/OS (?) 的 UNLOAD 和 LOAD 实用程序
db2 - IBM DB2 向 IBM DB2 Z/O 加载失败
这是我上面的当前命令,生成的单个文本文件如下:
我得到的错误是:
SQL3116W 行“F8-8245”和列“6”中的字段值缺失,但目标列不可为空。
SQL3185W 上一个错误在处理输入文件的“F8-8245”行中的数据时发生。
我正在使用“
这是一个制表符分隔的文件。
我不确定为什么文件在第 6 列被填满时失败。
任何帮助将不胜感激。
sql - DB2 无法从内部查询中选择不同的列值
我有一个简单的 DB2 SQL 查询:
当我在 DBeaver 内的 DB2 DB 上的任何表上尝试这样的示例查询时,我收到以下错误:
SQL Error [56038]: ATTEMPT TO USE A FUNCTION WHEN THE APPLICATION COMPATIBILITY SETTING IS SET FOR A PREVIOUS LEVEL. SQLCODE=-4743, SQLSTATE=56038, DRIVER=4.13.127
当我在 DB2 支持站点中查找特定的 SQLCODE 时,它提到发生这种情况是因为查询不会运行,尽管他们没有说明为什么它不会运行。有人可以帮我弄清楚为什么这个查询不会运行吗?