%type 可以与 Object 类型一起使用吗?是否可能因为我在尝试这样做时出错 [英] Could %type be used with Object type? Is it possible because I am getting error while trying to do so

查看:65
本文介绍了%type 可以与 Object 类型一起使用吗?是否可能因为我在尝试这样做时出错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I am trying to use %type with 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 创建对象类型,但是当我在我的应用程序中使用它时会出现一些功能问题,如下所述..

I am able to create object type by using method 2, but this has some functionality issue when I use it in my application as mentioned below..

 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.

No, Oracle does not support %TYPE for object attributes - because %TYPE is PL/SQL syntax, not SQL.

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

Why not just declare i_salary as NUMBER with no precision and scale?

这篇关于%type 可以与 Object 类型一起使用吗?是否可能因为我在尝试这样做时出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