日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

动态SQL和PL/SQL的EXECUTE选项分析

發(fā)布時間:2025/3/15 数据库 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 动态SQL和PL/SQL的EXECUTE选项分析 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

EXECUTE IMMEDIATE代替了以前Oracle8i中DBMS_SQL package包.它解析并馬上執(zhí)行動態(tài)的SQL語句或非運行時創(chuàng)建的PL/SQL塊.動態(tài)創(chuàng)建和執(zhí)行SQL語句性能超前,EXECUTE IMMEDIATE的目標(biāo)在于減小企業(yè)費用并獲得較高的性能,較之以前它相當(dāng)容易編碼.盡管DBMS_SQL仍然可用,但是推薦使用EXECUTE IMMEDIATE,因為它獲的收益在包之上。?

使用技巧?
1. EXECUTE IMMEDIATE將不會提交一個DML事務(wù)執(zhí)行,應(yīng)該顯式提交。 如果通過EXECUTE IMMEDIATE處理DML命令,那么在完成以前需要顯式提交或者作為EXECUTE IMMEDIATE自己的一部分. 如果通過EXECUTE IMMEDIATE處理DDL命令,它提交所有以前改變的數(shù)據(jù)。?

2. 不支持返回多行的查詢,這種交互將用臨時表來存儲記錄(參照例子如下)或者用REF cursors.?

3. 當(dāng)執(zhí)行SQL語句時,不要用分號,當(dāng)執(zhí)行PL/SQL塊時,在其尾部用分號。?

4. 在Oracle手冊中,未詳細(xì)覆蓋這些功能。下面的例子展示了所有用到Execute immediate的可能方面.希望能給你帶來方便。?

5. 對于Forms開發(fā)者,當(dāng)在PL/SQL 8.0.6.3.版本中,Forms 6i不能使用此功能。 EXECUTE IMMEDIATE用法例子 1. 在PL/SQL運行DDL語句     ?

BEGIN
?? ?EXECUTE IMMEDIATE 'set role all';
END;


2. 給動態(tài)語句傳值(USING 子句)     ?

DECLARE
?? ?l_depnam VARCHAR2(20) := 'testing';
?? ?l_loc??? VARCHAR2(10) := 'Dubai';
BEGIN
?? ?EXECUTE IMMEDIATE 'insert into dept values (:1, :2, :3)'  using 50,
?? ??? ??? ??? ??? ?? l_depnam, l_loc;
?? ?COMMIT;
END;


3. 從動態(tài)語句檢索值(INTO子句)     ?

DECLARE
?? ?l_cnt VARCHAR2(20);
BEGIN
?? ?EXECUTE IMMEDIATE 'select count(1) from emp'  into l_cnt;
?? ?dbms_output.put_line(l_cnt);
END;


4. 動態(tài)調(diào)用例程.例程中用到的綁定變量參數(shù)必須指定參數(shù)類型.黓認(rèn)為IN類型,其它類型必須顯式指定。

DECLARE
?? ?l_routin VARCHAR2(100) := 'gen2161.get_rowcnt';
?? ?l_tblnam VARCHAR2(20) := 'emp';
?? ?l_cnt??? NUMBER;
?? ?l_status VARCHAR2(200);
BEGIN
?? ?EXECUTE IMMEDIATE 'begin ' ││ l_routin ││ '(:2, :3, :4); end;'
?? ??? ?USING IN l_tblnam, OUT l_cnt, IN OUT l_status;
?? ?IF l_status != 'OK' THEN
?? ??? ?dbms_output.put_line('error');
?? ?END IF;
END;


5. 將返回值傳遞到PL/SQL記錄類型;同樣也可用%rowtype變量。      ?

DECLARE
?? ?TYPE empdtlrec IS RECORD(
?? ??? ?empno? NUMBER(4),
?? ??? ?ename? VARCHAR2(20),
?? ??? ?deptno NUMBER(2));
?? ?empdtl empdtlrec;
BEGIN
?? ?EXECUTE IMMEDIATE 'select empno, ename, deptno ' ││
?? ??? ??? ??? ??? ?? 'from emp where empno = 7934'
?? ??? ?INTO empdtl;
END;


6. 傳遞并檢索值.INTO子句用在USING子句前。     ?

