首页 > 数据库技术 > 详细

pl/sql基础练习

时间:2016-11-23 00:02:09      阅读:318      评论:0      收藏:0      [点我收藏+]



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基础练习

原文:http://duxiutemp.blog.51cto.com/10788420/1875511

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!