Oracle:重命名/替换对象类型及其引用

时间:2018-06-21 19:58:50

标签: oracle plsql alter

我创建了如下的对象类型,并在多个存储过程和表中将其用作列。

CREATE OR REPLACE TYPE SS_EMP_TP FORCE AS OBJECT (
    NAME VARCHAR2(30),
    AGE NUMBER
);
/
CREATE OR REPLACE TYPE SS_EMP_TAB_TP AS TABLE OF SS_EMP_TP;
/

示例:

ALTER TABLE EMP_S ADD (EMP_DETAIL_TABLE **SS_EMP_TAB_TP**)  
      NESTED TABLE EMP_DETAIL_TABLE STORE AS  NESTED_EMP_DETAIL_TABLE RETURN AS LOCATOR;

现在,我必须将对象类型分别从 SS_EMP_TP,SS_EMP_TAB_TP重命名为EMP_TP,EMP_TAB_TP 。 并且还必须替换所有被引用的地方。

是否有一个重命名的alter object type语句?

我该怎么做?在执行此操作时,我需要考虑什么?

1 个答案:

答案 0 :(得分:0)

我建议您不要这样做。你怎么会有什么区别(除了SS_)?您希望获得什么好处?

无论如何:将SS_EMP_TP重命名为EMP_TP。引用SS_EMP_TP的所有内容都将无效。然后修改每个无效的对象以解决此问题。重复。

再一次-除非您有充分的理由,否则不要。