Oracle PL/SQL块

来源:互联网 发布:直播好无聊 知乎 编辑:程序博客网 时间:2024/05/29 16:22
*PL/SQL块是构成PL/SQL程序的基本单元
*将逻辑上相关的声明和语句组合在一起
*PL/SQL分为三个部分,声明部分、可执行部分和异常处理部分
语法:
/*[DECLARE 
         declarations]
 BEGIN
         executable statements
 [EXCEPTION 
         handlers]
END;*/
declare
  v_age number;      ---声明变量或赋值
  v_age1 number:=120;
  v_age2 number:=&age;  --从键盘输入
begin
   v_age:=20;     --执行部分(逻辑,输出...)
   dbms_output.put_line(v_age ||'---->'|| v_age1||'---->'|| v_age2);  --输出结果  
end;


declare
   age constant number:=80;     --常量
   age1 number default 200;  --默认值
begin
  -- age:=100;  -->重新赋值(不可以的)常量
  dbms_output.put_line(age||'--->'||age1); 
end;


--查询SCOTT员工的编号,职位,薪资信息
select empno,job,sal from emp where ename='SCOTT'


declare
  v_ename varchar2(20):='SCOTT';
  v_empno number;
  v_job   varchar2(20);
  v_sal number(8,2);
begin
  --赋值?  select into
  select empno,job,sal  into v_empno,v_job,v_sal from emp where ename=v_ename; 
   dbms_output.put_line(v_empno ||'---->'|| v_job||'---->'|| v_sal);  --输出结果  
end;




--(1)%TYPE  -  引用变量和数据库列的数据类型
select * from emp;
declare
  v_ename emp.ename%type:='SMITH';   --VARCHAR2(10)
  v_empno emp.empno%type;
  v_job   emp.job%type;
  v_sal emp.sal%type;
begin
  --赋值?  select into
  select empno,job,sal  into v_empno,v_job,v_sal from emp where ename=v_ename; 
   dbms_output.put_line(v_empno ||'---->'|| v_job||'---->'|| v_sal);  --输出结果  
end;




--(2)%ROWTYPE  -  提供表示表中一行的记录类型
declare
  v_ename emp.ename%type:='JONES';   --VARCHAR2(10)
  v_emp emp%rowtype;    --1行的记录类型
begin
  --赋值?  select into
  select empno,job,sal  into v_emp.empno,v_emp.job,v_emp.sal from emp where ename=v_ename; 
   dbms_output.put_line(v_emp.empno ||'---->'|| v_emp.job||'---->'||v_emp.sal);  --输出结果  
end;
0 0
原创粉丝点击