找不到列或全局变量
Column or global variable not found
问题是在我们的 IBM DB2 数据库中查询使用 Aqua Data Studio 创建的 table 时,无法指定列名,除非我使用系统名称。不久前制作的表格没有这个问题。查询可以在其中很好地找到列名。使用通配符也没有问题,列名显示得很好。
为清楚起见:
- 这有效:SELECT * FROM WUNITS.DVIRS
- 这个有效:SELECT ID___00001 FROM WUNITS.DVIRS
- 这不是:SELECT Id FROM WUNITS.DVIRS
- 这确实适用于以相同方式创建的较早的 tables : SELECT Id FROM WUNITS.DVIRS
这是列定义的屏幕截图
我做错了什么?
既然你提到了系统名称,我假设你使用的是 Db2 for IBM i....
我怀疑您创建了带有引号的列名的 table...您不会看到大小写混合的列名,否则它们将全部为大写。
例如:
create table dtcwilt.dvirs (
"Id" bigint
, "AssetNumber" varchar(25)
, WoNumber bigint
, WoStatusId int
)
不确定您使用什么工具来显示列,但 ACS 架构工具会显示引用的名称。
引号实际上是名称的一部分,您需要在 select:[=14= 中使用带引号的名称,适当大写 ]
这应该有效:
SELECT "Id" FROM WUNITS.DVIRS
这不会:
SELECT "ID" FROM WUNITS.DVIRS
问题是在我们的 IBM DB2 数据库中查询使用 Aqua Data Studio 创建的 table 时,无法指定列名,除非我使用系统名称。不久前制作的表格没有这个问题。查询可以在其中很好地找到列名。使用通配符也没有问题,列名显示得很好。 为清楚起见:
- 这有效:SELECT * FROM WUNITS.DVIRS
- 这个有效:SELECT ID___00001 FROM WUNITS.DVIRS
- 这不是:SELECT Id FROM WUNITS.DVIRS
- 这确实适用于以相同方式创建的较早的 tables : SELECT Id FROM WUNITS.DVIRS
这是列定义的屏幕截图
我做错了什么?
既然你提到了系统名称,我假设你使用的是 Db2 for IBM i....
我怀疑您创建了带有引号的列名的 table...您不会看到大小写混合的列名,否则它们将全部为大写。
例如:
create table dtcwilt.dvirs (
"Id" bigint
, "AssetNumber" varchar(25)
, WoNumber bigint
, WoStatusId int
)
不确定您使用什么工具来显示列,但 ACS 架构工具会显示引用的名称。
引号实际上是名称的一部分,您需要在 select:[=14= 中使用带引号的名称,适当大写 ]
这应该有效:
SELECT "Id" FROM WUNITS.DVIRS
这不会:
SELECT "ID" FROM WUNITS.DVIRS