0

我正在尝试在 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     
4

1 回答 1

2

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

在 PL/SQL 中,您只需SQL%ROWCOUNT在运行 SQL 语句后引用即可获取行数。就像是

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;
于 2012-05-16T06:00:25.073 回答