plsql笔记二_常量变量(2复合变量).docVIP

  • 0
  • 0
  • 约3.94千字
  • 约 7页
  • 2018-01-01 发布于河南
  • 举报
plsql笔记二_常量变量(2复合变量)

plsql笔记二_常量变量(2复合变量) 数组是在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来的一种形式。这些按序排列的同类数据元素的集合称为数组。在C语言中, 数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。 int a[10]; 说明整型数组a,有10个元素。    float b[10],c[20]; 说明实型数组b,有10个元素,实型数组c,有20个元素。    char ch[20]; 说明字符数组ch,有20个元素。 复合变量 --复合变量是指用于存放多个值的变量.当定义符合变量时,必需要使用PL/SQL的复合数据类型.PL/SQL包括PL/SQL记录,PL/SQL表,嵌套表以及VARRAY(变长数组;动态数组 )等四种复合数据类型. 1.PL/SQL记录 --PL/SQL记录 类似于高级语言中的结构,每个PL/SQL记录一般都包含多个成员.当使用PL/SQL记录时,首先需要在定义部分定义记录类型和记录变量,然后在执行部分引用该记录变量.需注意,当引用记录成员时,必须要加记录变量作为前缀(记录变量.记录成员). 例: SQL set serveroutput on SQL declare 2 type emp_record_type is record( ==emp_record_type是PL/SQL记录类型 3 name emp.ename%type, ==\ 4 salary emp.sal%type, |==name,salary,title是该PL/SQL记录类型包含的三个成员 5 title emp.job%type); ==/ 6 emp_record emp_record_type; ==emp_record是记录变量(emp_record是emp_record_type的变量而emp_record_type是一个记录类型) 7 begin 8 select ename,sal,job into emp_record 9 from emp where empno=7788; 10 dbms_output.put_line(雇员名:||emp_record.name); ==emp_record.name表示引用记录变量emp_record的成员name.(emp_record_type.name) 11 end; 12 / 雇员名:SCOTT PL/SQL 过程已成功完成。 定义一个PL/SQL记录类型,并定义这个类型包含了三个成员,并emp_record是emp_record_type的变量,然后执行部分,并引用记录变量emp_record的成员name(个人理解) 2.PL/SQL表 --PL/SQL表类似于高级语言中的数组.需要注意,PL/SQL表与高级语言的数组有所区别,高级语言数组的下标不能为负,但PL/SQL表的下标可以为负值;高级语言数组的元素个数有限制,而PL/SQL表的元素个数没有限制,并且其下标没有上下限.当使用PL/SQL表时,必需首先在定义部分定义PL/SQL表类型和PL/SQL表变量,然后在执行部分中引用该PL/SQL表变量. 例: SQL declare 2 type ename_table_type is table of emp.ename%type ==ename_table_type为PL/SQL表类型;emp.ename%type指定了PL/SQL表元素的数据类型和长度 3 index by binary_integer; 4 ename_table ename_table_type; ==ename_table为PL/SQL表变量, 5 begin 6 select ename into ename_table(-1) from emp ==ename_table(-1)表示下标为-1的元素 7 where empno=7788; 8 dbms_output.put_line(雇员名:|| ename_table(-1)); 9 end; 10 / 雇员名:SCOTT PL/SQL 过程已成功完成。 3.嵌套表 --嵌套表(Nested Table)类似于高级语言中的数组.需要注意,高级语言数组和嵌套表的下标都不能为负值;高级语言的元素个数是有限制的,而嵌套表的元素个数是没有限制的.嵌套表和PL/SQL表非常类似,但嵌

文档评论(0)

1亿VIP精品文档

相关文档