1

することは可能ですか

alter session set current_schema=MySchema;

パッケージの中?

asp.netWebアプリケーションはOracleパッケージを呼び出します。MySchemaの所有者ではないOracleユーザーでデータベースに接続したいと思います。そのために、MyPackageをパッケージ化するためにOther_Userに実行権限を付与します。

例:

grant execute on MySchema.MyPackage to Other_User

ただし、WebアプリがOracleに接続してMyPackageのストアドプロシージャを実行しようとすると、テーブルがOther_Userに属していないため、エラーが発生します。

エラーを回避する1つの方法は同義語を作成することですが、

alter session set current_schema=MySchema;

可能であれば、パッケージ内。

編集:「altersession」をパッケージに入れようとすると: ここに画像の説明を入力してください

4

1 に答える 1

4

ALTER SESSIONPL / SQLで直接DDLステートメント(つまり)を使用することはできません。

を使用する必要がありますEXECUTE IMMEDIATE

execute immediate 'alter session set current_schema=MySchema';
于 2012-09-17T16:32:19.887 に答える