fgdfg 发表于 2018-10-21 06:57:12

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
  2dbms_output.put_line('Hello World');
  3end;
  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保证变量的数据类型和表中字段的数据类型一致

页: [1]
查看完整版本: pl/sql基础练习