【发布时间】:2014-09-09 17:53:55
【问题描述】:
我正在声明一个记录的表自定义数据类型,该记录由一个表的 %rowtype 创建,名称为:TMP_UNREGISTER_TAB,该表存在于数据库中。在尝试执行下面的 plsql anon 块时,我得到了下面指定的错误。
PLSQL 代码:
declare
rec_tmp_tab TMP_UNREGISTER_TAB%rowtype ;
v_rec_tmp_tab rec_tmp_tab;
TYPE tab_rec_tmp IS TABLE OF v_rec_tmp_tab%type
INDEX BY BINARY_INTEGER;
v_tab_rec_tmp tab_rec_tmp;
begin
null;
end;
/
脚本输出:
Error report:
ORA-06550: line 3, column 18:
PLS-00488: 'REC_TMP_TAB' must be a type
ORA-06550: line 3, column 18:
PL/SQL: Item ignored
ORA-06550: line 4, column 33:
PLS-00320: the declaration of the type of this expression is incomplete or malformed
ORA-06550: line 4, column 4:
PL/SQL: Item ignored
06550. 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.
*Action:
【问题讨论】:
-
rec_tmp_tab 是一个变量,而不是一个类型。
-
稍微扩展前面的评论我认为您需要在定义
TYPE tab_rec_tmp时指定TMP_UNREGISTER_TAB%ROWTYPE。分享和享受。 -
将表声明为:TYPE tab_rec_tmp IS TABLE OF rec_tmp_tab%type INDEX BY BINARY_INTEGER;
标签: plsql