首页 > 代码库 > 【PLSQL】PLSQL中复合数据类型
【PLSQL】PLSQL中复合数据类型
1,常见的操作数据库的技术有那些
jdbc 使用java 访问数据库的技术
PLSQL (procedure 过程化sql) 在数据库内部操作数据的技术
proc/c++ c 和 c++ 访问数据库的技术
ODBC 微软提供访问数据库的技术
OCI oracle 底层的连接接口
2,Oracle中的复合数据类型
Oracle中的复合数据类型record,table,cursor
2.1 record类型
2.1.1 语法
/*定义一个record类型*/ type record类型名称 is record( 属性 数据类型, 属性 数据类型 ... ); /*使用record类型名称定义一个record变量*/ record变量名 record类型名称
也可以使用表的字段来定义,
/*使用表的字段类型定义一个record类型*/ type record类型名称 is record( 属性 表名.属性名%type, 属性 表名.属性名%type ... ); /*使用record类型名称定义一个record变量*/ record变量名 record类型名称
2.1.2 示例
set serveroutput on;declare type emptype is record( id number, name varchar2(5) ); var_emp emptype;begin var_emp.id:=1; var_emp.name:=‘jame‘; dbms_output.put_line(var_emp.id);end;/
2.2 table类型
2.2.1 语法
/*定义一个table类型*/type table类型名 is table of 元素类型名 index by binary_integer;/*定义一个table变量*/变量名 table类型名;
访问数据的方式,
table变量(下标):=值;
2.2.2 示例
declare type numstype is table of number index by binary_integer; var_nums numstype; begin var_nums(0):=9; var_nums(1):=5; var_nums(2):=2; var_nums(3):=7; var_nums(4):=0; dbms_output.put_line(var_nums(3));/*打印下标为3的元素*/ end;
table中的数据也可以使用迭代的思想来操作
下标不连续时 遍历table类型的变量
迭代思想:
变量名.first() 获取第一个元素对应的下标 (元素对应的最小下标)
变量名.next(n) 根据一个元素的下标n 得到下一个元素对应的下标
变量名.last() 获取最后一个元素对应的下标
例如:
set serveroutput on; declare type numstype is table of number index by binary_integer; var_nums numstype; var_index binary_integer:=0; begin var_nums(0):=9; var_nums(1):=5; var_nums(-12):=2; var_nums(3):=7; var_nums(4):=0; -- var_nums.count(); var_index := var_nums.first(); loop dbms_output.put_line(var_nums(var_index)); var_index:=var_nums.next(var_index); if var_index = var_nums.last() then dbms_output.put_line(var_nums(var_index)); exit; end if; end loop; end; /
2.3 cursor类型
2.3.1 语法
/*声明游标*/ cursor 游标名 is select语句;/*打开游标*/open 游标名;/*提取数据,将结果存储到变量中,一般都是record类型*/fetch 游标名 into 变量;/*关闭游标*/close 游标名
2.3.2 示例
declare /*使用s_emp创建一个游标变量*/ cursor empcursor is select id,first_name name,salary from s_emp; /*创建一个record类型*/ type emptype is record( id s_emp.id%type, name s_emp.first_name%type, salary s_emp.salary%type ); /*创建一个record变量*/ var_emp emptype; begin /*打开游标*/ open empcursor; /*将游标的第一条值存储到var_emp中*/ fetch empcursor into var_emp; dbms_output.put_line(var_emp.id||‘:‘||var_emp.name||‘:‘||var_emp.salary); /*将游标的第一条值存储到var_emp中*/ fetch empcursor into var_emp; dbms_output.put_line(var_emp.id||‘:‘||var_emp.name||‘:‘||var_emp.salary); /*关闭游标*/ close empcursor; end; /
【PLSQL】PLSQL中复合数据类型
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。