プロが教えるわが家の防犯対策術!

プロシージャやファンクション、パッケージ等のソース内に書かれたDMLは基本的に自分のスキーマが参照対象なので、(ユーザは異なるが)同一構造のスキーマが複数存在する場合はスキーマ毎に同じプロシージャ等を用意する必要がありますが、このソースを(動的SQLを使わずに)一つのスキーマで一元管理することはできないでしょうか。たとえば下記の状態で、スキーマA(またはB)から、スキーマCのTEST_FUNCTIONを呼び出し、実際はスキーマA(またはB)のTEST_TABLEを参照したい場合です。大変お手数ですが、宜しくお願い致します。
---------------------------------------------
スキーマA
  TEST_TABLE
  ファンクション無し
スキーマB
  TEST_TABLE
  ファンクション無し
スキーマC
  TEST_TABLE
  TEST_FUNCTION

create function TEST_FUNCTION
return NUMBER is
  nRET NUMBER;
begin
  SELECT COUNT(*) INTO nRET FROM TEST_TABLE;
  return nRET;
end;

A 回答 (1件)

こんにちわ。


> 一つのスキーマで一元管理・・・
ストアド・ファンクションを、実行者権限で定義すれば可能です。
Create function ~
return number AUTHID CURRENT_USER is
・・・
としてみて下さい。
    • good
    • 0
この回答へのお礼

素晴らしいです!
本当に助かりました。ありがとうございました!

お礼日時:2006/12/20 23:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!