2013-10-03 61 views
1

我有一個PostgreSQL函數,它接受一個字符串作爲參數/這是動態sql查詢/並執行該動態SQL,我期望得到動態查詢的結果。PostgreSQL-動態sql裏面的函數?

看來,在我的PostgreSQL預定義應該是我將返回 - 但這是不可能的,因爲我在執行動態語句,有時我會返回一個INT列,有時我會回到5分VARCHAR列....

另一件事是,現有的JDBC代碼調用函數,我不能改變它,我不能定義類型的動態,如:

{call execute_dynamic(?) as (a varchar(255),b int)}; 

The code that will call the procedure is: 

{call execute_dynamic(?)} 

,不能改變....

有一種實現這一點的方法?

回答

1

解決方法是使用refcursor作爲返回類型。

OPEN ref_cursor FOR EXECUTE dynamic_sql; 
return ref_cursor;