执行结果如图9.6所示。 ――――――――――――――――――――――――――――――――――――― declare pi constant number(9):=3.1415926; begin commit; end; ――――――――――――――――――――――――――――――――――――― 【配套程序位置】:第9章/constantdefine.sql。
基本数据类型变量
1. 基本数据类型
PL/SQL中常用的基本数据类型如表9.2所示。
表9.2 常见的数据基本类型
类型标识符 说明
Number 数字型 Int 整数型 Pls_integer 整数型,产生溢出时出现错误 Binary_integer 整数型,表示带符号的整数 Char 定长字符型,最大255个字符 Varchar2 变长字符型,最大2000个字符 Long 变长字符型,最长2GB Date 日期型 Boolean 布尔型(TRUE、FALSE、NULL三者取一)
――――――――――――――――――――――――――――――――――――― declare age number(3):=26; begin commit; end; ――――――――――――――――――――――――――――――――――――― 【配套程序位置】:第9章/basicdatatypedefine.sql。
――――――――――――――――――――――――――――――――――――― set serveroutput on declare type myrecord is record( myrecordnumber int, mycurrentdate date); srecord myrecord; begin select * into srecord from tempuser.testtable where recordnumber=68; dbms_output.put_line(srecord.mycurrentdate); end; ――――――――――――――――――――――――――――――――――――― 【配套程序位置】:第9章/ recordtypedefine.sql。
在【SQLPlus Worksheet】中执行下列PL/SQL程序,该程序定义了名为mytable的复合类型变量,与testtable数据表结构相同,执行结果如图9.10所示。 ――――――――――――――――――――――――――――――――――――― Declare mytable testtable%rowtype; begin select * into mytable from tempuser.testtable where recordnumber=88; dbms_output.put_line(mytable.currentdate); end; ―――――――――――――――――――――――――――――――――――――
【配套程序位置】:第9章/ rowtypedefine.sql。
4. 定义一维表类型变量
表类型变量和数据表是有区别的,定义表类型变量的语法如下: ――――――――――――――――――――――――――――――――――――― type 表类型 is table of 类型 index by binary_integer;
表变量名 表类型; ――――――――――――――――――――――――――――――――――――― 类型可以是前面的类型定义,index by binary_integer子句代表以符号整数为索引,这样访问表类型变量中的数据方法就是“表变量名(索引符号整数)”。
执行结果如图9.11所示。 ――――――――――――――――――――――――――――――――――――― Declare type tabletype1 is table of varchar2(4) index by binary_integer; type tabletype2 is table of tempuser.testtable.recordnumber%type index by binary_integer; table1 tabletype1; table2 tabletype2; begin table1(1):='大学'; table1(2):='大专'; table2(1):=88; table2(2):=55; dbms_output.put_line(table1(1)table2(1)); dbms_output.put_line(table1(2)table2(2)); end; ――――――――――――――――――――――――――――――――――――― 【配套程序位置】:第9章/ tabletypedefine1.sql。
“”是连接字符串的运算符。
5. 定义多维表类型变量
在【SQLPlus Worksheet】中执行下列PL/SQL程序,该程序定义了名为tabletype1的多维表类型,相当于多维数组,table1是多维表类型变量,将数据表tempuser.testtable中recordnumber为60的记录提取出来存放在table1中并显示。执行结果如图9.12所示。 ――――――――――――――――――――――――――――――――――――― Declare type tabletype1 is table of testtable%rowtype index by binary_integer; table1 tabletype1; begin select * into table1(60) from tempuser.testtable where recordnumber=60; dbms_output.put_line(table1(60).recordnumbertable1(60).currentdate); end; ――――――――――――――――――――――――――――――――――――― 【配套程序位置】:第9章/ tabletypedefine2.sql。