Xmltype
select extractvalue(value(x), '//utext') value from table(XMLSEQUENCE(extract(v_xmlContent, '//utext'))) x;
該sql能夠提取出xmltype類型數據中,所有<utext></utext>標簽下的值。
SYS_REFCURSOR動態游標的使用
SYS_REFCURSOR為動態游標,可在運行的時候動態決定執行查詢。
REF游標可作為參數傳遞(in/out都可以)。
需注意的是,用于接收游標結果集的變量,其type與游標結果集必須完全一致,也就是列數量與數據類型能一一對應。
CREATE OR REPLACE PROCEDURE p_refcursor IS v_cur SYS_REFCURSOR; --定義動態游標 TYPE t_type IS RECORD( v_id VARCHAR2(3000), v_content clob); --自定義結果集類型 v_result t_type; --定義一個t_type類型的變量,用來存放后續查詢結果,或table%rowtype --v_result test%rowtype; v_sql VARCHAR(3000); BEGIN v_sql := 'select uniqueid,name from test'; --這里sql語句可以是動態的(拼接變量),更加靈活 OPEN v_cur FOR v_sql; --打開游標 FETCH v_cur INTO v_result; --賦值給v_result WHILE v_cur%FOUND LOOP --游標循環 DBMS_OUTPUT.put_line(v_result.v_id || v_result.v_content); FETCH v_cur INTO v_result; --賦值下一條 END LOOP; CLOSE v_cur; --關閉游標 END;
浙公網安備 33010602011771號