Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Процедура из пакета  [new]
Винни-Бух
Member

Откуда: Из дома!
Сообщений: 346
А можно ли вообще в Oracle посмотреть текст процедуры, которая находится в пакете (в MS SQL-Server для этого есть процедура sp_helptext)? И текст этот хотелось бы не только посмотреть, но и исправить и сохранить процедуру на сервере, не трогая больше ничего из пакета.
25 июл 11, 12:33    [11022243]     Ответить | Цитировать Сообщить модератору
 Re: Процедура из пакета  [new]
AmKad
Member

Откуда:
Сообщений: 5222
Винни-Бух,

Для чтения есть (dba|all|user)_source, для создания/правки есть create or replace.
25 июл 11, 12:34    [11022255]     Ответить | Цитировать Сообщить модератору
 Re: Процедура из пакета  [new]
Винни-Бух
Member

Откуда: Из дома!
Сообщений: 346
Ну, достать через user_source -> package body -> тело процедуры я могу. Надеялся, что что-то более изящное есть. Ведь в MS-SQL-Server есть несколько способов работы с исходными текстами объектов типа процедура.
25 июл 11, 12:38    [11022284]     Ответить | Цитировать Сообщить модератору
 Re: Процедура из пакета  [new]
Alexander Konakov
Member

Откуда:
Сообщений: 1027
Винни-Бух,

Пакетная процедура в Oracle - неотъемлемая часть пакета. Отдельно от пакета не изменяется.
25 июл 11, 12:43    [11022327]     Ответить | Цитировать Сообщить модератору
 Re: Процедура из пакета  [new]
Винни-Бух
Member

Откуда: Из дома!
Сообщений: 346
Н-да... грустно...
Все-таки Билли со своим мастдайным подходом как-то ближе к клиенту был. Чувствовалась забота. А тут... Этот ваш Ларри...
25 июл 11, 12:46    [11022354]     Ответить | Цитировать Сообщить модератору
 Re: Процедура из пакета  [new]
AlexFF__|
Member

Откуда:
Сообщений: 2854
MS SQL рулит!
25 июл 11, 12:49    [11022374]     Ответить | Цитировать Сообщить модератору
 Re: Процедура из пакета  [new]
Винни-Бух
Member

Откуда: Из дома!
Сообщений: 346
Не-не-не-не-неееее!!!!!!
Я Oracle'ом начал серьезно заниматься, просто поначалу непривычно многое. MS-SQL-Server - отстой!
25 июл 11, 12:50    [11022385]     Ответить | Цитировать Сообщить модератору
 Re: Процедура из пакета  [new]
-2-
Member

Откуда:
Сообщений: 15330
Для получения ddl - dbms_metadata.
Винни-Бух
Все-таки Билли со своим мастдайным подходом как-то ближе к клиенту был.
Ну и кто мешает не использовать в оракле, чего нет в MSSQL?
25 июл 11, 12:51    [11022391]     Ответить | Цитировать Сообщить модератору
 Re: Процедура из пакета  [new]
Винни-Бух
Member

Откуда: Из дома!
Сообщений: 346
to -2-:
Оборот интересный: "не использовать, чего нет".
Есть обычная потребность: разобрать на винтики любой объект базы данных с использованием наименьшего кол-ва инструментов и, по-возможности, без лишнего геморроя. Вот и все.
25 июл 11, 12:55    [11022418]     Ответить | Цитировать Сообщить модератору
 Re: Процедура из пакета  [new]
-2-
Member

Откуда:
Сообщений: 15330
Винни-Бух
разобрать на винтики любой объект базы данных
процедура, функция, пакет - это объект базы данных. процедура/функция внутри пакета - нет. "Вот и все".
Для получения списка опубликованных пакетом "точек входа" можно использовать xxx_procedures/xxx_arguments.
25 июл 11, 13:03    [11022460]     Ответить | Цитировать Сообщить модератору
 Re: Процедура из пакета  [new]
Винни-Бух
Member

Откуда: Из дома!
Сообщений: 346
Так! Это что-то новое. Тогда просветите ламера, что такое "xxx_procedures/xxx_arguments", а то я пишу запрос типа:

select * from user_source where name = 'PACK1' and type = 'PACKAGE BODY' and line > 35 and line < 355;

Числа 35 и 355 я посмотрел глазами, когда листал содержимое пакета.
Работаю я через Toad.
Если зайти в Schema Browser, то можно дойти до списка процедур всего пакета, но одну красиво все равно брать не получается.
25 июл 11, 13:13    [11022521]     Ответить | Цитировать Сообщить модератору
 Re: Процедура из пакета  [new]
Alexander Konakov
Member

Откуда:
Сообщений: 1027
Винни-Бух,

select * from user_procedures
select * from user_arguments
25 июл 11, 13:16    [11022544]     Ответить | Цитировать Сообщить модератору
 Re: Процедура из пакета  [new]
Винни-Бух
Member

Откуда: Из дома!
Сообщений: 346
to Alexander Konakov:
Спасибо! Я этого действительно не знал. Вот только текста процедуры там все равно нет.

Какой-то дикостью выглядит хранение исходного текста процедуры - каждой строки в отдельной записи таблицы базы данных (я имею в виду таблицу user_source).
Неужели нельзя разбить текст по символам перевода строки и получить эту самую нумерацию LINE. Поле LINE - по-моему, единственная "полезность" такого способа хранения.
25 июл 11, 13:22    [11022595]     Ответить | Цитировать Сообщить модератору
 Re: Процедура из пакета  [new]
Alexander Konakov
Member

Откуда:
Сообщений: 1027
Винни-Бух,

"А вы ей письмо напишите" (с) реклама
В смысле, попытайтесь открыть глаза разработчикам. Вы, мол, ... - а я умный д'Артаньян.
25 июл 11, 13:26    [11022645]     Ответить | Цитировать Сообщить модератору
 Re: Процедура из пакета  [new]
Винни-Бух
Member

Откуда: Из дома!
Сообщений: 346
Непременно-с!..

Спасибо за участие. У меня появилась новая проблема. Сейчас тему создам.
25 июл 11, 13:29    [11022673]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить