1

OracleデータベースからInformaticaにストアドプロシージャをインポートする必要があります。しかし、ストアドプロシージャトランスフォーメーションを使用しようとすると、それぞれのストアドプロシージャを表示できません。ターゲットデータベーステーブルのインポートに問題がないため、正しいOracleドライバを使用しています。を使用してOracleデータベースのストアドプロシージャを表示しようとしました select * from all_objects where object_type='FUNCTION'が、探している関数が見つかりませんでした。これらについて教えてください:

  • Oracleのストアドプロシージャ/関数のリストとコードを表示できますか?

  • Informaticaストアドプロシージャトランスフォーメーションには何が欠けていますか?

4

2 に答える 2

1

これで結果が得られない場合。

select * from all_objects where object_type='FUNCTION'

これは、関数がないか、現在のユーザーに関数を実行する権限がないことを意味します。関数を所有しているユーザーを見つけて、以下を許可します。

例 :

grant execute on <owner>.<function_name> to ETL_USER;

混乱を避けるために、Informatica接続のユーザー名とデータベースへの接続時に使用しているユーザー名が同じであることを確認してください。

于 2012-09-21T20:00:09.683 に答える
1
  1. オブジェクトをInformaticaにインポートしている間、リストされたオブジェクトは常に「接続している」ユーザーによって所有されます。オブジェクトが他のユーザーによって所有されている場合、そのオブジェクトは表示されません。接続しているユーザーが所有していないオブジェクトを表示するには、接続中にスキーマテキストボックスで[すべて]を選択する必要があります。

  2. 「FUNCTION」ではなく、object_type='PROCEDURE'を検索する必要があります。したがって、クエリは次のように読み取る必要がありますselect * from all_objects where object_type='PROCEDURE'

  3. これをすべて行ってもオブジェクトが表示されない場合は、接続しているユーザーに対するそのオブジェクトの権限を確認してください。このための最良のコースはです。接続しているユーザーにそのオブジェクトの実行権限を付与するようにdbaに依頼してください。またはb。そのオブジェクトの所有者としてデータベースに接続し、次のコマンドを実行します grant execute on <object_name> to <connecting_user>

于 2012-09-22T04:37:41.853 に答える