3

初心者の質問: Oracle データベースにストアド プロシージャ (パッケージなしのプロシージャのみ) があります。

CREATE OR REPLACE procedure FII_DBO.CLEAR_UNIT_TEST_PRODUCT
IS
BEGIN
 ...
END CLEAR_UNIT_TEST_PRODUCT;

TOADで正常に動作します。ただし、C# から実行しようとすると、次のように表示されます。

System.Data.OracleClient.OracleException: ORA-06550: line 1, column 7:
PLS-00201: identifier 'CLEAR_UNIT_TEST_PRODUCT' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored

関連する C# コード:

Command = new OracleCommand();
Command.CommandText = procedureName;
Command.CommandType = CommandType.StoredProcedure;
Command.Connection = connection;
Command.ExecuteNonQuery();
4

4 に答える 4

1

それを見つけた、エラーメッセージは少し誤解を招くものでした。適切なアクセス権を持っていない別のユーザーとして実行していました。これはトリックをしました:

grant execute on FII_DBO.CLEAR_UNIT_TEST_PRODUCT to FII_USER;
于 2009-03-18T11:15:21.970 に答える
0

procedureName 変数にパッケージ名を含めていますか?

つまり、procedureName を " FII_DBO.CLEAR_UNIT_TEST_PRODUCT" だけでなく" " に設定しますCLEAR_UNIT_TEST_PRODUCTか?

于 2009-03-18T11:07:06.327 に答える