存储过程
Posted yuefeng123
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了存储过程相关的知识,希望对你有一定的参考价值。
-- 声明一个人的信息,姓名、薪水、地址 declare -- Local variables here -- 姓名 v_name varchar2(50) := ‘张三‘; --薪水 v_sal number(11,2); --地址 v_addr varchar2(200); begin -- 直接赋值 v_sal := 15800; -- 语句赋值 select ‘上海传智博客‘ INTO v_addr FROM dual; --打印变量 dbms_output.put_line(‘姓名:‘ || v_name || ‘,薪水:‘ || v_sal); dbms_output.put_line(‘地址:‘ || v_addr); end;
002:引用变量(表中数据列对应声明的变量) -- 查询emp表中8192号员工的个人信息,打印姓名和薪水 declare -- 姓名 v_ename emp.ename%type; --薪水 v_sal emp.sal%type; begin -- 查询姓名和薪水赋值给变量 select ename,sal into v_ename,v_sal from emp where empno=8192; dbms_output.put_line(‘姓名:‘ || v_ename || ‘,薪水:‘ || v_sal); end;
003:记录型变量(表中一行数据) -- 查询emp表中8192号员工的个人信息,打印姓名和薪水 declare --记录型变量 v_emp emp%rowtype; begin --查询 select * into v_emp from emp where empno=8192; --打印 dbms_output.put_line(‘姓名:‘||v_emp.ename || ‘,薪水:‘ || v_emp.sal); end;
004:if与elsif -- 查询emp表中记录是否超过20条,10-20之间,或者10条以下 declare -- 声明变量接收emp表中的记录数 v_count number; begin select count(1) into v_count from emp; if v_count>20 then dbms_output.put_line(‘emp表的记录数超过20条:‘||v_count); ELSIF v_count>=10 then dbms_output.put_line(‘emp表的记录数在10-20之间:‘||v_count); ELSE dbms_output.put_line(‘emp表的记录数在10条以下:‘ || v_count); end if; end;
005:LOOP(循环) --打印数字1-10 declare -- -声明一个循环变量 v_num number := 1; begin loop exit when v_num>10; dbms_output.put_line(v_num); --循环变量的自增长 v_num:=v_num+1; end loop; end;
以上是关于存储过程的主要内容,如果未能解决你的问题,请参考以下文章