-
/*<br> 1、光标的属性:<br> %found、%notfound<br> %isopen 判断光标是否打开<br> %rowcount 获得光标已经取出的记录条数<br> */<br> declare <br> cursor c_emp is select empno,empjob from emp;<br> p_no emp.empno%type;<br> p_job emp.empjob%type;<br> begin<br> open c_emp;<br> --%isopen<br> if c_emp%isopen then dbms_output.put_line('光标已经打开');<br> else dbms_output.put_line('光标没有打开');<br> end if;<br> --%rowcount<br> loop <br> fetch c_emp into p_no,p_job;<br> exit when c_emp%notfound;<br> DBMS_OUTPUT.PUT_LINE('rowcount:'c_emp%rowcount);<br> end loop;<br> close c_emp;<br> end;<br> /查看全部
-
游标的案例——根据职位给员工涨工资 eg: /* 给员工涨工资。总裁涨1000,经理涨800,普通员工涨400; */ rollback; declare --定义光标 cursor c_emp is select empno,empjob from emp; p_empno emp.empno%type; p_empjob emp.empjob%type; begin --打开游标 open c_emp; loop fetch c_emp into p_empno,p_empjob; exit when c_emp%notfound; --判断 if p_empjob = 'PRESIDENT' then update emp set sal=sal+1000 where empno=p_empno; elsif p_empjob = 'MANAGER' then update emp set sal= sal+800 where empno = p_empno; else update emp set sal=sal+400 where empno=p_empno; end if; end loop; --关闭游标 close c_emp; --提交事务,oracle默认的隔离级别是read committed ,不同连接只能读取提交之后的; commit; dbms_output.put_line('涨工资完成'); end; /查看全部
-
光标的使用: eg: --打开输出开关 set serveroutput on; /* 光标的属性: %found、%notfound */ declare --定义一个光标 cursor c_emp is select ename,sal from emp; --为光标添加两个姓名和薪水变量 pename emp.ename%type; psal emp.sal%type; begin -- 打开光标执行查询 open c_emp; --开始循环 loop --获取一条记录 fetch c_emp into pename,psal; --如果没有取到记录则跳出循环 exit when c_emp%notfound; --打印姓名和薪水 dbms_output.put_line(pename'的薪水是'psal); --结束循环 end loop; --关闭光标 close c_emp; end; /查看全部
-
光标的遍历查看全部
-
光标(游标)的语法查看全部
-
循环语句——for循环 eg: --for循环 declare begin for i in 1..10 loop dbms_output.put_line(i); end loop; end; /查看全部
-
循环语句——Loop循环查看全部
-
循环语句——while...loop循环语句查看全部
-
IF语句的使用: eg: --使用IF语句判断用户从键盘是输入的数字<br> /*<br> 1、如何使用if语句<br> 2、接收一个键盘输入(字符串)<br> */<br> <br> --接收一个键盘输入<br> --num:是一个地制值。含义是:在该地址上保存了输入的值<br> accept num prompt '请输入一个数字'; <br> <br> declare <br> --定义变量保存用户从键盘输入的数字<br> pnum number(5,0) := &num --获取num地址保存的内容<br> begin<br> if pnum=0 then dbms_output.put_line('您输入的数字是0');<br> elsif pnum=1 then dbms_output.put_line('您输入的数字是1');<br> elsif pnum=2 then dbms_output.put_line('您输入的数字是2');<br> else dbms_output.put_line('您输入的数字是其他数字');<br> end if;<br> end;<br> /查看全部
-
declare说明部分——记录型变量 eg: --使用记录型变量,查询并打印7839的姓名和薪水 declare --定义记录行变量(代表的是一行) emp_record emp%rowtype; begin select * into emp_record from emp where empno = 7839; --打印姓名和薪水 DBMS_OUTPUT.PUT_LINE(emp_record.ename||' '||emp_record.sal); end; /查看全部
-
declare说明部分——引用型变量 eg: --引用型变量 set serveroutput on declare --查询并打印7839的姓名和薪水 pename emp.ename%type; psal emp.sal%type; begin --得到7839的姓名和薪水 select ename,sal into pename,psal from emp where empno=7839; --打印姓名和薪水 DBMS_OUTPUT.put_line(pename||':'||psal); end; / desc emp;查看全部
-
declare说明部分——变量定义 --使用基本变量类型 declare --基本数据类型 pnumber number(7,2); --字符串变量 pname varchar2(20); --日期变量 pdate date; begin pnumber :=1; pname:='Tom'; pdate:=sysdate; DBMS_OUTPUT.PUT_LINE(pnumber); DBMS_OUTPUT.PUT_LINE(pname); DBMS_OUTPUT.PUT_LINE(pdate); --计算明天的日期 DBMS_OUTPUT.PUT_LINE(pdate+1); end;查看全部
-
PL/SQL的程序结构查看全部
-
不同数据库对sql的扩展查看全部
-
PL/SQL是操作oracle数据库效率最高的语言查看全部
举报
0/150
提交
取消