db2 AS400上多成员文件SQL查询

kqhtkvqz  于 2022-11-23  发布在  DB2
关注(0)|答案(5)|浏览(230)

在AS 400的5250会话中使用交互式SQL时,

select * from myfile

仅当myfile具有多个成员时,才从一个成员返回行。
如何从特定成员获取行?
重要的是:最后我想用jt 400通过JDBC来完成这个任务,所以我真的希望有一个能在那里工作的解决方案。

  • 谢谢-谢谢
odopli94

odopli941#

可以使用create alias命令创建别名:

CREATE ALIAS myLibrary/myAlias FOR memberLibrary/memberFile(memberName)

这将允许您使用别名对该成员运行sql,就像对任何其他文件一样:

SELECT * FROM myLibrary/myAlias

请记住,别名在会话结束后会一直存在,它们不是临时的。因此,如果完成后不需要别名,请在QTEMP中创建别名,或者在完成后显式删除别名:

DROP ALIAS myLibrary/myAlias

高温

zf9nrax1

zf9nrax12#

建立成员的SQL别名并查询别名,请参阅此页面的范例。

rjee0c15

rjee0c153#

SQL别名
OS/400 R430和更高版本支持SQL alias语句。为每个必须访问的成员创建别名,然后从应用程序引用别名。别名是持久性对象--只能创建一次。创建ALIAS时,CREATE ALIAS中引用的成员不必存在。任何SQL工具(例如OS/400i5/OS interactive SQL (STRSQL)iSeries Navigator's Run SQL Scripts,可用于创建别名,例如:

CREATE ALIAS MYLIB.FILE1MBR1 FOR MYLIB.MYFILE(MBR1) 
CREATE ALIAS MYLIB.FILE1MBR2 FOR MYLIB.MYFILE(MBR2)

http://www-01.ibm.com/support/docview.wss?uid=nas1f1eaeecc0af19cc38625669100569213

jw5wzhpr

jw5wzhpr4#

这是一个旧的线程,仍然是搜索结果列表中的第一个,我想加强以前的回应:
有时您只需要创建别名作为一次性数据库分析,然后您希望创建别名并在查询后立即将其删除;您还拥有一个包含许多表的数据库库,并且不希望在每个查询中都限定该库,因此您使用了SETSCHEMA;我喜欢使用QTEMP库来创建别名,因为IBM i AS 400服务器上的QTEMP本质上是用于临时对象的:

set schema=mylibrary;

create alias qtemp.aliasx for table1(membera);
create alias qtemp.aliasy for table2(memberb);

select  * from qtemp.aliasx;
select  * from qtemp.aliasy;

drop alias qtemp.aliasx;
drop alias qtemp.aliasy;
qmelpv7a

qmelpv7a5#

该查询在IBMi 7.4上运行,但也适用于某些早期版本。
选择系统表方案作为"库",
系统表名称AS "文件",
系统_表格_成员作为"成员",
源类型为"源类型",
在"记录"中,
数据类型
"文本"、
创建时间戳AS "创建日期",
上次源更新时间戳为"上次更新",来自QSYS2.SYSPARTITIONSTAT
如果系统表SCHEMA ='XYZLIB'且
系统表格名称='XYZFILE'
且来源类型不为空
按上次源更新时间戳排序

相关问题