码迷,mamicode.com
首页 > 数据库 > 详细

Oracle 语句收集

时间:2016-03-24 20:00:10      阅读:408      评论:0      收藏:0      [点我收藏+]

标签:

declare   
--定义变量    
v_ename varchar2(5);    
 v_sal  number(7,2);    
begin   
--执行部分    
select ename,sal into v_ename,v_sal from emp where empno=&aa;    
 --在控制台显示用户名    
dbms_output.put_line(用户名是:||v_ename|| 工资:||v_sal);    
--异常处理    
exception    
when no_data_found then   
    dbms_output.put_line(朋友,你的编号输入有误!);    
end;   

 

  --输入雇员的姓名,返回该雇员的年薪    
  create function annual_incomec(name varchar2)    
  return number is   
  annual_salazy number(7,2);    
  begin   
      --执行部分    
      select sal*12+nvl(comm, 0) into annual_salazy from emp where ename=name;    
      return annual_salazy;    
  end;  

 

  create package sp_package is   
    procedure update_sal(name varchar2, newsal number);    
    function annual_income(name varchar2) return number;    
  end; 

 

declare   
    c_tax_rate number(3,2):=0.03;    
    --用户名    
    v_ename varchar2(5);    
    v_sal number(7,2);    
    v_tax_sal number(7,2);    
  begin   
  --执行    
      select ename,sal into v_ename,v_sal from emp where empno=&no;    
--计算所得税    
    v_tax_sal := v_sal*c_tax_rate;    
--输出    
   dbms_output.put_line(姓名是:||v_ename||工资:||v_sal|| 交税:||v_tax_sal);    
end;    

 

  declare   
    --定义一个pl/sql记录类型emp_record_type,类型包含3个数据name,salary,title。说白了,就是一个类型可以存放3个数据,主要是为了好管理    
    type emp_record_type is record(    
      name   emp.ename%type,    
      salary emp.sal%type,    
      title  emp.job%type);    
  --定义了一个sp_record变量,这个变量的类型是emp_record_type    
    sp_record emp_record_type;    
  begin   
  select ename, sal, job into sp_record from emp where empno =7788;    
  dbms_output.put_line (员工名: || sp_record.name);    
end;   

 

  declare   
  --定义了一个pl/sql表类型sp_table_type,该类型是用于存放
emp.ename%type    
  --index by binary_integer 表示下标是整数    
    type sp_table_type is table of emp.ename%type     
    index by binary_integer;    
  --定义了一个sp_table变量,这个变量的类型是sp_table_type    
    sp_table sp_table_type;    
  begin   
    select ename into sp_table(-1) from emp where empno = 7788;  
  
  dbms_output.put_line(员工名: || sp_table(-1));    
end; 

 

  declare   
  --定义游标sp_emp_cursor     
      type sp_emp_cursor is ref cursor;    
  --定义一个游标变量    
      test_cursor sp_emp_cursor;       
  --定义变量    
  v_ename emp.ename%type;     
  v_sal emp.sal%type;    
  begin   
--执行    
--把test_cursor和一个select结合    
open test_cursor for select ename,sal from emp where deptno=&no;    
--循环取出    
loop    
    fetch test_cursor into v_ename,v_sal;    
    --判断是否test_cursor为空    
    exit when test_cursor%notfound;    
    dbms_output.put_line(名字:||v_ename|| 工资:||v_sal);    
end loop;    
end;    
/ 

 

Oracle 语句收集

标签:

原文地址:http://www.cnblogs.com/FH-cnblogs/p/5316745.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!