国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Sql Server - 批處理 動態sql

批處理 動態sql

2019-11-10 16:27mssql教程網 Sql Server

批處理 動態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綁定,以此類推

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 日韩福利视频 | 日韩精品免费 | 狠狠色噜噜狠狠狠狠 | 在线一区二区三区做爰视频网站 | 中日韩av | 7799精品天天综合网 | 国产精品观看 | av亚洲在线 | 久久久久一区二区三区 | 国产a区 | 亚洲激情视频在线 | 日本一区二区电影 | 日日操夜夜操天天操 | 在线视频一区二区三区 | 日本免费在线 | 国产精品欧美久久久 | 国产精品久久久久久久一区探花 | 香蕉久久夜色精品国产使用方法 | 久久亚洲国产精品日日av夜夜 | 超碰首页| 黄色一级视屏 | 亚洲一区二区三区视频 | 九色91九色porny永久 | 日韩欧美一级片 | 午夜精品一区二区三区在线视频 | 久久精品免费一区二区三区 | 久久国产精品视频 | 在线黄av | 久久久一区二区 | 日韩在线观看中文字幕 | 特级av| 一区二区三区欧美在线 | 免费激情网站 | 北条麻妃99精品青青久久 | 久久久91精品国产一区二区三区 | 中文在线观看www | www.四虎.com| av中文字幕在线播放 | 日本精品一区二区三区视频 | 国产精品久久久久久久久 | 午夜私人影院 |