Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.12.2009, 17:08   #1
Sparky
Участник клуба
 
Аватар для Sparky
 
Регистрация: 15.05.2009
Сообщений: 1,222
По умолчанию Создание дубликатов таблиц

Есть такое задание, необходимо создать бд по определенной предметной области, необходмо реализовать процедуру на pl/sql которая позволит создать дубликаты всех таблиц, которые были созданы
Единственное, что ограничивает полет мысли программиста-компилятор
Sparky вне форума Ответить с цитированием
Старый 28.12.2009, 17:49   #2
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

в принципе-то надо немного поработать с поиском и ответ найдется
пример получения ДДЛ таблицы EMP
Код:
select dbms_metadata.get_ddl('TABLE','EMP')
from dual
вот так можно получить все таблицы юзера scott
Код:
select *
from all_objects
where 0=0  
  and owner = upper('scott') 
  and object_type = upper('table')
order by object_name
ну и ссылка на доку в помощь (там ведь еще индексы и гранты добавлять)
soleil@mmc вне форума Ответить с цитированием
Старый 28.12.2009, 18:19   #3
Sparky
Участник клуба
 
Аватар для Sparky
 
Регистрация: 15.05.2009
Сообщений: 1,222
По умолчанию

спасибо большое
Единственное, что ограничивает полет мысли программиста-компилятор
Sparky вне форума Ответить с цитированием
Старый 29.12.2009, 15:16   #4
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

и вот это для общего развития
Код:
select * 
from dictionary
order by table_name
soleil@mmc вне форума Ответить с цитированием
Старый 29.12.2009, 16:45   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

а вот от меня примерчик подобной процедуры:
Код:
CREATE OR REPLACE PROCEDURE DOUBLE_TABLES IS

       CURSOR all_tabs IS
        select object_name
        from all_objects
        where owner = upper('uzes') 
          and object_type = 'TABLE'
          and instr(object_name, 'DBL_')=0
          and instr(object_name, 'S2008')>0;

 Dbl_Name varchar2(30);          
 RecCount number;

BEGIN
for all_tabs_rec in all_tabs loop
   Dbl_Name :=  substr(('DBL_' ||all_tabs_rec.object_name),1,30);
   select count(*) into RecCount
   from all_objects
      where object_type = 'TABLE'
          and object_name = Dbl_Name;
   if RecCount > 0 then    
      EXECUTE IMMEDIATE 'drop table '||Dbl_Name;
   end if;   
   EXECUTE IMMEDIATE 'create table '||Dbl_Name||' as select * from '||all_tabs_rec.object_name;
end loop;
END;

Последний раз редактировалось Serge_Bliznykov; 29.12.2009 в 16:50.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание таблиц в MS WORD Andreykin2000 Помощь студентам 0 15.12.2009 16:48
Создание новых таблиц в Access через Delphi mopozoff БД в Delphi 25 05.12.2009 20:18
Удаления дубликатов строк memo AquaKlaster Общие вопросы Delphi 7 20.07.2009 23:46
Создание запроса, выборка из 4 таблиц! help! angelkisss SQL, базы данных 3 03.02.2008 15:03
Создание таблиц MAcK Общие вопросы Delphi 4 07.11.2007 15:51