Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Создание объекта на основе существующей таблицы / 11 сообщений из 11, страница 1 из 1
20.10.2018, 23:54
    #39720369
JohnVein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание объекта на основе существующей таблицы
Добрый день. Подскажите пожалуйста если ли возможность вместо
Код: plsql
1.
create or replace type founded_constraint as object(TABLE_NAME varchar2(25), R_TABLE_NAME varchar2(25))


создать объект на основе какой-нибудь таблицы например
Код: plsql
1.
2.
3.
4.
5.
create table X(
TABLE_NAME varchar2(25),
R_TABLE_NAME varchar2(25)
);
create or replace type founded_constraint as object(X);
...
Рейтинг: 0 / 0
21.10.2018, 01:21
    #39720376
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание объекта на основе существующей таблицы
JohnVein если ли есть ли
...
Рейтинг: 0 / 0
21.10.2018, 01:28
    #39720377
SkilledJunior
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание объекта на основе существующей таблицы
JohnVein,

Цель какая?

Объявления %TYPE и %ROWTYPE возможны в PL/SQL модулях, в создании самостоятельного объектного типа уровня схемы (по сути класса уровня схемы) их использовать нельзя.

В пакете можно объявить тип: type constraints_table is table of X%ROWTYPE;
...
Рейтинг: 0 / 0
21.10.2018, 08:05
    #39720390
JohnVein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание объекта на основе существующей таблицы
JohnVeinДобрый день. Подскажите пожалуйста есть ли возможность вместо
Код: plsql
1.
create or replace type founded_constraint as object(TABLE_NAME varchar2(25), R_TABLE_NAME varchar2(25))


создать объект на основе какой-нибудь таблицы например
Код: plsql
1.
2.
3.
4.
5.
create table X(
TABLE_NAME varchar2(25),
R_TABLE_NAME varchar2(25)
);
create or replace type founded_constraint as object(X);
...
Рейтинг: 0 / 0
21.10.2018, 08:10
    #39720391
JohnVein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание объекта на основе существующей таблицы
SkilledJuniorJohnVein,

Цель какая?

Объявления %TYPE и %ROWTYPE возможны в PL/SQL модулях, в создании самостоятельного объектного типа уровня схемы (по сути класса уровня схемы) их использовать нельзя.

В пакете можно объявить тип: type constraints_table is table of X%ROWTYPE;
Цель, есть функция, пользователь вызывает ее с параметрами(имя таблицы1, имя таблицы2) и функция на основе таблицы1 создает новую, в которой будут присутствовать все поля таблицы 1 и одно новое поле с типом коллекции в которую помещаются данные из таблицы2
...
Рейтинг: 0 / 0
21.10.2018, 08:13
    #39720393
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание объекта на основе существующей таблицы
JohnVeinновое поле с типом коллекцииЭто путь в никуда. Тем более, для новичка.
...
Рейтинг: 0 / 0
21.10.2018, 14:28
    #39720454
SkilledJunior
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание объекта на основе существующей таблицы
JohnVeinЦель, есть функция, пользователь вызывает ее с параметрами(имя таблицы1, имя таблицы2) и функция на основе таблицы1 создает новую, в которой будут присутствовать все поля таблицы 1 и одно новое поле с типом коллекции в которую помещаются данные из таблицы2
Бессмысленная операция, как по результату так и по исполнению.

Смысла делать дубль таблицы и дубль этой же таблицы в добавленном поле нет никакого. Но если очень хочется, то создавать поле с типом коллекции не нужно, создай таблицу-дубль, создай таблицу-дубль2 со ссылкой на первичный ключ таблицы-дубль.

Создавать таблицу в функции совершенно ни к чему.

Чтобы сформировать скрипт для создания таблицы можно воспользоваться:
1. CREATE TABLE AS SELECT
2. Извлечь необходимую информацию о таблице из представлений словаря данных.
3. GET_DDL
...
Рейтинг: 0 / 0
22.10.2018, 14:13
    #39720888
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание объекта на основе существующей таблицы
SkilledJuniorЧтобы сформировать скрипт для создания таблицы можно воспользоваться:
CREATE TABLE AS SELECT
Как пром, создание таблиц на ходу вообще не очень разумная практика (разве что на XE), но именно CTAS не рекомендовал бы.
...
Рейтинг: 0 / 0
22.10.2018, 17:19
    #39721040
mibin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание объекта на основе существующей таблицы
JohnVein,

Возможна обратная ситуация, можно создать объект, а на его основе таблицу.
Будешь править объект будет автоматически изменена таблица.
...
Рейтинг: 0 / 0
22.10.2018, 21:17
    #39721146
SkilledJunior
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание объекта на основе существующей таблицы
andrey_anonymousКак пром, создание таблиц на ходу вообще не очень разумная практика (разве что на XE), но именно CTAS не рекомендовал бы.
А прочитать сообщение на которое отвечаешь полностью?
SkilledJuniorСоздавать таблицу в функции совершенно ни к чему.
...
Рейтинг: 0 / 0
22.10.2018, 23:45
    #39721172
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание объекта на основе существующей таблицы
SkilledJuniorandrey_anonymousКак пром, создание таблиц на ходу вообще не очень разумная практика (разве что на XE), но именно CTAS не рекомендовал бы.
А прочитать сообщение на которое отвечаешь полностью?
SkilledJuniorСоздавать таблицу в функции совершенно ни к чему.Обоим. Создание через plsql специальных таблиц по шаблону нормальная часто используемая практика.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Создание объекта на основе существующей таблицы / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]