基于oracle数据库的PLSQL编程以及存储过程的创建和使用

PL/SQL编程

declare
begin
  dbms_output.put_line('helloworld!');
  -- line表示换行
end;

基于oracle数据库的PLSQL编程以及存储过程的创建和使用_第1张图片

set serveroutput on; 开启打印输出
/ 表示结束

变量的声明与赋值

declare
  v_name varchar2(20) := '张三';
  v_sal  number;
  v_addr varchar2(200);
begin
  -- 直接赋值
  v_sal := 1111;
  -- 语句赋值
  select '字节跳动' into v_addr from dual;
  -- 打印输出
  dbms_output.put_line(v_name || ' ' || v_sal || ' ' || v_addr);
end;

引用类型的变量

变量的类型和长度取决于 表中字段的类型和长度

表名.列名%type

基于oracle数据库的PLSQL编程以及存储过程的创建和使用_第2张图片
记录类型的变量

表名%rowtype

基于oracle数据库的PLSQL编程以及存储过程的创建和使用_第3张图片

条件分支

declare
  v_count number;
begin
  select count(1) into v_count from emp;
  
  if v_count > 20 then
    dbms_output.put_line(v_count);
  elsif v_count >= 10 then
  -- elseif 少了一个e elsif
    dbms_output.put_line(v_count);
  else
    dbms_output.put_line(v_count);
  end if;
    
end;

循环

loop循环

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;

无参游标

用于临时存储一个查询返回的多行数据

声明、打开、读取、关闭

基于oracle数据库的PLSQL编程以及存储过程的创建和使用_第4张图片
基于oracle数据库的PLSQL编程以及存储过程的创建和使用_第5张图片

--使用游标查询emp表中的所有员工的姓名和工资并且打印出来
declare

  cursor c_emp is select ename,sal from emp;
  v_ename emp.ename%type;
  v_sal emp.sal%type;

begin  
  open c_emp;
  
  loop
    fetch c_emp into v_ename,v_sal;
    exit when c_emp%notfound;
    dbms_output.put_line(v_ename||' '||v_sal);
  end loop;
  
  close c_emp;
end;

基于oracle数据库的PLSQL编程以及存储过程的创建和使用_第6张图片
基于oracle数据库的PLSQL编程以及存储过程的创建和使用_第7张图片
带参游标

--使用游标查询emp表中的所有员工的姓名和工资并且打印出来
declare

  cursor c_emp(v_deptno emp.deptno%type) is select ename,sal from emp where deptno = v_deptno;
  v_ename emp.ename%type;
  v_sal emp.sal%type;

begin  
  open c_emp(10);
  
  loop
    fetch c_emp into v_ename,v_sal;
    exit when c_emp%notfound;
    dbms_output.put_line(v_ename||' '||v_sal);
  end loop;
  
  close c_emp;
end;

基于oracle数据库的PLSQL编程以及存储过程的创建和使用_第8张图片
无参存储过程
基于oracle数据库的PLSQL编程以及存储过程的创建和使用_第9张图片
基于oracle数据库的PLSQL编程以及存储过程的创建和使用_第10张图片
带输入参数的存储过程
基于oracle数据库的PLSQL编程以及存储过程的创建和使用_第11张图片
带输入输出参数的存储过程
基于oracle数据库的PLSQL编程以及存储过程的创建和使用_第12张图片
基于oracle数据库的PLSQL编程以及存储过程的创建和使用_第13张图片

你可能感兴趣的:(数据库,oracle)