Oracle的pl/sql变量类型
pl/sql定义 sql是结构化查询语言。sql是不是一个编程语言?编程语言一般都能够声明变量,写条件判断,循环。sql不具备这 pl/sql块 pl/sql匿名块的结构: 注意:1,pl/sql块 变量名,关键字不区分大小写。 变量和常量 ? 声明变量 : 变量类型 其他类型 ?%type类型(列类型) %type类型指的是声明变量的时候,该变量参考某个表的某个列的类型。 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; %rowtype(行类型) declare -- 声明行类型变量 v_emp emp%rowtype; begin -- 业务逻辑执行部分 select * into v_emp from emp where empno=&请输入员工编号; -- 把员工姓名打印到控制台 dbms_output.put_line(‘员工姓名:‘||v_emp.ename||‘,基本工资:‘||v_emp.sal||‘,奖金:‘||v_emp.comm ||‘雇佣日期:‘||v_emp.hiredate); exception -- 异常处理部分 when no_data_found then dbms_output.put_line(‘您输入的员工编号不存在‘); end; record类型(记录类型) declare -- 声明record类型 type emp_record_type is record( ename emp.ename%type,sal emp.sal%type,total emp.sal%type ); -- 声明record类型的变量 v_emp emp_record_type; begin -- 查询数据,给变量赋值 select ename,sal,sal+nvl(comm,0) into v_emp from emp where empno=&no; -- 输入record类型变量中的数据 dbms_output.put_line(‘员工姓名:‘||v_emp.ename||‘,总工资:‘||v_emp.total); end; table类型 (表类型) declare -- 声明table类型 is table of 后可以跟行类型,也可以是记录类型 type emp_table_type is table of emp%rowtype -- 指定下标的增长方式为整数,每次增长1 index by binary_integer; -- 声明table类型的变量 v_emp emp_table_type; begin -- 把编号为7369的员工的信息存储到table类型变量中 select * into v_emp(1) from emp where empno=7369; -- 把编号为7499的员工的信息存储到table类型变量中 select * into v_emp(2) from emp where empno=7499; --数据table类型变量中的数据 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; (编辑:青岛站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |