2013-12-08 46 views
0

我有功能Fn1Fn2Fn3和我有一個領域V1V2,並且V3表。我怎樣才能插入表中使用已定義的functon在DB2

我不能做到以下幾點

INSERT INTO Table1(V1, V2, V3) VALUES ( 
    SELECT "MyDB"."Fn1"() FROM SYSIBM.SYSDUMMY1, 
    SELECT "MyDB"."Fn2"() FROM SYSIBM.SYSDUMMY1, 
    SELECT "MyDB"."Fn3"() FROM SYSIBM.SYSDUMMY1 
); 

我得到了以下錯誤:

ERROR: A character, token, or clause is invalid or missing.DB2 SQL Error: SQLCODE=-104, SQLSTATE=42601, SQLERRMC=.;Y1 ,select "MyDB".;WHERE, DRIVER=3.67.26 

Error Code: -104 
+0

請幫助我,,我需要它迫切 – Maria

+0

任何幫助,請讓我得到一個解決方案 – Maria

+0

你可能有兩個問題 - 1)它可能試圖使用引用的函數名稱作爲字符串,所以當它變成混淆成爲一個功能。 2)你只需要一個'SELECT'和'FROM ...'語句(你可以做多個子選擇,但是你必須把它們單獨包裝在括號中 - 這裏你不需要)。此外,只是檢查,調用它自己的功能正常工作,是嗎? –

回答

0

檢查手冊中的INSERT語句的語法:它要麼是INSERT INTO ... VALUES (..)INSERT INTO ... SELECT ...。你正在嘗試使用兩者。

0

@mustaccio是正確的。試試這個:

INSERT INTO Table1(V1, V2, V3) VALUES (
    ("MyDB"."Fn1"()), 
    ("MyDB"."Fn2"()), 
    ("MyDB"."Fn3"()) 
); 

Here's你試圖實現的一個有點簡化的版本。