Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.012 c
2-1135751571
Bratskiy
2005-12-28 09:32
2006.01.15
Использование неопределёного числа параметров в процедуре


3-1132562149
diwww
2005-11-21 11:35
2006.01.15
Как обновлять базу после установки галочки?


3-1132582359
KorvinOE
2005-11-21 17:12
2006.01.15
Даты в Access


6-1128316994
SiDoff
2005-10-03 09:23
2006.01.15
Как программно изменить ШЛЮЗ (в XP)?


2-1135550887
garald
2005-12-26 01:48
2006.01.15
массив типа BYTE





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский