欢迎来到天天文库
浏览记录
ID:40752855
大小:67.50 KB
页数:5页
时间:2019-08-07
《PLSQL中的变量》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、在PL/SQL中处理变量:l在声明部分声明和初始化变量l在执行部分为变量赋新值,或在表达式中使用变量l在异常处理部分也可以使用变量l通过参数把值传递到PL/SQL块中l通过输出变量或者参数将值传出PL/SQL块PL/Sql中的变量类型:l简单变量l复合(组合)变量简单变量:简单变量不包括任何组件,只能保存一个值简单变量类型:基本类型包括三大类:字符,数字,日期BINARY_INTEGER整形数字NUMBER(precision,scale)数字类型(数值长度、小数位数)CHAR(maximum_length)定长字
2、符类型VARCHAR2(maximum_length)变长字符类型DATE日期类型LONG长字符类型LONGRAW长二进制类型CLOB/BLOB/BFI大对象类型(字符大对象,二进制大对象,操作系统文件大对象)BOOLEAN布尔类型,有效值为TRUE,FALSE,NULL简单变量的声明:v_genderCHAR(1);v_countBINARY_INTEGER:=0;v_total_salNUMBER(9,2):=0;9表示数据长度,2表示保留小数位v_order_dateDATE:=SYSDATE+7;天数+7c
3、_tax_rateCONSTANTNUMBER(3,2):=8.25;v_validBOOLEANNOTNULL:=TRUE;复合变量:³复合变量也叫做组合变量。在复合变量中包含多个内部的组件,每个组件都可以单独存放值。一个复合变量可以存放多个值³与简单变量类型不同,复合变量类型不是数据库中已经存在的数据类型,所以复合变量在声明类型之前,首先要创建使用到的复合类型,然后将变量声明为复合变量³复合类型被创建后,可以被使用多次,定义多个变量复合变量类型:l表类型tablel记录类型record表类型:TABLE:³表类
4、型类似于其他编程语言中的数组类型³由两个组件组成:1.数据类型为BINARY_INTEGER(整形数字)的主键2.数据类型为一个确定的简单类型的列³Table类型没有长度限制,可以动态增长。表类型中的第二部分类似与数组中的值,这个部分必须是一个已经确定的简单类型,不能是其他的复合类型³表类型的结构很像数组。第一部分:是一个按1递增的整形数字,起到数字索引的作用,第二部分:使一种确定的简单类型,用来存放每个索引号对应的具体的数值PL/SQLTABLE结构:声明一个PL/SQLTABLE:--varchar2(4)和e
5、mpl.last_name%typedeclaretypename1_table_typeistableofvarchar2(4)indexbybinary_integer;typename2_table_typeistableofempl.last_name%typeindexbybinary_integer;name1_tablename1_table_type;name2_tablename1_table_type;beginname1_table(1):='大学';name1_table(2):='大本';
6、name2_table(1):=88;name2_table(2):=55;dbms_output.put_line(name1_table(1)
7、
8、''
9、
10、name1_table(2));--大学大本dbms_output.put_line(name1_table(2)
11、
12、''
13、
14、name2_table(2));--大本55end;记录类型RECORDS:³复合类型中的RECORDS类型是由多个组件组成的一种类型。包含一个或几个组件,每个组件称为一个域(FIELD),域的数据类型可以是简单变量类型、另一个RECO
15、RD类型或PL/SQL的TABLE类型。³在使用RECORD变量时把多个域的集合作为一个逻辑单元使用,对记录类型变量赋值或引用,都需要使用“记录变量名.域名”的方式来实现。³主要用于从表中取出查询到的行数据。PL/SQLRECORD结构:³记录类型可以包含一个或多个域,每个域相当于记录类型变量的一个属性.在使用记录变量类型时,实际上是对记录类型变量的属性进行操作.每个域都可以是不同的数据类型,存放不同类型的数据声明PL/SQLRECORD:语法:TYPEname_record_typeISRECORD(field_
16、name1field_type[NOTNULL{:=
17、DEFAULT}expr],field_name2field_type[NOTNULL{:=
18、DEFAULT}expr],...);identifiertype_name;例子:...TYPEemp_record_typeISRECORD(last_nameVARCHAR2(25),first_nameV
此文档下载收益归作者所有