2015-07-09 80 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,您可以將結果保存在輸出文件或打印輸出中或交互式查看。如果您將其作爲批處理作業提交,交互式查看輸出效果不佳。