Форум: "Базы";
Текущий архив: 2006.01.15;
Скачать: [xml.tar.bz2];
ВнизКак в 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.014 c