Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Перенос пользовательского типа из одной базы в другую / 25 сообщений из 28, страница 1 из 2
31.08.2017, 14:35
    #39513472
ioserg2018
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос пользовательского типа из одной базы в другую
Добрый день
Необходимо перенести пользовательский тип из одной базыданных в другую
Подскажите пожалуйста как это можно сделать что бы OID были одинаковы
...
Рейтинг: 0 / 0
31.08.2017, 14:39
    #39513474
Viewer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос пользовательского типа из одной базы в другую
...
Рейтинг: 0 / 0
31.08.2017, 14:46
    #39513477
ioserg2018
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос пользовательского типа из одной базы в другую
Viewer,

Спасибо, а как узнать OID определённого объекта?
...
Рейтинг: 0 / 0
31.08.2017, 14:53
    #39513481
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос пользовательского типа из одной базы в другую
ioserg2018,

1) https://docs.oracle.com/database/121/ARPLS/d_metada.htm#ARPLS66869
2) expdb/impdb
3) найти скрипт которым "создавалось" в исходной

...
stax
...
Рейтинг: 0 / 0
31.08.2017, 15:11
    #39513496
ioserg2018
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос пользовательского типа из одной базы в другую
Stax,

И где там написано как узнать OID объекта?
...
Рейтинг: 0 / 0
31.08.2017, 15:26
    #39513506
ioserg2018
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос пользовательского типа из одной базы в другую
Stax,

МОжет есть какое-нибудь системное представление, что бы посмотреть там OID ?
...
Рейтинг: 0 / 0
31.08.2017, 15:46
    #39513522
123йй
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос пользовательского типа из одной базы в другую
ioserg2018,

oid
...
Рейтинг: 0 / 0
31.08.2017, 15:51
    #39513524
ioserg2018
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос пользовательского типа из одной базы в другую
123йй,

Спасибо
...
Рейтинг: 0 / 0
31.08.2017, 16:08
    #39513538
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос пользовательского типа из одной базы в другую
ioserg2018Stax,

МОжет есть какое-нибудь системное представление, что бы посмотреть там OID ?


если ворос об импорте, то в Кайта кажись описано как обмануть,
надо перед импортом саздать обьект

для impdb что-то есть
TRANSFORM = transform_name:value[:object_type]
OID - If the value is specified as n, the assignment of the exported OID during the creation of object tables and types is inhibited. Instead, a new OID is assigned. This can be useful for cloning schemas, but does not affect referenced objects. The default value is y.

я не ДБА, по imp/exp луче к ним

.....
stax
...
Рейтинг: 0 / 0
31.08.2017, 16:14
    #39513541
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос пользовательского типа из одной базы в другую
ioserg2018,

не то?
Код: plsql
1.
2.
3.
4.
5.
SQL> select type_name,TYPE_OID from user_types where TYPE_NAME='TSCHEDULE';

TYPE_NAME                      TYPE_OID
------------------------------ --------------------------------
TSCHEDULE                      580BDAAE54001DE3E0534804A8C051B1



.....
stax
...
Рейтинг: 0 / 0
31.08.2017, 16:19
    #39513544
ioserg2018
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос пользовательского типа из одной базы в другую
Stax,

я так и сделал, создал объект с тем же OID, теперь при выводе этого поля select из синонима, выдается ошибка
- Удаленные операции над таблицами объектов и столбцами пользовательских типов не разрешены

Нужно ли пересоздавать синоним?
...
Рейтинг: 0 / 0
31.08.2017, 16:29
    #39513549
ioserg2018
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос пользовательского типа из одной базы в другую
Stax,

