4.PLSQL编程

mac2024-06-01  45

一.声明变量,给变量赋值

declare v_name varchar2(30); --声明变量的数据类型和表中的某个列的类型一致 v_job emp.job%type; begin --给变量赋值 v_name:='崔宸'; --通过select给变量赋值,要保证查询结果的唯一性:提那家查询条件 select ename,job into v_name,v_job from emp where empno=7788; --输出变量的值 dbms_output.put_line(v_name||'---'||v_job); end;

二.循环

1.loop循环

declare v_age number(3,0):=1; begin loop if v_age>=18 then exit; end if; v_age:=v_age+1; end loop; dbms_output.put_line('v_age='||v_age); end;

2.while循环

declare v_num number(3,0):=1; v_sum number(6,0):=0; begin while v_num<=100 loop v_sum:=v_sum+v_num; v_num:=v_num+1; end loop; dbms_output.put_line(v_sum); end;

3.for循环

declare v_sum number(4,0):=0; begin for i in 1..100 loop v_sum:=v_sum+i; end loop; dbms_output.put_line(v_sum); end;

三.存储过程

完成业务功能处理,不能返回值

存储过程的参数类型:

in 输入参数–向存储过程内传递值out 输出参数–得到存储过程里的值

例子:

①:

create or replace procedure pro_countemp2(dno in emp.deptno%type, empcount out number) is begin declare v_count number(3,0); begin select count(empno) into v_count from emp where deptno=dno; empcount:=v_count; end; end;

调用存储过程:

declare v_count2 number(3,0):=0; begin pro_countemp2(10,v_count2); --输出v_count的值 dbms_output.put_line(v_count2); end;

②: 声明函数

create or replace function fun_countemp(dno emp.deptno%type) return number is begin declare v_count number(3,0):=0; begin select count(empno) into v_count from emp where deptno=dno; return v_count; end; end;

调用函数

declare v_empCount number(3,0):=0; begin --接收函数的返回值 v_empCount:=fun_countemp(10); dbms_output.put_line(v_empCount); end;
最新回复(0)