婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 批處理 動態sql

批處理 動態sql

熱門標簽:外呼系統改進 湖南電腦外呼系統平臺 地圖標注牌 長沙智能外呼系統 分享百度地圖標注多個位置 電銷機器人公司 需要哪些牌照 菏澤語音電銷機器人加盟公司 知名電銷機器人價格 廣東防封卡外呼系統原理是什么
1.
DECLARE
TYPE ref_cursor_type IS ref CURSOR;
v_mycursor ref_cursor_type;
TYPE id_list IS TABLE OF integer;
TYPE name_list IS TABLE OF varchar2(30);
v_tabid id_list:=id_list();
v_tabname name_list:=name_list();
sql_str varchar2(200);
BEGIN
--查詢所以行,放在集合里
sql_str:='select empno,ename from emp';
sql_str:=sql_str||' order by empno desc';
execute immediate sql_str BULK COLLECT INTO v_tabid,v_tabname;
FOR c IN v_tabid.first..v_tabid.last LOOP
dbms_output.put_line('empno為'||v_tabid(c)||' 記錄的NAME為'||v_tabname(c));
END LOOP;
dbms_output.put_line('---------------------------------');
--更新(返回更新后的值)
sql_str:='update emp set empno=1+empno,ename=''a'' where rownum=1 RETURNING empno,ename into :1,:2 ';
execute immediate sql_str RETURNING BULK COLLECT INTO v_tabid, v_tabname;
FOR c IN v_tabid.first..v_tabid.last LOOP
dbms_output.put_line('empno為'||v_tabid(c)||' 記錄的NAME為'||v_tabname(c));
END LOOP;
dbms_output.put_line('---------------------------------');
--刪除(返回被刪除的行)
sql_str:='delete from emp where rownum=2 RETURNING empno,ename into :1,:2 ';
execute immediate sql_str RETURNING BULK COLLECT INTO v_tabid, v_tabname;
FOR c IN v_tabid.first..v_tabid.last LOOP
dbms_output.put_line('empno為'||v_tabid(c)||' 記錄的NAME為'||v_tabname(c));
END LOOP;
dbms_output.put_line('---------------------------------');
--插入(返回插入的行)
sql_str:='insert into emp(empno,ename) values(1,''abc'') RETURNING empno,ename into :1,:2 ';
execute immediate sql_str RETURNING BULK COLLECT INTO v_tabid, v_tabname;
FOR c IN v_tabid.first..v_tabid.last LOOP
dbms_output.put_line('empno為'||v_tabid(c)||' 記錄的NAME為'||v_tabname(c));
END LOOP;
dbms_output.put_line('---------------------------------');
/* 批fetch
語法:
fetch dynamic_cursor
bulk collect into define_variable[,define_variable...]
*/
sql_str:='select empno,ename from emp';
sql_str:=sql_str||' order by empno desc';
OPEN v_mycursor FOR sql_str;
--取
FETCH v_mycursor BULK COLLECT INTO v_tabid,v_tabname;
--關
CLOSE v_mycursor;
--輸
FOR c IN v_tabid.first..v_tabid.last LOOP
dbms_output.put_line('empno為'||v_tabid(c)||' 記錄的NAME為'||v_tabname(c));
END LOOP;
dbms_output.put_line('---------------------------------');
END;
2.-------
forall
DECLARE
/*批forall
語法:動態字符串必須為insert/update/delete,不能為select
forall index in lower..upper
execute immediate dynamic_string
using bind |bind(index)[,bind |bind(index)...]
[{returning|return} bulk collect into bind_argument[,bind_argument...]];
*/
TYPE sal_list IS TABLE OF number(8,2);
TYPE name_list IS TABLE OF varchar2(30);
TYPE dept_list IS VARRAY(15) OF integer;
v_depts dept_list:=dept_list(10,20,30,40,50,60,70,80);
v_tabsal sal_list:=sal_list();
v_tabname name_list:=name_list();
sql_str varchar2(200);
BEGIN
sql_str:='update emp set sal=sal*:arg1 where DEPTNO=:arg2';
sql_str:=sql_str||' returning ename,sal into :arg3,:arg4';
--給前面4個部門加薪10%,并返回結果到集合.
FORALL j IN 1..4
execute immediate sql_str
using 1.10,v_depts(j)
RETURNING BULK COLLECT INTO v_tabname,v_tabsal;
--顯示結果
FOR j IN v_tabname.first..v_tabname.last LOOP
dbms_output.put_line('雇員'||v_tabname(j)
||' 的薪水被提到'||v_tabsal(j));
END LOOP;
dbms_output.put_line('---------------------------------');
--給后面4個部門加薪20%,并返回結果到集合.
FORALL j IN 5..8
execute immediate sql_str
using 1.20,v_depts(j)
RETURNING BULK COLLECT INTO v_tabname,v_tabsal;
--顯示結果(用notfound判斷是否有結果集)
IF SQL%NOTFOUND THEN
dbms_output.put_line('無數據更新');
ELSE
FOR j IN v_tabname.first..v_tabname.last LOOP
dbms_output.put_line('雇員'||v_tabname(j)
||' 的薪水被提到'||v_tabsal(j));
END LOOP;
END IF;
END;
3.用一個值綁定綁定名稱相同的值.
把sql語句用begin end括起來就能實現
如:
execute immediate 'begin calc_stats(:x,:x,:y,:x,:y); end;' using a,b;
將A與X綁定,當第二次出來不同名稱時,與B綁定,以此類推
您可能感興趣的文章:
  • 基于Oracle的高性能動態SQL程序開發
  • 為什么ASP中執行動態SQL總報錯誤信息?提示語句語法錯誤
  • 動態SQL語句使用心得
  • sqlserver 支持定位當前頁,自定義排序的分頁SQL(拒絕動態SQL)
  • 編程經驗點滴 動態SQL的拼接技巧
  • oracle中動態SQL使用詳細介紹
  • mysql存儲過程 在動態SQL內獲取返回值的方法詳解
  • MySQL 存儲過程中執行動態SQL語句的方法
  • mybatis的動態sql詳解(精)

標簽:西寧 天水 珠海 呼和浩特 美容院 福建 泉州 商洛

巨人網絡通訊聲明:本文標題《批處理 動態sql》,本文關鍵詞  批處理,動態,sql,批處理,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《批處理 動態sql》相關的同類信息!
  • 本頁收集關于批處理 動態sql的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 嘉黎县| 息烽县| 连州市| 冕宁县| 贵州省| 策勒县| 宽甸| 佛坪县| 武邑县| 新化县| 新乡县| 施甸县| 卢龙县| 治多县| 民权县| 阳信县| 拉萨市| 寿宁县| 易门县| 临泉县| 西林县| 梓潼县| 铜川市| 靖边县| 太和县| 濉溪县| 太原市| 青铜峡市| 南宫市| 郧西县| 花莲市| 台江县| 周至县| 余干县| 河北省| 合作市| 远安县| 徐州市| 望城县| 韶山市| 且末县|