2015-07-09 86 views
2

好家伙,我需要填充表与我的查询像EL结果....DB2 - 查询结果以新表

SELECT FIELD1, FIELD2, X FROM OLDTABLE WHERE X=Y 

我是一个Java开发人员,我的朋友们,RPG开发商在AS400。当他们执行AA的查询有一个选项来保存查询结果文件

的选项称为SELECT输出,可以选择1显示2打印机3文件

可以直接从查询做到这一点?或者是本地iSeries选项?

回答

0

查询会提示您替换现有的表。直接SQL不会提示替换现有的表,因此您有两种情况(请参阅注释)。

如果输出表不存在,所有你需要的是

create table newtable as (select <...> from oldtable) with data 

如果输出表已经存在,你需要的是子选择的刀片。

Insert into newtable 
Select <...> from oldtable 

注意
随着TR10的2015年5月发布的V7.1和TR2为V7.2,IBM增加了支持OR REPLACE子句的CREATE TABLE声明。所以,如果你恰巧是这些红素或更高版本,你可以简单地使用:

create or replace table newtable as (select <...> from oldtable) with data 
+1

我们知道这个用户要求用sql的输出创建一个表。 – danny117

+0

@ danny117,很好的接收......这就是我在度假时从移动应答中获得的。我已经更新了我的答案。 – Charles

+0

:) ................. – danny117

2

创建表的iSeries的sql

创建数据表。

create table abc as (select x,y,z from sometable where x=y) with data 

创建一个空表。

create table abc as (select x,y,z from sometable where x=y) data definition only 

没有输出到使用sql的打印机。

0

可以将SQL编译为查询管理器查询(CRTQMQRY),然后通过(STRQMQRY)运行查询。

为此,请将查询放入具有TXT成员类型的某种源文件中。进入命令行并运行CRTQMQRY命令并创建输出QMQRY。可以提示STRQMQRY,您可以将结果保存在输出文件或打印输出中或交互式查看。如果您将其作为批处理作业提交,交互式查看输出效果不佳。