Oracle 创建用户定义的数据类型时出错

Oracle 创建用户定义的数据类型时出错,oracle,oracle11g,Oracle,Oracle11g,我最近安装了Oracle Application Express 11g 我正在尝试创建以下用户定义的数据类型 create or replace type dept_type AS Object ( dept_no DEPT.deptno%type, dept_name DEPT.DNAME%type, LOC DEPT.LOC%type ) 在上面的定义中,DEPT是当前架构中已经存在的表。 当我执行上面的SQL命令时,我在控制台上得到下面的异常 Error

我最近安装了Oracle Application Express 11g

我正在尝试创建以下用户定义的数据类型

create or replace type dept_type AS Object
 (
    dept_no DEPT.deptno%type,
    dept_name DEPT.DNAME%type,
    LOC DEPT.LOC%type
  )
在上面的定义中,DEPT是当前架构中已经存在的表。 当我执行上面的SQL命令时,我在控制台上得到下面的异常

Error at line 4: PLS-00201: identifier 'DEPT.DEPTNO' must be declared

2. (
3. dept_no DEPT.deptno%type,
4. dept_name DEPT.DNAME%type,
5. LOC DEPT.LOC%type
6. )

我不明白为什么会出现上述例外情况?我的定义有问题吗?

对象类型是SQL对象。不能在SQL中使用
%type
,只能在PL/SQL代码中使用这种类型的构造

例如,这将失败:

CREATE TABLE test_table (x dual.dummy%type);

您需要指定确切的数据类型,就像创建表一样。

对象类型是SQL对象。不能在SQL中使用
%type
,只能在PL/SQL代码中使用这种类型的构造

例如,这将失败:

CREATE TABLE test_table (x dual.dummy%type);

您需要指定确切的数据类型,就像创建表一样。

谢谢Vincent的回答。如果我想了解其他SQL对象,请提供有用的链接。当然,您可以从开始。还有一个完整的。谢谢vincent的帮助。谢谢vincent的回答。如果我想知道其他SQL对象,请提供有用的链接。当然,您可以从开始。还有一个完整的。谢谢文森特的帮助。