我有以下存儲過程:Oracle存儲過程 - 存儲查詢結果
CREATE OR REPLACE PROCEDURE SP
(
query IN VARCHAR2(200),
CURSOR_ OUT SYS_REFCURSOR
)
AS
row_ PROCESSED_DATA_OBJECT;
processed PROCESSED_DATA_TABLE;
BEGIN
.....
END;
與
CREATE TYPE processed_data_obj AS OBJECT(
id INTEGER,
value FLOAT
);
/
CREATE OR REPLACE TYPE processed_data_table AS TABLE OF processed_data_obj;
/
我打電話傳遞查詢作爲輸入參數要執行的存儲過程。 查詢是類似的東西:
SELECT A,B FROM TABLE WHERE
,其中A,B和表是不固定的(在Java程序執行期間運行時所定義的),所以我不知道提前它們的值。
我怎樣才能獲取/存儲每個返回的行在我的結構?
processed PROCESSED_DATA_TABLE;
由於
從我的理解你的問題,你將不得不求助於動態SQL。壞消息是,你將無法使用本地動態SQL(通過EXECUTE IMMEDIATE),你必須使用DBMS_SQL包(調查)來使用稱爲方法4的東西。如果確實如此,那麼這將不是一件容易的事。祝你好運 –
「A,B和TABLE不固定」。總是會有兩列,一個整數和一個數字,這是否是固定的?或者投影的列數可能更多或更少? – APC
@APC總是會有2列。列和表的名稱可能不同 – Fab