度量快速开发平台-专业、快速的软件定制快开平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 部件 流程 SQL
查看: 946|回复: 3
打印 上一主题 下一主题

[分享] oracle中的抽象数据类型

[复制链接]

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
跳转到指定楼层
楼主
发表于 2020-3-25 14:25:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
此类型是包含一个或多个子类型的数据类型,并且这些数据类型并不局限于标准的oracle数据类型
如:create or replace type t_mm as object(col number(3),
        col2 varchar2(20))/
此时可以在创建表时使用该类型,如下
       Create table test (aa varchar2(5),bb t_mm, cc number(10))
插入记录:
       Insert into test values('cccc', t_mm(1,'col'))
类型声明:
      用户定义的数据类型也可以声明为 final,not final,instantiable, not instantiabe
Not final表示允许类型派生子类型。默认是final
      create or replace type t_mm as object(col number(3),col2 varchar2(20)) Not final
not instantiabe表示类型没有构造函数。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

348

主题

3572

帖子

9325

积分

论坛元老

Rank: 8Rank: 8

积分
9325
沙发
发表于 2020-3-25 22:12:33 | 只看该作者
姓名,其实包括两个部分,分别为姓与名。在没有抽象数据类型之前,在数据库设计的时候,往往需要利用两个字段来保存这个姓名内 容,如First_name与Last_name等等。这主要是因为在很多时候,前台应用程序只需要用到姓即可,因为在称呼别人的时候,往往不会连名带姓 的叫。如在CRM系统中,若利用CRM系统自带的邮件系统给客户发送邮件的时候,台头往往是李公、张公等等。而不会带来名字。为此,就需要把姓与名分开来 保存。

  此时,若没有抽象数据类型的话,则在数据库中就需要设立两个字段来处理。但是,在Oracle数据库8以后的版本,包括现在最新的数据库版本, 都有一个抽象数据类型,专门来处理这些问题。简单的讲,抽象数据类型就是一些可以作为单独实体的小的基本数据类型的集合。或者说,抽象数据类型是用户自己 做的一个箱子,里面有很多抽屉,而每个抽屉就是一个原始的数据类型,如INT或者Varchar数据类型。把几个基本的数据类型根据不同的需要,组合成一 个新的抽象数据类型,这就让数据库管理员在处理数据的时候,更加的容易;而且容易控制,减少出错的几率。
若現在就覺得失望無力,未來那麽遠妳該怎麽扛...
————————————————————————致自己
回复 支持 反对

使用道具 举报

348

主题

3572

帖子

9325

积分

论坛元老

Rank: 8Rank: 8

积分
9325
板凳
发表于 2020-3-25 22:15:14 | 只看该作者
使用抽象数据类型的好处:
一是可以重复使用;
二是灵活性;
三是可以实现对数据很好的封装。

点评

补充得挺好嘛  详情 回复 发表于 2020-3-26 17:52
若現在就覺得失望無力,未來那麽遠妳該怎麽扛...
————————————————————————致自己
回复 支持 反对

使用道具 举报

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
地板
 楼主| 发表于 2020-3-26 17:52:02 | 只看该作者
万望 发表于 2016-4-25 22:15
使用抽象数据类型的好处:
一是可以重复使用;
二是灵活性;

补充得挺好嘛
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|重庆度量科技  本站关键词:快速开发平台

GMT+8, 2024-11-23 21:56 , Processed in 0.164103 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表