Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.15;
Скачать: CL | DM;

Вниз

Как в Oracle сделать аналог ReplaceStr для поля Long   Найти похожие ветки 

 
ORA-Del   (2005-11-22 12:05) [0]

Проблема такая - есть функция, используемая во многих представлениях, пакетах и процедурах. Захотел ее переименовать (т.к. не проявил ума при ее назывании).
Делаю select * from sys.all_objects и в поле TEXT (Long) необходимо имя этой функции заменить на новое... Как это сделать, поскольку вручную редактировать около 150 объектов сложно.
Заранее благодарю!


 
ANB ©   (2005-11-22 12:10) [1]


> ORA-Del   (22.11.05 12:05)

Загружаешь в тоад скрипты создания схемы (базы) и Ctrl+R рулит. А системные объекты лучше не трогать. Тем более это вьюха - чего ты в ней менять то собрался ?


 
Desdechado ©   (2005-11-22 12:11) [2]

не рекомендую копаться в системных таблицах, не понимая их сути
ведь в них еще прописываются взаимосвязи и т.п.
лучше выгрузить ХП и т.п. в скрипт, сделать массовую замену в нем, а потом выполнить его на БД
гораздо быстрее и правильнее


 
Sergey13 ©   (2005-11-22 12:12) [3]

Фигню ты задумал, ИМХО. Или оправдание своему нику делаешь?

Начнем с того, что sys.all_objects - это вьюха, а не таблица. Поля  TEXT я там (на 8-ке по крайней мере) не нашел вообще.


 
Desdechado ©   (2005-11-22 12:13) [4]

поле TEXT есть в all_procedures, но это ничего не меняет - подход коряв


 
ORA-Del   (2005-11-22 12:41) [5]

Спасибочки за ответы: метод коряв - это видно невооруженным взглядом, но, блн, когда для БД - есть исходные скрипты, а потом на них еще около двадцати внушительных обновлений - очень сложно искать последние копии 150 объектов по всему этому файловому безобразию, точно, как и выдергивать исходные коды объектов (всего их, блн,  618). Мне легче такое имя оставить это долбаной функции, как есть...

> Sergey13 ©   (22.11.05 12:12) [3]

В ник написал что пришло в голову, а в all_objects есть поля object_name и object_type, по которым несложно добраться до поля TEXT из вьюх all_tables (all_all_tables, all_views и т.д.) и не играет роли, вьюхи это или таблицы!

Поумничать может каждый, а по существу кто сможет посоветовать?


 
Desdechado ©   (2005-11-22 12:49) [6]

зачем исходные? возьми текущие
выгрузить не составляет труда


 
Sergey13 ©   (2005-11-22 12:54) [7]

2[5] ORA-Del   (22.11.05 12:41)
>  по которым несложно добраться до поля TEXT из вьюх all_tables (all_all_tables, all_views и т.д.)
Ну спасибо за просвещение. Мы то темные не ведали сего. Понятно ведь - чувак имеет SYS-овский пароль и добраться может до чего угодно.

>и не играет роли, вьюхи это или таблицы!
Да ну? А почему это вьюха, а не просто таблица не догадываешься? Может потому, в частности, чтоб не ковырялись в ней с изменениями.


 
ANB ©   (2005-11-22 13:02) [8]


> ORA-Del   (22.11.05 12:41) [5]

Добраться то можно. Только попробуй в этой вьюхе чего нибудь проапдейтить. Гы.
Полазить можно по системным таблицам, но связок там намного больше, чем ты думаешь. В одном месте не поправишь - и получишь кирдык базе.


> Поумничать может каждый, а по существу кто сможет посоветовать?

По существу - да пожалуйста : оракл не поддерживает в строковых функциях тип LONG. Рекомендуется конвертировать такие поля в блобы.
Еще по существу : тоад умеет создавать скрипт БД. И девелопер тоже (в последних версиях).
Последний раз по существу - попробуй выполнить вот это :
update sys.obj$
set Name = "Новое имя"


 
Reindeer Moss Eater ©   (2005-11-22 13:04) [9]

После замены текста процедур все равно придется их перекомпилировать.
Так что лучше уж сразу.
Выгрузить скрипты, изменить их и накатить снова.



Страницы: 1 вся ветка

Текущий архив: 2006.01.15;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.049 c
2-1135275962
denisww
2005-12-22 21:26
2006.01.15
HTTPRIO


2-1135369765
zt501
2005-12-23 23:29
2006.01.15
Координаты мышы


2-1135263329
kotbazilio
2005-12-22 17:55
2006.01.15
Жесткий и мягий поиск


14-1135240647
Витёк
2005-12-22 11:37
2006.01.15
Возвести число 2 в степень n (n<=10000)!


14-1134725654
sax_ol
2005-12-16 12:34
2006.01.15
задача для 6 класса