Мне нужно получить определения параметров процедуры PL/SQL.Получение схемы процедур PL/SQL
На MS SQL мы используем Information_schema.Parameters
; что является партнером (если есть) в Oracle?
Мне нужно получить определения параметров процедуры PL/SQL.Получение схемы процедур PL/SQL
На MS SQL мы используем Information_schema.Parameters
; что является партнером (если есть) в Oracle?
Большинство (если не все) тех же данных могут быть доступны в Oracle из таблицы словаря данных ALL_ARGUMENTS. ALL_ARGUMENTS
показывает аргументы для всех процедур, которые у вас есть для разрешения. USER_ARGUMENTS
показывает аргументы для всех ваших процедур. И DBA_ARGUMENTS
показывает аргументы для всех процедур, существующих в базе данных, но вам нужны дополнительные привилегии для доступа к представлениям DBA_*
.
Большая часть информации о хранимых параметров процедуры можно найти в ALL_ARGUMENTS и аналогично в USER_ARGUMENTS
и DBA_ARGUMENTS
Вот краткий пример использования USER_ARGUMENTS
CREATE OR REPLACE PROCEDURE my_proc
(p_number IN NUMBER,
p_varchar IN OUT VARCHAR2 ,
p_clob IN OUT NOCOPY CLOB,
p_timestamp OUT TIMESTAMP
)
IS
BEGIN
NULL;
END;
/
CREATE OR REPLACE FUNCTION my_func
(p_date IN DATE,
p_varchar IN VARCHAR2)
RETURN BOOLEAN
IS
BEGIN
return TRUE;
END;
/
SELECT package_name,object_name, argument_name, IN_OUT , pls_type ,position
FROM user_arguments
WHERE object_name IN ('MY_PROC','MY_FUNC')
ORDER BY package_name, object_name, position;
, который дает выход ..
Procedure created.
Function created.
PACKAGE_NAME OBJECT_NAME ARGUMENT_NAME IN_OUT PLS_TYPE POSITION
--------------------- ------------------------------ ------------------------- --------- -------------------- ----------
MY_FUNC OUT BOOLEAN 0
MY_FUNC P_DATE IN DATE 1
MY_FUNC P_VARCHAR IN VARCHAR2 2
MY_PROC P_NUMBER IN NUMBER 1
MY_PROC P_VARCHAR IN/OUT VARCHAR2 2
MY_PROC P_CLOB IN/OUT CLOB 3
MY_PROC P_TIMESTAMP OUT TIMESTAMP 4
7 rows selected.
Как вы можете видеть, у него есть самая полезная информация .. но не отображается подсказка NOCOPY. ARGUMENT_NAME, которое является нулевым, является «возвращаемым значением» функции
В версии ALL_ и DBA_ будет добавлен дополнительный столбец OWNER.
дополнительную информацию о самой хранимой процедуре можно найти в ALL_PROCEDURES, ALL_PLSQL_OBJECT_SETTINGS и ALL_OBJECTS в зависимости от того, какой уровень детализации вы ищете.