oracle create replace,Oracle11gr2新增CREATE OR REPLACE FORCE TYPE功能

在11.2中,Oracle增强了TYPE类型的依赖处理。

在以前的版本中,如果表或另一个对象依赖当前的对象,那么这个对象是无法CREATE OR REPLACE的,在11.2中,这个限制被放宽,当依赖当前对象的对象是对象时,允许使用CREATE OR REPLACE FORCE来重建对象;如果依赖当前对象的对象是表,则新增的CREATE OR REPLACE FORCE功能也是无效的。

SQL> select * from v$version;

BANNER

--------------------------------------------------------------------------------

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

PL/SQL Release 11.2.0.1.0 - Production

CORE    11.2.0.1.0      Production

TNS for Linux: Version 11.2.0.1.0 - Production

NLSRTL Version 11.2.0.1.0 - Production

SQL> create type t_id_tab is table of number(10);

2  /

类型已创建。

SQL> create type t_id_tab_tab is table of t_id_tab;

2  /

类型已创建。

SQL> create or replace type t_id_tab is table of number(20);

2  /

create or replace type t_id_tab is table of number(20);

*第1行出现错误:

ORA-02303:无法使用类型或表的相关性来删除或取代一个类型

SQL> create or replace type t_id_tab force is table of number(20);

2  /

类型已创建。

SQL> drop type t_id_tab;

drop type t_id_tab

*第1行出现错误:

ORA-02303:无法使用类型或表的相关性来删除或取代一个类型

SQL> drop type t_id_tab force;

类型已删除。

SQL> drop type t_id_tab_tab;

类型已删除。

可以看到使用FORCE功能可以避免当前的TYPE被其他对象所依赖后而无法重建或删除。不过这种依赖仅限于对象之间,如果依赖对象的是表,则FORCE功能不起作用:

SQL> create type t_type as object

2  (id number,

3  name varchar2(30));

4  /

类型已创建。

SQL> create table t_type_tab of t_type;

表已创建。

SQL> create or replace type t_type as object

2  (id number(5),

3  name varchar2(30));

4  /

create or replace type t_type as object

*第1行出现错误:

ORA-02303:无法使用类型或表的相关性来删除或取代一个类型

SQL> create or replace type t_type force as object

2  (id number(5),

3  name varchar2(30));

4  /

create or replace type t_type force as object

*第1行出现错误:

ORA-22866:无法替换具有表相关性的类型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值