Oracle動態SQL引數支援複雜型別
一直以為動態SQL中的繫結變數只能支援簡單資料型別,今天試了一下rowtype, PL/SQL引擎是可以支援的。以下是程式碼,scott使用者可以執行
DECLARE
CURSOR cur_emp IS
SELECT * FROM emp;
v_emp emp%ROWTYPE;
BEGIN
OPEN cur_emp;
LOOP
FETCH cur_emp
INTO v_emp;
EXIT WHEN cur_emp%NOTFOUND;
EXECUTE IMMEDIATE 'begin test_param_type(:1); end;'
USING v_emp;
END LOOP;
CLOSE cur_emp;
END;
CREATE PROCEDURE test_param_type(p_emp emp%ROWTYPE) IS
BEGIN
dbms_output.put_line(p_emp.ename);
END;
/BEGIN
dbms_output.put_line(p_emp.ename);
END;
DECLARE
CURSOR cur_emp IS
SELECT * FROM emp;
v_emp emp%ROWTYPE;
BEGIN
OPEN cur_emp;
LOOP
FETCH cur_emp
INTO v_emp;
EXIT WHEN cur_emp%NOTFOUND;
EXECUTE IMMEDIATE 'begin test_param_type(:1); end;'
USING v_emp;
END LOOP;
CLOSE cur_emp;
END;
/
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8520577/viewspace-1061206/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 靜態引數與動態引數型別介紹Oracle型別
- Oracle動態、靜態引數引數修改規則Oracle
- 動態引數,靜態引數
- mybatis sql String>Double, 型別引數被強轉為數值型別MyBatisSQL型別
- ORACLE中帶引數、REF遊標及動態SQL例項OracleSQL
- 簡單型別與複雜型別及原型鏈型別原型
- javascript複雜型別如何傳參JavaScript型別
- CXF--處理複雜型別型別
- 解析型別引數型別
- hive複雜資料型別的用法Hive資料型別
- Java複雜資料型別用法 (轉)Java資料型別
- Dynamics CRM JS通過WebAPI呼叫Action時,返回引數為複雜型別時的BUG驗證JSWebAPI型別
- 關於靜態引數和動態引數
- BIRT 中如何根據引數動態拼接 SQLSQL
- PL/SQL基本結構---PLSQL複合型別---表型別變數tableSQL型別變數
- 【Scala之旅】型別引數型別
- Oracle 動態SQLOracleSQL
- PL/SQL複合資料型別SQL資料型別
- MyBatis引數傳入集合之foreach動態sqlMyBatisSQL
- MyBatis對動態SQL的支援MyBatisSQL
- SQL引數資料型別text對於replace函式的引數1無效SQL資料型別函式
- Oracle Lob型別相關引數以及效能影響Oracle型別
- std::packaged_task<返回型別(引數型別)>Package型別
- 淺談程式語言型別的強型別,弱型別,動態型別,靜態型別型別
- 動態引數與靜態引數的判斷、修改
- Java™ 教程(有界型別引數)Java型別
- mybatis引數型別錯誤MyBatis型別
- C++型別引數化C++型別
- SQL 複雜查詢SQL
- SQL複雜查詢SQL
- 如何檢視oracle引數是靜態或者是動態Oracle
- 函式引數 引數定義函式型別函式型別
- 動態路由(URL引數)路由
- Python 序列型別以及函式引數型別Python型別函式
- Oracle遊標型別作為傳入傳出引數Oracle型別
- 引數資料型別 sql_variant 對於 like 函式的引數 1 無效。資料型別SQL函式
- oracle-複合資料型別Oracle資料型別
- PHP 用 Enum 限定引數型別PHP型別