资源描述:
《oracle学习第六天》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、ORACLE学习第六天oracle学习第六天PL/SQL块declarebegin--SQL语句--直接写的SQL语句(DML/TCL)--间接写executeimmediate--select语句<1>必须带有into子句selectempnointoenofromempwhereempno=7369;<2>只能查到一行**********<3>字段个数必须和变量的个数一致exception--异常when<异常名字>then--特定异常<处理语句>whenothersthen--所有异常都可捕获<处理语句>end;<例子>
2、编写程序向DEPT表中插入一条记录,从键盘输入数据,如果数据类型输入错误要有提示无法插入记录也要有提示只能输入正数,如果有负数提示declarennumber;nodept.deptno%type;nmdept.dname%type;lcdept.loc%type;expexception;--异常的变量exp1exception;numnumber:=0;--计数器pragmaexception_init(exp,-1);--预定义语句--(-1错误和异常变量关联)pragmaexception_init(exp1,-1476);e1exception
3、;--自定义异常变量begin--输入值no:='&编号';num:=num+1;ifno<0thenraisee1;--自定义异常的引发endif;nm:='&名称';num:=num+1;lc:='&地址';num:=num+1;n:=10/0;insertintodeptvalues(no,nm,lc);num:=num+1;commit;exception--自定义异常whene1thendbms_output.put_line('编号不能为负数');--数据类型不对whenvalue_errorthenifnum=0thendbms_outpu
4、t.put_line('编号数据类型不对');elsifnum=1thendbms_output.put_line('名称数据类型不对');elsifnum=2thendbms_output.put_line('地址数据类型不对');endif;rollback;--主键冲突whenexpthen--sqlcode全局变量异常错误号--sqlerrm全局变量异常的文字信息--dbms_output.put_line('异常的编号:'
5、
6、sqlcode);--dbms_output.put_line('异常的内容:'
7、
8、sqlerrm);--dbms_ou
9、tput.put_line('编号已存在');rollback;--非预定义异常(关联错误号)whenexp1then--dbms_output.put_line('0做了除数');raise_application_error(-20001,'0做了除数');--引起一个自定义的错误--预先保留-20001到-29999编号rollback;--其他的异常whenothersthendbms_output.put_line('异常的编号:'
10、
11、sqlcode);dbms_output.put_line('异常的内容:'
12、
13、sqlerrm);--dbms
14、_output.put_line('出现错误');rollback;end;--insertintodeptvalues(40,'asdf','asdf');<简单的做法>--存放异常的createtablesave_exp(bhnumber,wzvarchar2(1000));declarenodept.deptno%type;nmdept.dname%type;lcdept.loc%type;errnonumber;errtextvarchar2(1000);beginno:='&编号';nm:='&名称';lc:='&地址';insertintod
15、eptvalues(no,nm,lc);commit;exceptionwhenothersthenrollback;errno:=sqlcode;errtext:=sqlerrm;insertintosave_expvalues(errno,errtext);commit;end;<游标>内存中的一块区域,存放的是select的结果1。隐式游标单条sql语句所产生的结果集合用关键字SQL表示隐式游标4个属性%rowcount影响的记录的行数整数%found影响到了记录true%notfound没有影响到记录true%isopen是否打开布尔值永远是fa
16、lse多条sql语句隐式游标SQL永远指的是最后一条sql语句的结果主要使用在u