2012-02-05 2 views
1

У меня есть две схемы.Oracle: создать таблицу в другой схеме и выделить выделение и вставить на нее из той же схемы

1.Schema

2.Schema B

мне нужно сделать следующее.

  1. Я хочу создать несколько таблиц в схеме B (так же, как некоторые таблицы в )
  2. Затем Перенести данные из к B.

Теперь я хочу, чтобы все это сделать из схемы . Я написал пакет, который, когда выполняется в создаст все таблицы в B, а затем создать синонимы для них в . А затем просто выберите данные из своих собственных таблиц и вставьте в B's таблицы.

ОЧЕНЬ IMP: Теперь вся эта вещь должна произойти в одном дыхании. Просто выполнение одного начального блока должно выполнять всю работу.

Проблема: Но теперь синонимы не будут работать, потому что схемы не имеет privs на столах, которые он создал в B.

так есть способ создания таблиц (от A до B) со всеми привилегиями, указанными во время создания? Или можно включить схемы в PL-SQL во время выполнения, чтобы привилегии могли быть предоставлены от B до A? (Я уверен, что этого не может быть сделано, но ничего невозможного они не скажут!: O: P так спрашиваю)

Пожалуйста, помогите мне, ребята! Все предложения приветствуются!

Основная цель этой работы - сделать это за один раз и только от одной схемы.

ответ

3

Вы можете определить процедуру, которая будет выполняться по правам DEFINER, вместо прав абонентов

CREATE OR REPLACE PROCEDURE definer_test AUTHID DEFINER IS 
BEGIN 
    ... 
END definer_test; 

Вы определили бы такую ​​процедуру, описанную в схеме B, которая делает работу и вызвать его из схемы А.

+0

Спасибо Оливье! Кажется, это может сделать работу – BobadKanda

Смежные вопросы