dポイントプレゼントキャンペーン実施中!

OracleツールのJDeveloperを使って、PL/SQLでストアドプロシジャを作成しています。
(Oracleは9i)

DBが2つありまして(DB-AとDB-Bとする)、
DB-Bから、データベースリンクを介してDB-Aのテーブルを参照しています。
(SELECT * FROM XXXXX.テーブル名@データベースリンク名)

DB-Bに接続してSQL*PLUS上で上記SELECT文を実行すると正しく処理されるのですが
上記SELECT文が組み込まれているDB-B上のプロシジャをコンパイルすると、
「ORA-04052」が返ってきてしまいます。

エラーコードを調べると、
DB-A側のテーブルを参照できていないようで、
「KGLR.SQLが実行されていることを確認してください」とのことなのですが、
この「KGLR.SQL」とやらが何者かわかりません。

タチの悪いことに、上記の現象が出る端末と出ない端末があります。
みんな同じIDでログインしているので権限の問題ではないと思ってるのですが・・・

「KGLR.SQL」は置いといて、このような事象に出くわしたことのある方、
推測でもなんらかの情報をお持ちの方がいらっしゃいましたらご教授ください。

よろしくお願い致します。

A 回答 (3件)

catrpc.sqlですがクライアントにはインストールされませんのでサーバー側にしかありません。

もしも、サーバー側も検索されたとなるとインストールに失敗している恐れがあるかも...。(あまり不安にはならないでください。)
あった場合の実行方法ですが、
1.SQL*Plusを起動
2.sysで接続(conn sys/[passwrod]@[dbname])
3.実行(@c:\oracle\ora92\rdbms\admin\catrpc.sql)
また、不明点がありましたら、補足お願いします。
    • good
    • 0
この回答へのお礼

再度、ありがとうございます。
いろいろサイトで調べていたら、「catproc.sql」が出てきて、
desc ORA_KGLR7_DEPENDENCIES で記述が出てこなかったらカタログされていないので
「catproc.sql」を流してみたらどうか・・・というのが載っていました。
そこで、desc~を実行したところ、記述が出てきたので、catproc.sqlは実行済のようです。

この現象が発生する端末と発生しない端末があるので、
Oracleクライアントの設定に問題ありなのかとも考えています。
見当はつきませんが・・・

お礼日時:2006/02/24 21:31

またまたですが、


1.catproc.sqlとcatrpc.sqlは別物です。
2.catproc.sqlはOracleのToolでDBを作成したときに自動で流されるシステム用のPL/SQLです。厄介なことにcatproc.sqlは時たま壊れたりしますので、流しなおしは有効です。ちなみに、壊れている場合(validate=false)でもdescで表示されるはずです。両方再度流すことをお勧めします。
    • good
    • 0
この回答へのお礼

三度ありがとうございます。

サーバー側の処理のため勝手にできない環境なので保守契約先にいろいろ確認してみます。

お礼日時:2006/03/06 21:42

[ora_home]\RDBMS\ADMINのcatrpc.sqlに


Rem glumpkin 10/20/92 - Renamed from KGLR.SQL
とコメントがあります。
ひょっとすれば、catrpc.sqlを再度実行(sysユーザーのみ)すればよいかもしれません。保障とかはできませんが...。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
残念ながら、catrpc.sqlがありませんでした。
(ora_home以下で検索しても・・・)
ちなみにあったら、これをどのように実行すればよいのでしょうか?

お礼日時:2006/02/24 00:04

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

関連するカテゴリからQ&Aを探す