Czy używasz PL/SQL? A może używasz Pro*C/C++? SQLCA.SQLERRD
byłaby zdefiniowana w Pro*C/C++, nie byłaby zdefiniowana w PL/SQL. Ponieważ nie oznaczyłeś pytania dla Pro*C, domyślam się, że używasz tylko PL/SQL.
W PL/SQL po prostu odwołujesz się do SQL%ROWCOUNT
po uruchomieniu instrukcji SQL, aby uzyskać liczbę wierszy. Coś jak
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;