0

我最近安装了 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. )

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

4

1 回答 1

4

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

例如这将失败:

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

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

于 2013-09-25T14:32:07.387 回答