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

时间:2013-09-25 14:25:15

标签: 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 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. )

我不明白为什么会出现上述异常?我的定义有问题吗?

1 个答案:

答案 0 :(得分:4)

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

例如,这将失败:

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

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