• 匿名块的四个类型(type rowtype record table)



    Oracle PL/SQL块 匿名块的四个类型 type rowtype record table


    ---- type (列类型)  %type类型是指声明变量的时候,参考某个表的某个列的类型
    ---- rowtype (行类型) %rowtype参数某个表的类型,%rowtype中可以存储多个数据,具体可存多少个和表的字段数一样。
    ---- record类型(记录类型) record可以理解为可以自定义的行类型,record类型在使用之前必须声明该类型。
    ---- table类型 (表类型) 无论是行类型还是记录类型只能存储一行数据,如果要存储多行数据,需要用到table类型。table类型也需要先声明类型,再声明该类型的变量。


    declare
    -- 变量声明部分 v_ename 类型参考表emp表的ename类型 v_ename emp.ename%type; v_sal emp.sal%type; begin -- 业务逻辑执行部分 select ename,sal into v_ename,v_sal from emp where empno=&请输入员工编号; -- 把员工姓名打印到控制台 dbms_output.put_line('员工姓名:'||v_ename||',基本工资:'||v_sal); exception -- 异常处理部分 when no_data_found then dbms_output.put_line('你输入的员工编号不存在'); end;
    declare
    -- 变量声明部分   v_ename  类型参考表emp表的ename类型
       v_emp emp%rowtype;
    begin
    -- 业务逻辑执行部分
       select * into v_emp from emp where empno=&请输入员工编号;
    -- 把员工姓名打印到控制台
       dbms_output.put_line('员工编号:'||v_emp.empno||',员工姓名:'||v_emp.ename||',基本工资:'||v_emp.sal||',奖金:'||v_emp.comm||',雇用日期:'||v_emp.hiredate);
    exception
    -- 异常处理部分
       when no_data_found then
       dbms_output.put_line('你输入的员工编号不存在');
    end;
    declare
      type emp_record_type is record(
         ename  emp.ename%type,
         sal emp.sal%type,
         comm emp.comm%type,
         total emp.sal%type
      );
      
      v_emp emp_record_type;
    begin 
      select ename,sal,comm,sal+nvl(comm,0) into v_emp from emp where empno=&no;
      
      dbms_output.put_line('员工姓名:'||v_emp.ename||',基本工资:'||v_emp.sal||
                ',奖金:'||v_emp.comm||',总工资:'||v_emp.total);
    end;
    declare
    -- 声明table类型  is table of 后可以跟行类型,也可以是记录类型
      type emp_table_type is table of emp%rowtype
      index by binary_integer;
      
      v_emp emp_table_type;
    begin 
      select * into v_emp(1) from emp where empno=7369;
      
      select * into v_emp(2) from emp where empno=7499;
      
      dbms_output.put_line('员工姓名:'||v_emp(1).ename||',基本工资:'||v_emp(1).sal||';');
      
      dbms_output.put_line('员工姓名:'||v_emp(2).ename||',基本工资:'||v_emp(2).sal||';');
    end;
  • 相关阅读:
    idea配置tomcat
    idea中配置tomcat乱码问题--记录处理经验
    svn提交报错值 remains tree in conflict
    Vue之MVVM
    python 时间日期处理
    SVN使用指南
    linux查看硬件信息
    软件集成过程标准化的建议
    术语辨析
    科学计数e+转成正常str
  • 原文地址:https://www.cnblogs.com/zhangmenghui/p/10828914.html
Copyright © 2020-2023  润新知