我最近安装了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. )
我不明白为什么会出现上述异常?我的定义有问题吗?
答案 0 :(得分:4)
对象类型是 SQL 对象。你不能在SQL中使用<object>%type
,你只能在PL / SQL代码中使用这种类型的构造。
例如,这将失败:
CREATE TABLE test_table (x dual.dummy%type);
您需要指定确切的数据类型,就像创建表一样。