IBM i SQL 查询,绿屏与 GUI "Run SQL Scripts"

IBM i SQL query, Green screen vs GUI "Run SQL Scripts"

关于 IBM i 的问题 SQL 查询,绿屏与 GUI "Run SQL Scripts"

SELECT * FROM QSYS2.SYSTABLES      

..

SELECT * from SYSIBM.SQLCOLUMNS 

..

SELECT * FROM 
QSYS2.SYSTABLES JOIN SYSIBM.SQLCOLUMNS 
  ON(SYSTABLES.TABLE_NAME  = SQLCOLUMNS.TABLE_NAME
  and SYSTABLES.TABLE_SCHEMA  = SQLCOLUMNS.TABLE_SCHEM )

Message: [SQL0206] Column or global variable TABLE_NAME not found. Cause . 

以上语句在 IBM i 绿屏上有效,但第三个在 ACS "Run SQL Scripts" 工具中失败。

向 table-reference 添加 table alias / correlation-name 修复了问题:

SELECT * FROM QSYS2.SYSTABLES AS SYSTABLES 
JOIN SYSIBM.SQLCOLUMNS AS SQLCOLUMNS
  ON SYSTABLES.TABLE_NAME = SQLCOLUMNS.TABLE_NAME
  AND SYSTABLES.TABLE_SCHEMA = SQLCOLUMNS.TABLE_SCHEM 

有关详细信息,请参阅 table-reference 文档。

包括库资格也可以在没有明确别名的情况下工作:

SELECT * FROM QSYS2.SYSTABLES
JOIN SYSIBM.SQLCOLUMNS
ON QSYS2.SYSTABLES.TABLE_NAME = SYSIBM.SQLCOLUMNS.TABLE_NAME
AND QSYS2.SYSTABLES.TABLE_SCHEMA = SYSIBM.SQLCOLUMNS.TABLE_SCHEM