スクリプトがyourscript.SQLがで分割さのみDMLコマンドが含まれている必要があり
SET SERVEROUTPUT ON
DECLARE
TYPE my_users_type IS VARRAY (5) OF VARCHAR (256);
my_users my_users_type;
BEGIN
my_users := my_users_type ('USER1', 'USER2', 'USER3'); --your users
FOR i IN my_users.FIRST .. my_users.LAST LOOP
EXECUTE IMMEDIATE 'ALTER SESSION SET CURRENT_SCHEMA =' || my_users (i);
@D:\yourscript.SQL; --your script with path
END LOOP;
end;
/
のみDML操作を持っている場合は、これを試してみてください。 他には何もありません。 それを変更することができます - プロシージャを作成するには文字列パラメータがあります。パラメータはすべてのユーザに対してループで実行される単一のDMLコマンドです。
またはちょうどあなたのDML操作に接頭辞として
P.S.をスキーマ名を使用しない以外、スクリプトyourscript.SQLに
ALTER SESSION SET CURRENT_SCHEMA = USER1
@D:\yourscript.SQL;
ALTER SESSION SET CURRENT_SCHEMA = USER2
@D:\yourscript.SQL;
ALTER SESSION SET CURRENT_SCHEMA = USER3
@D:\yourscript.SQL;
制限なしを使用ユーザーの実行には十分な権限が必要です。
この回答に加えて、さまざまなユーザーへのプロキシアクセスを1人のユーザーに許可することを検討してください。次のような単一のユーザーを使用して各プロキシユーザーに接続します。conn alek [hr]/**** @ xe。最後に、その単一ユーザーのパスワードをパラメータ化します。これはセキュリティ上の懸念を避けるべきです。 –