繁体   English   中英

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

[英]Could %type be used with Object type? Is it possible because I am getting error while trying to do so

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

例如,

方法一:

  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 中那样创建 object 类型...

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

方法二:

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM