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

Откуда: Dortmund
Сообщений: 371
Блог
Почему в одном случае запись в ALL_ARGUMENTS есть а в другом нет>

CREATE OR REPLACE PROCEDURE GPU_TEST_PROC2
AS
BEGIN
NULL;
END GPU_TEST_PROC2;

CREATE OR REPLACE PACKAGE BODY GPU_TEST IS
PROCEDURE GPU_TEST_PROC
IS
BEGIN
NULL;
END GPU_TEST_PROC;
END GPU_TEST;

SELECT * FROM all_arguments
                WHERE owner = 'GPU'
                AND package_name IS NULL
                AND object_name = 'GPU_TEST_PROC2';
>No rows returned

SELECT * FROM all_arguments
                WHERE owner = 'GPU'
                AND package_name = 'GPU_TEST'
                AND object_name = 'GPU_TEST_PROC';
Object Name:GPU_TEST_PROC
Package Name:GPU_TEST
Argument Name : NULL
Position:1
...

Oracle Database 11g Release 11.2.0.1.0 - 64bit Production
24 авг 10, 21:46    [9318435]     Ответить | Цитировать Сообщить модератору
 Re: ALL_ARGUMENTS аргументы просто процедуры и процедуры пакета  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 10042
Don't ask me why, but yes, XXX_ARGUMENTS does not include standalone stored procedures with no arguments but at the same time it does include package stored procedures with no arguments. Use the following to list database all stored procedures (package and standalone) with a given name:

SELECT  NVL2(MIN(OVERLOAD),'OVERLOADED ',NULL) ||
        NVL2(PACKAGE_NAME,NULL,'STANDALONE ') ||
        DECODE(MIN(POSITION),0,'FUNCTION','PROCEDURE') ||
        NVL2(PACKAGE_NAME,' IN PACKAGE ' || PACKAGE_NAME,NULL) ||
        ' OWNED BY USER ' || OWNER AS RESULT
  FROM  (
          SELECT  OWNER,
                  PACKAGE_NAME,
                  SUBPROGRAM_ID,
                  POSITION,
                  OVERLOAD
            FROM  DBA_ARGUMENTS
            WHERE OBJECT_NAME = UPPER('stored-procedure-name')
         UNION ALL
          SELECT  OWNER,
                  NULL,
                  1,
                  1,
                  NULL
            FROM  DBA_OBJECTS
            WHERE OBJECT_NAME = UPPER('stored-procedure-name')
              AND OBJECT_TYPE = 'PROCEDURE'
        )
  GROUP BY OWNER,
           PACKAGE_NAME,
           SUBPROGRAM_ID
  ORDER BY OWNER,
           PACKAGE_NAME,
           SUBPROGRAM_ID
/

SY.
25 авг 10, 03:58    [9319255]     Ответить | Цитировать Сообщить модератору
 Re: ALL_ARGUMENTS аргументы просто процедуры и процедуры пакета  [new]
-2-
Member

Откуда:
Сообщений: 15330
SY
Use the following to list database all stored procedures (package and standalone) with a given name
DBA_PROCEDURES?
25 авг 10, 07:58    [9319353]     Ответить | Цитировать Сообщить модератору
 Re: ALL_ARGUMENTS аргументы просто процедуры и процедуры пакета  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
gpu
Почему в одном случае запись в ALL_ARGUMENTS есть а в другом нет>
..

тупо потому, что процедура не специфицирована с спецификации пакета
25 авг 10, 11:08    [9320587]     Ответить | Цитировать Сообщить модератору
 Re: ALL_ARGUMENTS аргументы просто процедуры и процедуры пакета  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
orawish
gpu
Почему в одном случае запись в ALL_ARGUMENTS есть а в другом нет>
..

тупо потому, что процедура не специфицирована в спецификации пакета
25 авг 10, 11:09    [9320592]     Ответить | Цитировать Сообщить модератору
 Re: ALL_ARGUMENTS аргументы просто процедуры и процедуры пакета  [new]
JaRo
Member

Откуда:
Сообщений: 1659
orawish
gpu
Почему в одном случае запись в ALL_ARGUMENTS есть а в другом нет>
..
тупо потому, что процедура не специфицирована в спецификации пакета
Вы не правильно прочитали вопрос (с пакетом как раз всё хорошо).
25 авг 10, 11:27    [9320799]     Ответить | Цитировать Сообщить модератору
 Re: ALL_ARGUMENTS аргументы просто процедуры и процедуры пакета  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
JaRo
orawish
gpu
Почему в одном случае запись в ALL_ARGUMENTS есть а в другом нет>
..
тупо потому, что процедура не специфицирована в спецификации пакета
Вы не правильно прочитали вопрос (с пакетом как раз всё хорошо).

