如何声明SQLCA.SQLERRD?

时间:2012-05-16 05:38:39

标签: oracle plsql

我试图在oracle存储过程中使用insert .... select ... stmt将记录插入到表中。如何使用SQLERRD找到插入的记录数?

recIn number;
Insert into t1 ....Select.....;
recIn := SQLCA.SQLERRD(3);
....
....
PLS-00201: identifier 'SQLCA.SQLERRD' must be declared

是抛出的错误消息。你如何申报SQLCA.SQLERRD?

using Oracle 9.2

bcs     

1 个答案:

答案 0 :(得分:2)

您使用的是PL / SQL吗?或者您使用的是Pro * C / C ++? SQLCA.SQLERRD将在Pro * C / C ++中定义,它不会在PL / SQL中定义。既然你没有为Pro * C标记问题,我猜你只是在使用PL / SQL。

在PL / SQL中,您只需在运行SQL语句后引用SQL%ROWCOUNT以获取行计数。像

这样的东西
DECLARE
  l_num_rows INTEGER;
BEGIN
  INSERT INTO t1( <<list of columns>> )
    SELECT <<list of columns>>
      FROM <<some tables>>
     WHERE <<some predicates>>
  l_num_rows := sql%rowcount;
  dbms_output.put_line( 'The statement inserted ' || l_num_rows || ' rows.';
END;