PL_SQL学习
Posted JimKing
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PL_SQL学习相关的知识,希望对你有一定的参考价值。
打印输出: dbms_output.put_line(‘AA‘);
显示服务器输出信息 set serveroutput on;
打印出eid=1的员工姓名:
declare v_name varchar2(20); begin select ename into v_name from emp where eid = 1; dbms_output.put_line(v_name); end; /
抛出异常:
declare v_num number := 0; begin v_num := 2/v_num; dbms_output.put_line(v_num); exception when others then dbms_output.put_line(‘error‘); end; /
使用%type进行目标类型赋值(若表字段类型改变时变量的类型也会实时更改)
declare v_eid emp.eid%type; v_ename emp.ename%type; v_ename2 v_ename%type;
常用变量类型
1. binary_integer::整数,主要用来计数而不是用来表示字段类型。
2. number:数字类型,可以表示整数和小数。
3. char:定长字符串。
4. varchar2:变长字符串
5. date:日期
6. long:长字符串,最长2GB
7. boolean:布尔类型(true,false,null值)
复合数据类型:
Table变量类型(类比java中的数组)
declare -- 首先声明名字为type_table_emp_eid类型的数组 type type_table_emp_eid is table of EMP.EID%type index by binary_integer; v_eids type_table_emp_eid; begin v_eids(0) := 12; v_eids(1) := 11; v_eids(2) := 2; v_eids(-1) := 6; dbms_output.put_line(v_eids(-1)); end;
/
Record变量类型(类比java中的类)
declare type type_record_emp is record ( eid emp.eid%type, ename emp.ename%type, cid emp.cid%type ); v_temp type_record_emp; begin v_temp.eid := 4; v_temp.ename := ‘rose‘; v_temp.cid := 4; dbms_output.put_line(v_temp.eid || ‘-‘ || v_temp.ename); end; /
使用%rowtype声明record变量(表结构发生变化时,rocord变量也会实时变化)
接下来是上面代码的优化版:
declare v_temp emp%rowtype; begin v_temp.eid := 4; v_temp.ename := ‘rose‘; v_temp.cid := 4; dbms_output.put_line(v_temp.eid || ‘-‘ || v_temp.ename); end; /
PL_SQL里的select查询必须和into一块用,而且保证有且只有一条记录
declare v_ename emp.ename%type; v_cid emp.cid%type; begin select ename,cid into v_ename,v_cid from emp where eid = 1; dbms_output.put_line(v_ename || ‘-‘ ||v_cid); end; /
select 与 %rowtype的联合运用
declare v_emp emp%rowtype; begin select * into v_emp from emp where eid = 1; dbms_output.put_line(v_emp.eid || ‘-‘|| v_emp.ename || ‘-‘ || v_emp.cid); end; /
以上是关于PL_SQL学习的主要内容,如果未能解决你的问题,请参考以下文章