да. действительно.

а про непакетированные процедуры без параметров (именно процедуры - функции в *аргументах таки будут представлены тем, что возвращают) к вышесказанному хочу добавить имхо - не надо их создавать никогда. Для этого нет оснований. Один гемр.
25 авг 10, 12:08    [9321298]     Ответить | Цитировать Сообщить модератору
 Re: ALL_ARGUMENTS аргументы просто процедуры и процедуры пакета  [new]
gpu
Member

Откуда: Dortmund
Сообщений: 371
Блог
orawish

а про непакетированные процедуры без параметров (именно процедуры - функции в *аргументах таки будут представлены тем, что возвращают) к вышесказанному хочу добавить имхо - не надо их создавать никогда. Для этого нет оснований. Один гемр.

Создавать или не создавать вопрос скорее философский, может регулироваться гайдлаином, и вопрос (не)создания не всегда в наших руках. У нас таки да запрещено создавать функции или процедуры вне пакета.
Обнаружил я ето случайно, в процессе тестирования своего кода который использует ALL_ARGUMENTS.

Но меня интересует именно то, на что уважаемый SY отписал>
>Don't ask me why, but yes<

В доке по ALL_ARGUMENTS данный нюанс специально не оговоривается. Ну нет у нас здесь сложных типов , опять же ето процедура, а не функция и т.д.
25 авг 10, 12:56    [9321806]     Ответить | Цитировать Сообщить модератору
 Re: ALL_ARGUMENTS аргументы просто процедуры и процедуры пакета  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
gpu
orawish

а про непакетированные процедуры без параметров (именно процедуры - функции в *аргументах таки будут представлены тем, что возвращают) к вышесказанному хочу добавить имхо - не надо их создавать никогда. Для этого нет оснований. Один гемр.

Создавать или не создавать вопрос скорее философский, может регулироваться гайдлаином, и вопрос (не)создания не всегда в наших руках. У нас таки да запрещено создавать функции или процедуры вне пакета.
Обнаружил я ето случайно, в процессе тестирования своего кода который использует ALL_ARGUMENTS.

Но меня интересует именно то, на что уважаемый SY отписал>
>Don't ask me why, but yes<

В доке по ALL_ARGUMENTS данный нюанс специально не оговоривается. Ну нет у нас здесь сложных типов , опять же ето процедура, а не функция и т.д.

а что оговаривать? у непакетированных процедур (без параметров) таки нет параметров.
25 авг 10, 13:27    [9322155]     Ответить | Цитировать Сообщить модератору
 Re: ALL_ARGUMENTS аргументы просто процедуры и процедуры пакета  [new]
gpu
Member

Откуда: Dortmund
Сообщений: 371
Блог
orawish
gpu
orawish

а про непакетированные процедуры без параметров (именно процедуры - функции в *аргументах таки будут представлены тем, что возвращают) к вышесказанному хочу добавить имхо - не надо их создавать никогда. Для этого нет оснований. Один гемр.

Создавать или не создавать вопрос скорее философский, может регулироваться гайдлаином, и вопрос (не)создания не всегда в наших руках. У нас таки да запрещено создавать функции или процедуры вне пакета.
Обнаружил я ето случайно, в процессе тестирования своего кода который использует ALL_ARGUMENTS.

Но меня интересует именно то, на что уважаемый SY отписал>
>Don't ask me why, but yes<

В доке по ALL_ARGUMENTS данный нюанс специально не оговоривается. Ну нет у нас здесь сложных типов , опять же ето процедура, а не функция и т.д.

а что оговаривать? у непакетированных процедур (без параметров) таки нет параметров.


Так же как и у пакетированных процедур (без параметров).А запись есть.
25 авг 10, 13:50    [9322372]     Ответить | Цитировать Сообщить модератору
 Re: ALL_ARGUMENTS аргументы просто процедуры и процедуры пакета  [new]
ы!
Guest
gpu


Так же как и у пакетированных процедур (без параметров).А запись есть.

Может с перегрузкой связано?...
25 авг 10, 13:55    [9322419]     Ответить | Цитировать Сообщить модератору
 Re: ALL_ARGUMENTS аргументы просто процедуры и процедуры пакета  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
ы!
gpu


Так же как и у пакетированных процедур (без параметров).А запись есть.

Может с перегрузкой связано?...

это можно интерпретировать так, что процедура есть ~аргумент пакета.
хотя, вполне вероятно, что авторы просто сабж. просявкали поначалу, а потом
решили так и оставить
25 авг 10, 14:41    [9322986]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить