2017-08-07 14 views
0

私は単純なクエリを使用していますが、putデータベースでsqldeveloperを実行しますが、別のベンダーデータベースからデータを選択します。 db_linkが作成されました。実行クエリがvendortのデータベースに接続できません。たとえdblinkが存在しても

select some_files from mytable trd, vendordbname.vendortable  
where(condition)  

と私はエラーを取得する:しかし、私は私のプロCプログラムのように、実行

ORA-00942: table or view does not exist  
00942. 00000 - "table or view does not exist"  
*Cause:   
*Action:  
Error at Line: 25 Column:  

私はそれを実行するために、見つけなければならない解決策はどのような? dblinkの名前を使用しますか?または、他の何か?私はそれがプロCで実行する場合、すべてがUNIXとsqlplusをに設定し、

おかげ

+0

DB_LINKは、特定のユーザーとして実行されます。ユーザーがvendordbname.vendortableへのアクセス権を持っていないように見えます。 'Select * from all_DB_LINKS; 'は、そのシステムビューから選択する権限を持っているすべてのリンクとユーザを表示します。これにより、リンクが動作しているユーザーが適切な権限を確認できるようになります。 – xQbert

+0

しかし、私が手動で実行したとしても、プログラムはQAと本番サーバで正常に動作していますが、唯一の私はsqldeveloperから実行できません。私はall_db_linkをチェックしましたが、すべてが存在しました – SamOl

+0

私は問題に従っているかどうかわかりません。あなたは自分自身でログインしているSQL開発者で、dev/test/prod環境でクエリを実行でき、それが動作すると言っていますか?しかし、アプリケーションを実行すると失敗します(ちょうどprod?)Pro Cアプリケーションのユーザーにアクセス権がないリンクを指しているシノニムが使用されていますか? – xQbert

答えて

1

OKあらゆる可能性の助けに感謝します。
私はのsqldeveloperからそれを実行すると、私はベンダーのホスト名を追加する必要が

select some_files from mytable trd, [email protected]   
where(condition)  
+0

別のオペレーティングシステムから接続することであなたのアクセスの問題を解決したと言いますか?異なるOracleユーザーとして接続しているか、別のインスタンスに接続している可能性は高いです。 –

関連する問題