在5250会话中的交互式SQL中的AS400上,
select * from myfile
仅当myfile有多个成员时,才会从一个成员返回行。
如何从特定成员获取行?
重要:最后我想用jt400对JDBC做这个,所以我真的想要一个能在那里工作的解决方案。
感谢。
答案 0 :(得分:37)
您可以使用create alias命令创建别名:
CREATE ALIAS myLibrary/myAlias FOR memberLibrary/memberFile(memberName)
这将允许您使用别名对该成员运行sql,就像使用任何其他文件一样:
SELECT * FROM myLibrary/myAlias
请记住,别名会在你的会话后留下来,它们不是暂时的。因此,如果您在完成后不需要别名,请在QTEMP中创建别名,或者在完成后显式删除别名:
DROP ALIAS myLibrary/myAlias
HTH
答案 1 :(得分:7)
为成员创建SQL别名并查询别名,请参阅this page以获取示例。
答案 2 :(得分:0)
SQL别名
OS/400 R430
以后支持SQL
别名声明。为必须访问的每个成员创建别名,然后从应用程序引用别名。别名是一个持久对象 - 它必须只创建一次。创建CREATE ALIAS
时,ALIAS
中引用的成员不一定存在。任何SQL
工具(例如OS/400
或i5/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
答案 3 :(得分:0)
这是一个旧线程,仍然是搜索结果列表中的第一个线程,我想增强前面的回答:
有时候,您只需要一次创建别名即可进行数据库分析,然后您想要创建别名并在查询后立即将其删除;您还有一个包含许多表的数据库库,并且不想在每个查询中都限定该库,因此您可以使用SET SCHEMA;我喜欢使用QTEMP库来创建别名,因为IBM i AS400服务器上的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;