-
declare cursor cur1 is select deptno from dept; cursor cur2(dno number) is select sal from emp where deptno=dno; pdeptno number; psal number; count1 number; count2 number; count3 number; saltotal number; begin open cur1; loop fetch cur1 into pdeptno; exit when cur1%notfound; count1 :=0; count2 :=0; count3 :=0; saltotal :=0; open cur2(pdeptno); loop fetch cur2 into psal; exit when cur2%notfound; if psal<3000 then count1 :=count1+1; elsif psal>=3000 and psal<=6000 then count2 := count2+1; else count3 := count3+1; end if; saltotal := saltotal+psal; end loop; close cur2; insert into msg values(pdeptno,count1,count2,count3,nvl(saltotal,0)); end loop; close cur1; end; /查看全部
-
自定义例外 1.定义变量,类型是exception;栗子:No_data exception; 2.使用raise抛出自定义例外; begin open c1; Fetch c1 into v_job; IF c1%notFOUND then raise no_data; end if; ... EXCEPTION WHEN no_data THEN insert into emp values('fetch语句没有获得数据或数据已经处理完'); end; / 自定义例外:查询50号部门的员工姓名 set serveroutput on declare cursor cemp is select ename from emp where deptno=50; pename emp.ename%type; --自定义例外 no_emp_found eception; begin open cemp; 直接取一个员工的姓名 fetch cemp into pename; close cemp; end; /查看全部
-
too_many_rows set sreveroutput on 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_line('其他例外'); end; /查看全部
-
例外 功能,健壮性,容错性 种类: 系统例外 No_data_found (没有找到数据) Too_many_rows (select...into语句匹配多个行) Zero_Divide (被零除) Value_error (算术或转换错误) Timeout_on_resource (在等待资源时发生超时)分布式数据库 自定义例外查看全部
-
cursor 光标名[(参数名 数据类型[,参数名 数据类型]...)] IS SELECT 语句; 例子: 查询某个部门中员工的姓名 set serveroutput on declare cursor cemp(dno number) is select ename from emp where dedeptno=dno; pename emp.ename%type; begin open cemp(10); loop fetch cemp into pename; exit when cemp%notfound; dbms_output.put_line(pename); end loop; close cemp; end; /查看全部
-
if语句与从键盘接收字符串 accept num prompt "请输入一个数字"; --accept 接收关键字 --num 地址值(地址的值) --prompt 提示关键字 pnum number := # --&表示地址符,&num表示存储在地址num的值 if .. then ..; elsif .. then .. ; else .. ; end if;查看全部
-
--记录型变量-- 记录型变量相当于一个数组,将表中一行的数据类型赋到变量里 使用方法: 变量名 表名%rowtype --赋变量类型 变量名.字段名 --提取该字段的值 other '||' 表示连接符,用来连接字符串,普通字符串要加单引号查看全部
-
PL/SQL引用型变量 及 into赋值给变量: 定义引用型变量:变量名 表名.字段%type 注意:表字段类型改变,变量类型也会改变,因为此时PL/SQL变量是一个更新的过程 将SQL查询到的值赋给变量: select 字段 into 变量 from 表名查看全部
-
PL/SQL 变量 变量定义:变量名 变量类型[:=变量值] 变量赋值:变量名:=变量值查看全部
-
PL/SQL程序结构: declare 说明部分 begin 语句序列 exception 例外处理语句 end; /查看全部
-
简洁程序包文档查看全部
-
oracle PL/SQL 使用基础查看全部
-
cursor 光标 1.光标属性 %found %notfound cursor c1 is select ename from emp; open close fetch作用: 把当前指针指向的记录返回 将指针指向下一条记录 使用光标查询员工和工资,并打印 --查询并打印员工的姓名和薪水 set serveroutput on declare --定义一个光标 cursor cemp is select ename,sal from emp; --为光标定义对应的变量 pename emp.ename%type; psal emp.sal%type; --打开光标 open cemp; loop fetch cemp into pename,psla; exit when cemp%notfound; dbms output.put_line(pename||'的薪水是'||psal); end loop; --关闭光标 begin end查看全部
-
--接收一个键盘输入 --num:地址值,含义是:在该地址上保存了输入的值 accept num prompt '请输入一个数字'; declare --定义变量保存用户从键盘输入的值 pnum number:=查看全部
-
ResultSet rs = "select empno,job from emp"; while(rs.next()){ int eno = rs.getInt("empno"); String job = rs.getString("job"); if("PRESIDENT".equals(job)){ update emp set sal=sal+1000 where empno=eno; }else if("MANAGER".equals(job)){ update emp set sal=sal+800 where empno=eno; }else { update emp set sal=sal+500 where empno=eno; } } PLSQL程序语法 declare --说明(光标,变量,例外) begin --程序体 dbms_output.put_line('Hello word'); end; / --‘/’结束并执行 set serveroutput on / --打开输出开关 PL/查看全部
举报
0/150
提交
取消