在 5250 会话中的交互式 SQL 中的 AS400 上,
select * from myfile
仅当 myfile 有多个成员时才从一个成员返回行。
如何从特定成员获取行?
重要:最后我想通过 JDBC 和 jt400 来做这件事,所以我真的想要一个可以在那里工作的解决方案。
谢谢。
在 5250 会话中的交互式 SQL 中的 AS400 上,
select * from myfile
仅当 myfile 有多个成员时才从一个成员返回行。
如何从特定成员获取行?
重要:最后我想通过 JDBC 和 jt400 来做这件事,所以我真的想要一个可以在那里工作的解决方案。
谢谢。
您可以使用 create alias 命令创建别名:
CREATE ALIAS myLibrary/myAlias FOR memberLibrary/memberFile(memberName)
这将允许您像使用任何其他文件一样使用别名对该成员运行 sql:
SELECT * FROM myLibrary/myAlias
请记住,别名会在您的会话结束后继续存在,它们不是临时的。因此,如果您在完成后不需要别名,请在 QTEMP 中创建别名或在完成后显式删除别名:
DROP ALIAS myLibrary/myAlias
高温高压
为成员创建 SQL 别名并查询别名,请参阅此页面以获取示例。
SQL 别名
OS/400 R430
后来支持SQL
别名声明。为每个必须访问的成员创建一个别名,然后从应用程序中引用该别名。别名是一个持久对象——它只能被创建一次。中引用的成员在创建CREATE ALIAS
时不必存在ALIAS
。任何SQL
工具,例如OS/400
ori5/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
这是一个旧线程,仍然是搜索结果列表中的第一个,我想增强以前的响应:
有时您只需要创建别名作为一次性数据库分析,然后您想创建别名并在查询后立即将其删除;您还有一个包含许多表的数据库库,并且不想在每个查询中限定该库,因此您使用 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;