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.SQLERRDPro*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 に答える