2015-10-27 2 views
4

Я разрабатываю интерфейс .NET, который взаимодействует с базой данных Oracle. Я выяснил, как получить список хранимых процедур для выполнения, но я не знаю, как получить список параметров, относящихся к хранимой процедуре. Я хочу показать список всех параметров, которые являются входными и выходными параметрами хранимой процедуры.Параметры списка хранимых процедур Oracle

Я попытался использовать DBA_SOURCE, DBA_PROCEDURES, ALL_DEPENDENCIES, но я не видел ничего, что показывает параметры, относящиеся к указанной хранимой процедуре.

Любые идеи?

+0

Как уже говорили другие, вы можете найти большинство метаданных в представлениях _ARGUMENTS, с оговоркой, что у вас есть больше возможностей для копания, если этот параметр является типом записи pl/sql или какую структуру можно ожидать от Переменная sys_refcursor передается в хранимую процедуру. –

ответ

1

Я считаю, что обе реакции, которые я получил правильно, но я в конечном итоге найти другой запрос, который дает мне именно то, что я ищу для:

SELECT 
     ARGUMENT_NAME 
     , PLS_TYPE 
     , DEFAULT_VALUE 
    FROM 
     USER_ARGUMENTS 
    WHERE 
     OBJECT_NAME = '<my_stored_proc>' 

Это работает для меня до сих пор и тянет всю информацию OracleParameter, что я хочу, как хорошо.

1

Вы находите метаданные параметров в виде DBA/ALL/USER_ARGUMENTS.

1

Это запрос, который мы используем, более или менее:

SELECT * 
FROM 
    ALL_ARGUMENTS 
WHERE 
    DATA_TYPE IS NOT NULL 

    -- This check removes package procedure arguments that don't really 
    -- seem to mean anything 
AND 
    DATA_LEVEL = 0 

    -- Use this predicate to remove entries for the return value of functions 
AND 
    POSITION > 0 
ORDER BY 
    OWNER, 
    PACKAGE_NAME, 
    OBJECT_NAME, 
    OBJECT_ID, 
    OVERLOAD, 
    POSITION