2017-12-28 22 views
1

自分のユーザー名とパスワード(パッケージ所有者)を使用してパッケージにアクセスすると、完全に動作するいくつかの手順でパッケージを作成しました。別のユーザーora17から私のパッケージにアクセスするには 、私は権限を付与:特権を与えることができません

grant execute on package_name TO ora17; 

その後、私は、次の走ったora17ユーザーから:

CREATE SYNONYM package_name FOR LOGIN.package_name; 

先生の指示に従って。 ブラウザからプログラムにアクセスしようとしています。 URLを使用して:https://somehost/pls/st12/package_name.customers 私は、次のエラーを取得しています:私はここで間違って

Thu, 28 Dec 2017 15:12:19 GMT 

Failed to parse target procedure 
package_name.customers: PROCEDURE DOESN'T EXIST 

何をしているのですか?

UPD:このため

ORA-04043: object "LOGIN"."PACKAGE_NAME" does not exist 
+2

シノニムを作成したとき、おそらく 'LOGIN'をあなたの実際のユーザに変更しました - スキーマの名前p ackageは入っていますか?プロシージャを手動で「ora17」と呼び出すとどうなりますか? SQL Developerから? –

+0

@AlexPoole、私はこれを初めて熟知しており、他のユーザのパッケージからプロシージャを正確に実行する方法を知らない。しかし、パッケージをコンパイルしようとすると、エラーが発生します。エラー:ORA-01031:不十分な特権 – alalambda

+0

「ora17」からコンパイルするべきではありません。このエラーは、同義語が正しい場所を指していることを示していますが。あなたは所有者として実行すると完全に動作すると言ったので、どうしていますか?実行するより少しシンプルなものはどうですか? ora17として、 'package_name'を何と言うのでしょうか? –

答えて

0

ソリューションは簡単だった、私はちょうどここLOGINのではなく、所有者のユーザー名を入れている必要があります:

CREATE SYNONYM package_name FOR LOGIN.package_name; 

describe package_name; 

実行それは私にエラーを与えます

関連する問題