DECLARE
?? ?l_dept PLS_INTEGER := 20;
?? ?l_nam? VARCHAR2(20);
?? ?l_loc? VARCHAR2(20);
BEGIN
?? ?EXECUTE IMMEDIATE 'select dname, loc from dept where deptno = :1'
?? ??? ?INTO l_nam, l_loc
?? ??? ?USING l_dept;
END;


7. 多行查詢選項.對此選項用insert語句填充臨時表,用臨時表進(jìn)行進(jìn)一步的處理,也可以用REF cursors糾正此缺憾。      ?

DECLARE
?? ?l_sal PLS_INTEGER := 2000;
BEGIN
?? ?EXECUTE IMMEDIATE 'insert into temp(empno, ename) ' ││
?? ??? ??? ??? ??? ?? '???? select empno, ename from emp ' ││
?? ??? ??? ??? ??? ?? '???? where sal > :1'
?? ??? ?USING l_sal;
?? ?COMMIT;
END;


對于處理動態(tài)語句,EXECUTE IMMEDIATE比以前可能用到的更容易并且更高效.當(dāng)意圖執(zhí)行動態(tài)語句時,適當(dāng)?shù)靥幚懋惓8又匾?應(yīng)該關(guān)注于捕獲所有可能的異常。

總結(jié)

以上是生活随笔為你收集整理的动态SQL和PL/SQL的EXECUTE选项分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 黄色二级视频 | 国产一级在线观看视频 | 丰满的女邻居 | 欧美色就是色 | 女女互慰揉小黄文 | 久久亚洲av午夜福利精品一区 | 偷拍亚洲欧美 | 中文字幕一区二区人妻 | 一区二区网站 | 99精品视频一区二区 | 天天插天天 | 久久亚洲aⅴ无码精品 | 日本韩国在线播放 | 国产一区二区三区视频免费观看 | 久久久久久久9999 | h在线| 一区二区三区在线观看免费 | 一级大毛片 | 日韩av电影网 | 波多野结衣在线 | 美女国产网站 | 中国三级视频 | 国产盗摄在线观看 | 国产刺激对白 | 毛片av网站 | 亚洲精品久久夜色撩人男男小说 | 探花av在线 | 亚洲视频手机在线 | 激情国产在线 | 国产毛片毛片毛片毛片毛片 | 日韩精品极品 | 露脸啪啪清纯大学生美女 | 性xxxx欧美老肥妇牲乱 | 欧美欧美欧美 | 精品国产户外野外 | 91九色网站 | 99爱视频在线 | 宅男午夜影院 | 69久人妻无码精品一区 | 九九九热视频 | 黄色在线免费网站 | 亚洲色图婷婷 | 男女aa视频| 成年在线观看视频 | 久久激情五月 | japan高清日本乱xxxxx | 国模吧一区二区三区 | 三级三级久久三级久久18 | 亚洲国产成人精品女人久久 | 亚洲天堂手机在线 | 激情五月激情 | 国产精品久久久久久久免费观看 | 最近中文字幕mv免费高清在线 | 91偷拍视频| 色呦呦在线看 | 99久久精品免费视频 | 欧美激情久久久久 | 污视频在线免费观看 | 亚洲毛片在线播放 | 国产小视频在线播放 | 日韩av少妇 | 日本不卡在线 | 欧美亚洲国产一区二区三区 | 日韩精品久久久久久免费 | 加勒比在线免费视频 | 90岁老太婆乱淫 | japanese在线| 中文在线√天堂 | 国产精品一区久久 | 国产三级按摩推拿按摩 | 蜜桃av网站 | 日韩成人在线影院 | 成人免费视频网站在线看 | 长篇高h肉爽文丝袜 | 一级肉体全黄裸片中国 | 成人国产免费 | 黄色一级生活片 | 蜜臀久久99精品久久久久宅男 | 中文天堂av | 狠狠操很很干 | 超碰伊人| 久久国产露脸精品国产 | 人妻丰满熟妇av无码久久洗澡 | 一级在线视频 | av无码一区二区三区 | 男人的天堂网在线 | 日本免费观看视频 | 一区二区有码 | 无码人妻丰满熟妇啪啪网站 | 在线看成人av | 久草这里只有精品 | 欧美高清性xxxx | 蜜臀久久精品久久久久 | 国产精品视屏 | 日韩欧美久久精品 | 国产一区二区三区精品愉拍 | 少妇高清精品毛片在线视频 | 韩国av免费在线观看 | 国产精品扒开腿做爽爽爽视频 |