1

C ++OracleOCCIを使用してパッケージで定義されているストアドプロシージャのパラメータに関するメタデータを取得しようとしています。スタンドアロンプ​​ロシージャのパラメータメタデータを取得するのは簡単です。

MetaData meta = connection->getMetaData("MY_PROC");
vector<MetaData> params = meta.getVector(MetaData::ATTR_LIST_ARGUMENTS);

ただし、以下のコードを使用してパッケージ内にあるプロシージャからパラメータメタデータをクエリしようとすると、エラーが発生します。

MetaData meta = connection->getMetaData("PKG_MY_PACKAGE.MY_PROC2");

エラーメッセージ:

ORA-04043: object PKG_MY_PACKAGE.MY_PROC2 does not exist

これが機能しない理由、またはパッケージ内で別の方法で定義されているストアドプロシージャパラメータをクエリする必要がある理由はありますか?

4

1 に答える 1

0

all_arguments(またはuser_argumentsまたは) ビューをクエリしてdba_arguments、パッケージ化された関数とプロシージャのパラメーターを取得できます。

http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/statviews_1014.htm#i1573843

于 2009-11-23T15:39:35.280 に答える