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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 簡單型別與複雜型別及原型鏈型別原型
- javascript複雜型別如何傳參JavaScript型別
- BIRT 中如何根據引數動態拼接 SQLSQL
- 解析型別引數型別
- PL/SQL基本結構---PLSQL複合型別---表型別變數tableSQL型別變數
- hive複雜資料型別的用法Hive資料型別
- Dynamics CRM JS通過WebAPI呼叫Action時,返回引數為複雜型別時的BUG驗證JSWebAPI型別
- MyBatis對動態SQL的支援MyBatisSQL
- SQL 複雜查詢SQL
- 【Scala之旅】型別引數型別
- Python 序列型別以及函式引數型別Python型別函式
- std::packaged_task<返回型別(引數型別)>Package型別
- 淺談程式語言型別的強型別,弱型別,動態型別,靜態型別型別
- Java™ 教程(有界型別引數)Java型別
- C++型別引數化C++型別
- mybatis引數型別錯誤MyBatis型別
- Flutter解析複雜JSON泛型方案--拋磚引玉篇FlutterJSON泛型
- oracle數值型別漫談Oracle型別
- 函式引數 引數定義函式型別函式型別
- PB帶引數帶結果集的動態SQL查詢SQL
- oracle表複雜查詢Oracle
- 動態路由(URL引數)路由
- 【SQL】Oracle避免動態SQL,提高過程執行效率SQLOracle
- 複雜性Complex與複雜Complicated區別 - Sonja
- PHP 用 Enum 限定引數型別PHP型別
- 複雜SQL分析和編寫SQL
- 複雜SQL構造資料:SQL
- Oracle vs PostgreSQL Develop(23) - PL(pg)sql(引數宣告)OracleSQLdev
- 複雜報表設計之動態報表
- 如何完成複雜查詢的動態構建?
- 使用ajax請求傳送複雜的json資料型別,並解決fastjson解析複雜的json資料型別的問題JSON資料型別AST
- Python函式/動態引數/關鍵字引數Python函式
- Solidity-變數和資料型別[複合型別_1]Solid變數資料型別
- Redis基礎、常用型別介紹、時間複雜度Redis型別時間複雜度
- TypeScript魔法堂:函式型別宣告其實很複雜TypeScript函式型別
- SQL學習(三) 複雜查詢SQL
- XML Schema 複雜元素型別詳解:定義及示例解析XML型別
- Typescript複雜型別的宣告:寫一個工具函式庫TypeScript型別函式
- C語言中的複雜資料型別,你掌握了哪些?C語言資料型別