我试图在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
答案 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;