2013-12-08 88 views
1

我有一個表函數它返回(student_id數據,student_name)如何檢索表,功能數據DB2

我想打電話給它,並將結果插入到另一個表

我使用一個表

INSERT INTO STUDENT_TMP SELECT Table(MyDB.fn_getStudent()) 

,但我沒有得到的結果 我已經得到了一個錯誤:

ERROR: DB2 SQL Error: SQLCODE=-390, SQLSTATE=42887, 
SQLERRMC=MyDB.AA;SQL131208155041300,DRIVER=3.67.26 
    Error Code: -390 
+0

...'從(表**(MyDB.fn_getStudent())',我THIK選擇** FIELDS我在那裏錯過了「FIELDS from(」 – halfbit

+0

)我想我把錯誤的位置上的'(', – halfbit

+0

以上,請問哪個版本的DB2? –

回答

1

我發現在IBM網站上跟隨着exsample:

select t1.timeid, t1.storeid, t1.sales 
from time, store, table (cvsample.salesfunc(time.timeid, store.storeid)) as t1 
where time.timeid = t1.timeid and store.storeid = t1.storeid; 

通知語法:表(cvsample.salesfunc(time.timeid,store.storeid))作爲T1

所以你概率不需要領域和 '爲' 你仍然需要 '*' 和 'FROM'

所以

INSERT INTO STUDENT_TMP SELECT * FROM Table (MyDB.fn_getStudent()) 
+0

通常,表格函數在引用時需要相關名稱(例如,**作爲t1 **)。可能有一些例外,但我沒有看到一個例外。 – user2338816