读书人

使用%ROWTYPE居然报错?解决方案

发布时间: 2012-03-05 11:54:03 作者: rapoo

使用%ROWTYPE居然报错??
CREATE OR REPLACE PACKAGE ss_syn_statdata AS
PROCEDURE tb_ss_base_show ;
END ss_syn_statdata;
/

CREATE OR REPLACE PACKAGE BODY ss_syn_statdata AS

PROCEDURE tb_ss_base_show IS
nCount NUMBER;

rec_tb tb_ss_base_show%ROWTYPE;

BEGIN
SELECT count(*) INTO nCount from dual;

END tb_ss_base_show;

end ss_syn_statdata;
/

以上语句保存为ss.sql,然后执行

SQL> start ss.sql

Package created.


Warning: Package Body created with compilation errors.

SQL> show err
Errors for PACKAGE BODY SS_SYN_STATDATA:

LINE/COL ERROR
-------- -----------------------------
8/17 PLS-00310: with %ROWTYPE attribute, 'TB_SS_BASE_SHOW' must name
a table, cursor or cursor-variable

8/17 PL/SQL: Item ignored
SQL>

上面这个PLSQL居然报错,表是存在的。

[解决办法]
是同一个用户下的么?
执行下面语句有结果么:
select * from TB_SS_BASE_SHOW;
[解决办法]
PROCEDURE tb_ss_base_show IS
貌似表名和过程名字重复了~~
[解决办法]
正解

探讨
PROCEDURE tb_ss_base_show IS
貌似表名和过程名字重复了~~

[解决办法]
tb_ss_base_show 是存储过程,怎么可能会有 rowtype 呢

读书人网 >oracle

热点推荐