【问题标题】:Alter Type in Oracle 12g - questioning the DDL output after the alter is done在 Oracle 12g 中更改类型 - 在更改完成后质疑 DDL 输出
【发布时间】:2018-02-24 18:06:59
【问题描述】:

这是运行 alter type 后 TYPE 的 sn-p。我想知道最后一行(新属性)是否正确显示,或者是否需要另一个步骤来编译属性:

-- academic status code
ACADEMIC_STATUS_CODE VARCHAR2(2),

-- constructor
constructor function TESTTEST_TYPE return self as result,

-- function to keep versions sync'ed
member function fast_version return varchar2,

--member method to put everything to dbms_output
MEMBER PROCEDURE PRINT_TO_DBMS_OUT,

--member method to put everything to dbms_output
MEMBER PROCEDURE PRINT_TO_DBMS_OUT_HELPER(
      spaces_to_indent_in__ IN number, recursion_level_in__ IN number)

  ) INSTANTIABLE NOT FINAL
 alter type  testtest_type
    add attribute (STUDENT_PREFERRED_PRONOUN VARCHAR2(50)) cascade
/

【问题讨论】:

  • 嗯?不明白。你有错误吗?

标签: sql oracle types


【解决方案1】:

您在类型定义之外发出“更改类型”命令(您不会将其附加到类型本身的末尾)

alter type testtest_type add attribute (STUDENT_PREFERRED_PRONOUN VARCHAR2(50));

如果您的类型是 FINAL 并且您需要它 NOT FINAL(对于子类型等),请发出以下命令:

alter type testest_type not final cascade;

【讨论】:

  • 是的,这就是我们所做的,但是当查看 Toad 中的脚本时,该命令被附加到原始类型主体中。该属性与其他属性一起出现在显示中,但编译的脚本是我所质疑的。
  • 复制编译好的脚本并执行它(最好在另一个数据库上)会告诉你是否有语法错误。 Toad 可能存在问题。我们没有足够的信息。
猜你喜欢
  • 2023-03-04
  • 2013-11-10
  • 2021-02-19
  • 2017-10-22
  • 2010-09-14
  • 1970-01-01
  • 2011-01-01
  • 2016-12-14
  • 1970-01-01
相关资源
最近更新 更多