首页 > 解决方案 > %type 可以与 Object 类型一起使用吗?是否有可能是因为我在尝试这样做时遇到了错误

问题描述

我正在尝试将 %type 与对象类型一起使用

例如,

方法一:

  CREATE TYPE emp_object AS OBJECT(
    i_Emp_id Employee_table.emp_id%type,
    i_Emp_name  Employee_table.emp_name%type
    i_salary  Employee.salary%type);

但我无法像方法 1 中那样创建对象类型...

我可以使用方法 2 创建对象类型,但是当我在我的应用程序中使用它时会出现一些功能问题,如下所述。

方法二:

 CREATE TYPE emp_object AS OBJECT( i_Emp_id number, i_Emp_name  varchar2(10), i_Salary Number(13,9));

第二种方法面临的问题是,当我更改表中 Salary 列中数据类型的精度时,我必须更改删除对象类型并重新创建它。此外,我必须更改 API 和 UI 中的代码。如果我可以在创建对象类型时使用 %type,这肯定可以避免。但我无法这样做,因为 Oracle 会抛出错误。有没有办法将 %type 应用于对象类型列..请帮助我...我尝试了所有方法,但我一直面临这个阻止程序...

标签: oracletypesoracle11g

解决方案


不,Oracle 不支持对象属性的 %TYPE - 因为 %TYPE 是 PL/SQL 语法,而不是 SQL。

为什么不直接将 i_salary 声明为没有精度和比例的 NUMBER?


推荐阅读