问题描述
我正在尝试将%type与对象类型一起使用
例如,
方法1:
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创建对象类型,但是当我在我的应用程序中使用它时,这会遇到一些功能问题,如下所述。
方法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 ..请帮助我...我尝试了所有操作,但是随着时间的推移我正面临着这种阻塞...
解决方法
否,Oracle不支持对象属性使用%TYPE-因为%TYPE是PL / SQL语法,而不是SQL。
为什么不只将i_salary声明为没有精度和小数位数的NUMBER?