oracle - %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 应用于对象类型列..请帮助我...我尝试了所有方法,但我一直面临这个阻止程序...
解决方案
不,Oracle 不支持对象属性的 %TYPE - 因为 %TYPE 是 PL/SQL 语法,而不是 SQL。
为什么不直接将 i_salary 声明为没有精度和比例的 NUMBER?
推荐阅读
- r - 在R中使用方括号的空间逆子集
- amazon-web-services - “免费套餐”实例...在 4 天内超过 1 GB 带宽的 85%...如何查看带宽使用情况?
- powerbi - 如何在 PowerBI 中对文本过滤器进行模糊匹配
- git - 我正在尝试解决本地功能分支中的 git 冲突,但发生了一些奇怪的事情
- .net - 异步的Kafka生产者不返回DeliveryReport但DeliveryResult
- python - Python while循环为变量返回0
- maven - 替换 Maven 中的版本
- blazor - 在 Blazor 中,为什么调用 NavigationManager.NavigateTo 有时会导致使用旧值进行额外的 OnParametersSetAsync 调用?
- javascript - Javascript可以访问/读取第三方/跨域cookie吗?
- excel - 我将使用什么公式来计算一个单元格中的值,但前提是另一个单元格为空白?