2012-05-16 76 views
0

我想插入記錄到表中插入....選擇... stmt在oracle存儲過程。如何找到使用SQLERRD插入的記錄數?如何聲明SQLCA.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  

回答

2

您使用的是PL/SQL嗎?或者你在使用Pro * C/C++嗎?將在Pro * C/C++中定義SQLCA.SQLERRD,它不會在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; 
+0

謝謝賈斯汀。不知道它是與Pro * C/C++一起使用的。我正在使用PL/SQL。 – user1064227