Балин, не тот OID записался
хотя я указывал при создании типа нужный OID объекта
типо:
Код: plsql
1.
2.
3.
CREATE OR REPLACE Type TScheduledOperation
       OID '111blablabla777'
       AS Object (



И все равно левый OID прописался
...
Рейтинг: 0 / 0
31.08.2017, 16:30
    #39513551
ioserg2018
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос пользовательского типа из одной базы в другую
ioserg2018,

Нет все норм, левый OID на порожденном типе оказался
...
Рейтинг: 0 / 0
31.08.2017, 16:39
    #39513563
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос пользовательского типа из одной базы в другую
ioserg2018Stax,

я так и сделал, создал объект с тем же OID, теперь при выводе этого поля select из синонима, выдается ошибка
- Удаленные операции над таблицами объектов и столбцами пользовательских типов не разрешены


шот я перегрелся
видать по разному понимаю "Перенос пользовательского типа из одной базы в другую"

.....
stax
...
Рейтинг: 0 / 0
31.08.2017, 16:51
    #39513571
ioserg2018
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос пользовательского типа из одной базы в другую
Stax,

создать такой же с такой же структурой с таким же OID
Нет?
...
Рейтинг: 0 / 0
31.08.2017, 16:54
    #39513572
ioserg2018
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос пользовательского типа из одной базы в другую
ioserg2018Stax,

создать такой же с такой же структурой с таким же OID
Нет?

Ну все ок, работает
...
Рейтинг: 0 / 0
31.08.2017, 17:02
    #39513577
ioserg2018
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос пользовательского типа из одной базы в другую
Stax,

Так, теперь надо как-то перенести данные этого типа из одной БД в другую
Тип данных тот же самый - пользовательский тип
...
Рейтинг: 0 / 0
31.08.2017, 17:12
    #39513585
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос пользовательского типа из одной базы в другую
ioserg2018Stax,

Так, теперь надо как-то перенести данные этого типа из одной БД в другую
Тип данных тот же самый - пользовательский тип

експоpт/імпорт не подходит?
у меня мало опыта рыботы с обьектами


зи
недавно кто на форуме кажись переносил (вернее пытался)

зии
для древних баз Кайт настоятельно рекомендовал создавать типы в отдельной схеме

....
stax
...
Рейтинг: 0 / 0
31.08.2017, 17:23
    #39513594
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос пользовательского типа из одной базы в другую
ioserg2018,

к сожленью по буржуински

авторRestriction on Using User-Defined Types with a Remote Database

Objects or user-defined types (specifically, types declared with a SQL CREATE TYPE statement, as opposed to types declared within a PL/SQL package) are currently useful only within a single database. Oracle Database restricts use of a database link as follows:

You cannot connect to a remote database to select, insert, or update a user-defined type or an object REF on a remote table.

You can use the CREATE TYPE statement with the optional keyword OID to create a user-specified object identifier (OID) that allows an object type to be used in multiple databases. See the discussion on assigning an OID to an object type in the Oracle Database Data Cartridge Developer's Guide.

You cannot use database links within PL/SQL code to declare a local variable of a remote user-defined type.

You cannot convey a user-defined type argument or return value in a PL/SQL remote procedure call.



.....
stax
...
Рейтинг: 0 / 0
31.08.2017, 17:27
    #39513597
ioserg2018
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос пользовательского типа из одной базы в другую
Stax,

пытался сделать прямой update, но выпала ошибка:
Код: plsql
1.
ora-01779 нельзя изменить столбец, который отображает non key-precerved таблицу


Что это такое?
...
Рейтинг: 0 / 0
31.08.2017, 17:45
    #39513607
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос пользовательского типа из одной базы в другую
ioserg2018Stax,

пытался сделать прямой update, но выпала ошибка:
Код: plsql
1.
ora-01779 нельзя изменить столбец, который отображает non key-precerved таблицу


Что это такое?

update по линку?

імхо ето больше к вьюшкам
Код: plsql
1.
2.
3.
4.
5.
oerr ora 1779
01779, 00000, "cannot modify a column which maps to a non key-preserved table"
// *Cause: An attempt was made to insert or update columns of a join view which
//         map to a non-key-preserved table.
// *Action: Modify the underlying base tables directly.



зы

гугль перевод


авторВы не можете подключиться к удаленной базе данных для выбора,
вставки или обновления определенного пользователем типа или
REF объекта в удаленной таблице.



.....
stax
...
Рейтинг: 0 / 0
01.09.2017, 07:44
    #39513790
ioserg2018
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос пользовательского типа из одной базы в другую
Stax,

Да, update по линку
Но простой select из синонима по ДБЛинку выводится, и update я делаю не удалённого объекта,
я беру select из ДБЛинка и вставляю данные в "местную" таблицу
Но не получается, почему такое может быть, вроде как все правильно делал, гугл я курил на эту тему, так же смотрел
как делается сложный update, пример кода, который пытаюсь выполнить:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
update 
(select t1.pole as pnew,t2.pole as pold
    from ttable1 t1
           join ttable2 t2
                 on t1.id=t2.id
) tt
set tt.pnew=tt.pold



Как вариант хочется попробовать ещё делать merge, но будет ли целесообразно сделать этот merge в курсоре,
так как таблицы большие....?
...
Рейтинг: 0 / 0
01.09.2017, 09:04
    #39513817
ioserg2018
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос пользовательского типа из одной базы в другую
Stax,

можно ли ещё так же делать marge только лишь с частью таблиц
...
Рейтинг: 0 / 0
01.09.2017, 09:25
    #39513830
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос пользовательского типа из одной базы в другую
ioserg2018Stax,

можно ли ещё так же делать marge только лишь с частью таблиц
наверное можно

но
1) у меня нет практического опыта работы с обектными таблицами (не люблю я их)
2) я не совсем понимаю вопрос


зы
на счет ora-01779 у вас вьюшка (запрос) no update (или как оно там называется)
иногда может помочь индексация, но надо ли, не знаю

......
stax
...
Рейтинг: 0 / 0
01.09.2017, 10:28
    #39513886
ioserg2018
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос пользовательского типа из одной базы в другую
Stax,

Спасибо большое,
А как индексы-то помогут в этом воросе?
Ониж только упорядочевают записи, если это примари и создают ссылки на записи, если это форинг...?
Как они отработают при update поля с пользовтельским типом?
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Перенос пользовательского типа из одной базы в другую / 25 сообщений из 28, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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