pl/sql基础练习

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pl/sql基础练习相关的知识,希望对你有一定的参考价值。



pl/sql块:
1 匿名块            ----不能存储,不能共享
2 存储过程 函数 触发器 包   ----带有名称的块,可以存储在oracle服务器上,可以共享和多次调用。

1 匿名块
begin
sql
sql
end;
匿名块示例:
SQL >begin
    for i in 1..1000 loop
    insert into t1 values(i);
    end loop;
    commit;
    end;
    /


一个pl/sql应用程序由一个或者多个块组成。



pl/sql语言基础
块结构:
declare
声明变量(常量 变量 游标)
begin
执行部分
exception
异常部分(可选)
end;




set serveroutput on
服务器的输出信息打印在plus窗口里

SQL> set serveroutput on
SQL>
SQL> begin
  2  dbms_output.put_line(‘Hello World‘);
  3  end;
  4  /
Hello World
PL/SQL procedure successfully completed




匿名块只能在当前用户当前会话使用,无法被其他用户调用。
命名块:带有名称的匿名块


变量作用:传递数据



案例:打印员工的姓名和工资

set serveroutput on
   declare
    v_ename varchar2(10);
    v_sal   number(7,2);
     begin
      select ename,sal
      into v_ename,v_sal
      from emp where empno=#
      dbms_output.put_line(‘Employees name is: ‘||v_ename);
      dbms_output.put_line(‘Employees sal is: ‘ ||v_sal);
     end;
   /
Employees name is: SCOTT
Employees sal is: 3000
PL/SQL procedure successfully completed





set serveroutput on
declare
v_ename varchar2(10);
v_sal   number(7,2);
c_empno constant number(4):=7788;  ----声明一个常量
begin
  select ename,sal
  into v_ename,v_sal
  from emp where empno=c_empno;
  dbms_output.put_line(‘Employees name is: ‘||v_ename);
  dbms_output.put_line(‘Employees sal is: ‘ ||v_sal);
 end;
定义变量时赋值或者执行时赋值
set serveroutput on
declare
v_ename varchar2(10);
v_sal   number(7,2);
c_empno number(4);
begin
  c_empno:=7788;
  select ename,sal
  into v_ename,v_sal
  from emp where empno=c_empno;
  dbms_output.put_line(‘Employees name is: ‘||v_ename);
  dbms_output.put_line(‘Employees sal is: ‘ ||v_sal);
 end;



set serveroutput on
   declare
    v_ename varchar2(10);
    v_sal   number(7,2);
   begin
      select ename,sal
      into v_ename,v_sal
      from emp where empno=#
      dbms_output.put_line(‘Employees name is: ‘||v_ename);
      dbms_output.put_line(‘Employees sal is: ‘ ||v_sal);
   exception
     when NO_DATA_FOUND then
    dbms_output.put_line(‘Please input currect number!‘);
     end;



定义布尔类型,并且设置默认值
v_valid boolean not null default false;

v_name emp.ename%TYPE;  -----变量类型会随emp.ename字段类型改变,也就是%type保证变量的数据类型和表中字段的数据类型一致

以上是关于pl/sql基础练习的主要内容,如果未能解决你的问题,请参考以下文章

实验七-附加:PL/SQL编程基础

PL/SQL练习基本的PL/SQL语句

pl/sql练习

PL/SQL 触发器练习

pl/sql练习案例

PL/SQL练习函数