暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

oracle数据库高级编程(二)

超人网页作坊 2020-02-27
362

oracle数据库高级编程(二)

1.record类型

个人见解:record是一个自定一类型,本意相当于java中的class,可以在record中定义属于自己的类。

语法:type 类名 is record();

eg:1.定义一个record类并说明类中的字段。

2.为这个类声明一个对象来操作这个类的数据,就跟java中的new 一个对象一样。

3.给字段赋值,并输出,|| 指的是链接字符串

1. declare

type student is record(

    sname varchar2(20),

     sid number(4),

     sex char(4)

);

2. s student;

3. begin

s.sid := 2;

s.sex := '男';

dbms_output.put_line(s.sid || s.sex);

end;




2.将查询结果给到record

通过声明一个对象,将对象类型定义为已有表emp的全字段类型,并查询的结果付给这个对象,但是查询结果只能有一条,因为只有一个对象不是数组,所以给的数据也只能是有条件的一条。

1.将person对象声明并把emp表的全字段类型付给person。

2.将条件为编号20的人的信息给person,输出查询到的数据,如sname等。

declare 

1.person emp%rowtype;

begin

2.select * into person from emp where sid = 20;

dbms_output.put_line(person.sid||person.sname);

end;



3.table类型(key,value)

table类型有点像java中的map,也有其(key,value)。

语法:type 名称 is table of number index by 数据类型(其中number为值类型可以是别的类型,index by为键)。

eg :DECLARE

--不支持number类作为key,Binary_Integer为整型

TYPE he IS TABLE OF VARCHAR2(10) INDEX BY Binary_Integer;

--为自定义类型he声明一个对象叫做h。

h he;

BEGIN

  h(0) := '和1';

  h(2) := '2';

  dbms_output.put_line(h(0) || h(2));

  END;

注意:

1.如果要查看第一个元素的key可以使用方法h.first(),

获取下一个元素的key h.next(),最后一个h.last()。

都是获取key的不是value的。

2.对象的key是自动排序的,如果插入顺序是h(1),h(4),h(2)你使用h.last(),得到的仍然是h(4)的key值!



数据库编程未完待续
更多精彩推荐,请关注我们




文章转载自超人网页作坊,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论