-
exception when no_data_found then dbms_output.put_line('没有找到该员工'); when others then dbms_output.put_line('其他例外'); //通过others捕获所有的例外查看全部
-
例外:1.系统例外:No_data_found(没有找到数据)、Too_many_rows(select ... into 语句匹配多个行)、Zero_Divide(被零除)、Value_error(算数或转换错误)、Timeout_on_resource(在等待资源时发生超时)查看全部
-
PL/SQL是面向过程的结构化查询语言: 该语言的定义结构; declare 说明部分(变量定义/光标申明/例化说明) begin 语句序列(CDML语句) exception 例化处理语句 end; 说明部分: 1:定义基础变量 类型:char,varchar2,date,number,boolean,long 2:引用类型变量: 例如: my_name emp.ename%type; 3:记录类型变量: 例如: emp_rec emp%rowtype;查看全部
-
带参数的光标:cursor cemp(don number) is select ename from emp where deptno=dno;查看全部
-
语法查看全部
-
--给员工涨工资,总裁1000,经理800,其他400 set serveroutput on declare --定义光标代表给哪些员工涨工资 --alter table "SCOTT"."EMP" rename column "JOB" to empjob cursor cemp is select empno,empjob from emp; pempno emp.empno%type; pjob emp.empjob%type; begin --回退刚才涨的工资(之前没加commit运行了脚本,避免影响) rollback; --打开光标 open cemp; loop fetch cemp into pempno,pjob; exit when cemp%notfound; --判断员工的职位 if pjob='PRESIDENT' then update emp set sal=sal+1000 where empno=pempno; elsif pjob='MANAFER' 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; dbms_output.put_line('涨工资完成'); end; /查看全部
-
fetch的作用查看全部
-
--查询并打印员工的姓名和薪水 --光标的属性 %found %notfound set serveroutput on declare --定义一个光标 cursor cemp is select ename,sal from emp; --为光标定义对应的变量(引用变量) pename emp.ename%type; psal emp.sal%type; begin --打开光标 open cemp; loop --抓取一条记录 fetch cemp into pename,psal; exit when cemp%notfound; dbms_output.putline(pename||'的薪水是'||pssal); end loop; --关闭光标 close cemp; end; /查看全部
-
--使用while循环打印数字的1-10 set serveroutput on declare --定义循环变量 pnum number:=1; begin while pnum <=10 loop --循环体 dbms_output.put_line(pnum); --使变量+1 pnum:=pnum + 1; end loop; end; /查看全部
-
--prompt提示的意思 /* 判断用户从键盘输入的数字 1.如何使用if语句 2.接收一个键盘输入(字符串) */ set serveroutput on --接收一个键盘输入 --num:地址值,含义是:在该地址上保存了输入的值 accept num prompt '请输入一个数字'; declare --定义变量保存用户从键盘输入的数字 pnum number:= # --&地址符号,将num地址上的值赋给pnum begin if pnum=0 then dbms_output.put_line('您输入的数字为0'); elsif pnum=1 then dbms_output.put_line('您输入的数字为1'); elsif pnum=2 then dbms_output.put_line('您输入的数字为2'); else dbms_output.put_line('其他数字'); end if; end; /查看全部
-
declare 说明部分(变量说明、光标说明、例外说明) begin 语句序列(DML语句) DDL 数据定义语言 如: create table drop table alter table 等语句 DML 数据操作语言 insert into update delete 等语句 exception 例外处理语句 end; /查看全部
-
--使用记录型变量,打印出7839的姓名和薪水 set serveroutput on declare --定义记录型变量并记录代表一行 emp_rec emp%rowtype; begin --得到7839一行信息 select * into emp_rec from emp where empno='7839'; --打印输出7839的姓名和薪水 dbms_output.put_line(emp_rec.ename||'的薪水'||emp_rec.sal); end; /查看全部
-
--引用型变量 set serveroutput on declare --定义引用型变量:查询并打印7839的姓名和薪水 pename emp.ename%type; psal emp.sal%type; Begin --查询7839的姓名和薪水(1)赋值可以用:=(2)into select ename,sal into pename,psal from emp where empno='7839'; --打印姓名、薪水 dbms_output.put_line(pename||'的薪水'||psal); end; /查看全部
-
set serveroutput on declare --说明部分(变量,光标和例外) begin --程序体 end; --不要忘记分号 / --退出并且执行查看全部
-
PL/SQL (Procedure Language/SQL)过程语言的SQL; PL/SQL是Oracle对sql语言的过程化扩展; --指在SQL命令语言中增加了过程处理语句(如分支、循环等),使SQL语言具有过程处理能力 PL/SQL是面向过程的语言。 不同数据库的SQL扩展 oracle:PL/SQL db2: SQL/PL sql server: Transac-SQL(T-SQL)查看全部
举报
0/150
提交
取消