[Oracle] 自定义数据类型Type

Oracle 自定义类型的种类

type定义:oracle中自定义数据类型
oracle中有基本的数据类型,如number,varchar2,date,numeric,float…但有时候我们需要特殊的格式,
如将name定义为(firstname,lastname)的形式,我们想把这个作为一个表的一列看待,这时候就要我们自己定义一个数据类型。

自定义类型有两种写法:TYPE……IS和CREATE TYPE ……,两者区别在于:前者一般在存储过程和函数中定义,其作用域是所在过程或函数,而后者声明对象类型,对象类型则是作为一个数据库对象(像表、索引、视图、触发器一样,是一个数据库对象),可以过程或函数中使用,还可以在定义表时,作为字段的类型。

一、TYPE type_name IS RECORD 定义记录数据类型

   TYPE type_name IS RECORD (
              字段名1     数据库变量类型1,
              字段名2     数据库变量类型2,
              ...
              字段名n     数据库变量类型n
      );
      其中type_name:自定义类型的名称

二、TYPE table_Typename IS TABLE 定义表记录类型

 TYPE table_Typename  IS TABLE OF element_type
 INDEX BY [BINARY_INTEGER | PLS_INTEGER | VARRAY2]; 

其中:
1、table_Typename :自定义类型的名称。
2、element_type:任意数据基本类型(VARCHAR2, INGEGER, NUMBER等)、记录数据类型(即TYPE type_name IS RECORD的自定义类型)等。
3、INDEX BY:该语句的作用是使NUMBER类型的下标自增长,自动初始化,并分配空间,有了该语句,向表记录插入元素时,不需要显示初始化,也不需要通过扩展来分配空间。(必须写否则会报错,ORA-06531:Reference to uninitialized collection)

create or replace type tabletype as table of VARCHAR2(32676)  这张表返回一个字段

返回多个
create table t_test
(
  id     number(10),
  passwd VARCHAR2(10)
);

create or replace type cur_test is table of t_test;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

涛涛之海

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值