2011-08-04 24 views
0

在這個(vey濃縮)查詢中,如何從RETURNING返回myfile_key?postgreSQL pl/python如何從查詢中獲取RETURNING?

CREATE OR REPLACE FUNCTION myfunction (src int, OUT result int) AS $$ 

plan = plpy.prepare("INSERT INTO myfile VALUES (nextval('seq_myfile'),$1,$2) 
RETURNING myfile_key", ["integer","integer"]) 

$$ LANGUAGE plpythonu; 

(其中插入在第一場是myfile_key)

代碼不值返回給輸出,並且沒有能夠查詢它作爲標準蟒結果,如:

result = rv[0]["myfile_key"] 

回答

0

我假設在您的代碼中沒有致電plpy.execute。您原則上有權訪問RETURNING列,如rv[0]["myfile_key"]。不起作用的是PL/Python中OUT參數的賦值。我建議您使用正常的return聲明重寫您的函數,而不使用OUT參數。

+0

Hello Peter!並感謝您的評論。是的,我正在試圖爲此使用標準的返回語句。我已經用很多東西回報了;我以某種方式假定在這種情況下也可以使用SQL'RETURNS'。 (注意:我已經調用了plpy.execute;我保持這段代碼儘可能簡單!) – DrLou

+0

...但另外一個想法是:我們不需要_need_聲明的OUT返回int位以防止: 錯誤:函數結果類型必須指定 ??? – DrLou

+0

實際上,'OUT'參數在PL/Python中工作得很好。畢竟,這不是處理它們的語言。在PostgreSQL 9.1之前有什麼在PL/Python中不起作用的是多個'OUT'參數。但這不是你在這裏做的。所以你真的應該提供更多的細節。 –

相關問題