问题标签 [db2-400]

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.

0 投票
2 回答
4464 浏览

sql - 如何在具有约束的 iSeries 上更改表?获取“*FILE 正在使用中”。错误

我在 iSeries(IBM-i/AS400) 上有一个表,它有一些限制。该表是使用 SQL 创建的,其中有一些外键从其他表链接到该表(实际的 SQL 在这里有点混淆):

现在,很久以后,我需要更改该表以添加一个字段:

这导致此消息:

我检查过,此时此表上肯定没有对象锁。当我检查工作日志时,我看到:

现在,我当然可以删除并重新添加有问题的约束,但我觉得这不是必需的。我添加的列与约束无关。我相信这可能是因为事实上 OS400 (i5/OS) 并没有真正改变现有的表,而是创建一个新表并复制数据,这可能是痛苦的地方。

但是有没有办法可以暂停键,然后在更改后恢复它们?

(不涉及使用 SQL 执行此操作或建议首先以不同方式创建表的答案没有帮助,因为它们不适用于此处......)

0 投票
3 回答
166 浏览

sql - SQL 找出为什么 PK canidate 在无键表上有重复项

如果我的头衔让你头疼……我和你在一起。我不想解释为什么这个表存在,除了它是遗留系统的一部分,系统也做“记录级访问”(RLA),我知道这对于许多表来说都是一个问题,无论如何 RLA 是提到是因为添加一列会改变表格格式,然后许多非常旧的程序将不再工作......

显然,添加 PK 不会改变表格格式。所以有人告诉我,保证一组特定的键是唯一的,那么你知道什么......它不是。现在我需要展示他们不在的地方。

我能想到的只有:

获取表与主键匹配的叉积。

不知何故,在结果集中获得一个计数列,以获取 PK 与其自身匹配的条目数。

为 count id 大于 2 的值过滤该结果集。

我要看看我是否充分扩展了 PK,我实际上会找到一些独特的东西。

0 投票
6 回答
16869 浏览

db2 - DB2 400 下降列

我想删除一个名为id自动递增 PK 的列。

SQL:

我得到:

我可能是错的,但我认为这与防止表丢失数据有关。为了解决这个问题,我需要创建一个没有列的新表,并将旧表中的数据复制到新表中,然后用新表替换旧表。

0 投票
3 回答
72 浏览

sql-function - 发挥作用还是不发挥作用,这是眼前的问题

我正在为 ASP.NET 应用程序编写一些 SQL 语句。需要做的一件事是仅在开放期间显示信息。供应商软件会在上一个期间关闭时自动更新该期间。所以我发现自己做了一堆子选择,比如:

是的,日期的每个部分都在单独的字段中。

使这个查询成为一个函数会使查询更有效率吗?我之前从未创建过函数,我该怎么做?我的想法是:

所以我可以做到WHERE IsInRange(date)

或者,还有更好的方法?

0 投票
1 回答
1652 浏览

sql - 如何在日期和时间之间运行查询?

我有一个查询,我需要从两个不同的日期和时间提取信息。
我想提取昨天和今天之间以及从昨天 18:00:00 到今天 13:00:00 之间最后一次修改的日期的所有内容。

我怎样才能做到这一点?

0 投票
2 回答
315 浏览

database - 如何查看表与 IBM System i Access for Windows 的关系?

如何查看表与 IBM System i Access for Windows 的关系?身份证钥匙等等..谢谢

0 投票
3 回答
2425 浏览

ibm-midrange - 古代 AS/400 上 DB2 的表结构

我们有一个非常老的 400,大约 10 到 15 岁,我需要从中迁移数据以便它可以退役。我通过一个名为 QTODBC 的程序与它建立了 ODBC 连接,该程序报告我正在连接的主机版本为 03.01.0000。我正在尝试访问系统表以便获取表结构数据,并且我尝试了各种似乎都是为更高版本的 DB2 编写的命令。

那时的系统表是什么?假设他们有这个旧版本的模式名称,我将如何提取模式名称?

0 投票
3 回答
5260 浏览

ibm-midrange - IBM DB2:如何更改视图的结构而不删除它并重新创建它?

IBM DB2:如何更改视图的结构而不删除它并重新创建它?“ 我在 DB2 IBM i 系列中有一个视图,我需要“更新”/更改它的“查询”。到目前为止,我知道的唯一方法是删除并重新构建它,但在这种情况下,我有另一个基于此的视图一个,如果我删除第一个,第二个被删除到..

0 投票
1 回答
217 浏览

sql - SQL:更新不影响任何行

我想更新 DB2/AS400 表中的数据集。

问题是如果参数列表中有字符串参数,则命令找不到要更新的行。

例如:如果我只使用公司编号运行命令,则命令将成功。如果我使用公司编号和设施编号运行命令,则命令失败。

有人有什么主意吗?

编辑

数据库中的数据类型有:

  • 公司:整数
  • 设施:VARCHAR
  • 部门:VARCHAR
  • 生产组:VARCHAR
  • 制造_订单:INTEGER
  • Order_Operation:整数

.NET中的数据类型是:

  • 公司编号:int
  • 设施编号:字符串
  • 部门名称:字符串
  • 生产组:字符串
  • 制造顺序:int
  • 订单操作:int

sql.ToString() 结果:

0 投票
6 回答
7965 浏览

sql - 如何根据日期选择组中的单行?

我们有一个项目价格文件,其中包含项目编号、价格生效日期和价格。我们将在今年年初涨价。我想要做的是现在添加价格记录,这将有一个较晚的生效日期,并根据当前日期选择当前价格。IE 当前日期是 08/03/11,我要拉取 ITEM1 01/01/09 记录:

一旦今年的第一天 - 01/01/12,我会选择 01/01/12 记录。

您不能使用 MIN 或 MAX 函数,因为它会提取第一条或最后一条记录,而不是正确的记录。

任何想法都非常感谢。