-
value_error 算術或者其他轉換錯誤查看全部
-
exception when zero_divide then dbms_output.put_line("1.零不能為除數") dbms_output.put_line("2.零不能為除數") then 相當于一個大括號,后面可以跟多個執行語句. 所有exception 處理后面都別忘記加when others 來處理其他異常()否則會拋給數據庫出錯查看全部
-
Too_many_rows (select....into語句匹配多個行) declare pename emp.ename%type; begin select ename into pename from emp where deptno = 10; exception when too_many_rows then dbms_output.put_line('select into 匹配了多個行'); when others then dbms_output.put_lines('其他異常');查看全部
-
No_data_found 沒有查詢到數據 set serveroutput on declare pename emp.ename%type; begin select ename into pename from emp where empno=1234; exception when no_data_found then dbms_output.put_line('沒有找到該員工'); when othes then dbms_output.put_line('其他例外'); end; /查看全部
-
系統異常: Zero_Divide(被零除) Value_error(算數或轉化錯誤) Timeout_on_resource(在等待資源時發生超時,多發生在分布式數據庫) Data_not_found Too_many_rows查看全部
-
記得cursor打開后還要關閉cursor查看全部
-
cursor cemp (dno number) is select ename from emp where deptno =dno beigin open cemp(10); loop fetch cemp into pename; exit when cemp%notfound; dbms_output.put_line(); end loop close cemp end查看全部
-
光標的參數格式查看全部
-
1光標的屬性 %found %notfound %isopen : 判斷光標是否打開 %rowcount : 影響的行數 2.光標數的限制:默認情況下,oracle數據庫只允許在同一個會話中,打開300個光標 >--切換到管理員,查看數據庫初始化設置 >show user >conn sys/[email protected]:1521/orcl as sysdba >show parameter cursor 修改光標數的限制: alter system set open_cursors=400 scope=both; scope的取值:both(兩個同時更改),memory(只更改當前實例,不更改參數文件),spfile(只更改參數文件,不更改當前文件,數據庫需要重啟) if cemp%isopen then dbms_output.put_line('光標已經打開'); end if; loop --取出一條記錄 fetch cemp into pempno,pjob; exit when cemp%notfound; --打印rowcount的值 dbms_output.put_line('rowcount'||cemp%rowcount); end loop;查看全部
-
the_great_virgo 1光標的屬性 %found %notfound %isopen : 判斷光標是否打開 %rowcount : 影響的行數 2.光標數的限制:默認情況下,oracle數據庫只允許在同一個會話中,打開300個光標 修改光標數的限制: alter system set open_cursors = 400 scope = both; scope 的取值范圍:both,memory,spfile(數據庫需要重啟) memory:只更改當前實例,不更改參數文件 spfile:只更改參數文件,不更改當前實例(數據庫需要重啟) both: memory 跟spfile同時被更改查看全部
-
默認情況下,Oracle數據庫只允許打開300個cursor的數據查看全部
-
commit; 提交 為了ACID查看全部
-
rollback 回滾查看全部
-
原子性,隔離性,一致性,持久性查看全部
-
給不同級別的員工漲工資 declare -- 定義光標代表給哪些員工漲工資 cursor cemp is select empno,empjob from emp; pempno emp.empno%type; pempjob emp.empjob%type; begin rollback; //事務回滾 --打開光標 open cemp; --loop fetch ** into ** ; exit when condition;block;end loop; loop --取出一個員工 fetch cemp into pempno,pempjob; --loop 退出條件 exit when cemp%notfound; -- 判斷員工的職位 if pempjob='PRESIDENT' then update emp set sal=sal+1000 where empno=pempno; -- if condition then block ;elsif condition then block;else block;end if; elsif pempjob='MANAGER' then update emp set sal=sal+800 where empno=pempno; else update emp set sal=sal+400 where empno=pempno; end if; end loop; -- 關閉光標 close cemp; -- oracle的默認事務隔離級別是read committed --事務的ACID 原子性、一致性、隔離性、持久性 commit; end ; /查看全部
舉報
0/150
提交
取消