Oracle存储过程列表参数

Oracle存储过程列表参数,oracle,database-metadata,Oracle,Database Metadata,我正在开发一个与Oracle数据库交互的.NET前端。我已经知道了如何获取要执行的存储过程列表,但我不知道如何获取属于该存储过程的参数列表。我希望能够显示存储过程的所有输入和输出参数的列表 我尝试过使用DBA_源、DBA_过程和所有依赖项,但没有看到任何显示属于指定存储过程的参数的内容 有什么想法吗?您可以在DBA/ALL/USER\u ARGUMENTS视图中找到参数元数据。这是我们使用的查询,或多或少: SELECT * FROM ALL_ARGUMENTS WHERE DATA_

我正在开发一个与Oracle数据库交互的.NET前端。我已经知道了如何获取要执行的存储过程列表,但我不知道如何获取属于该存储过程的参数列表。我希望能够显示存储过程的所有输入和输出参数的列表

我尝试过使用DBA_源、DBA_过程和所有依赖项,但没有看到任何显示属于指定存储过程的参数的内容


有什么想法吗?

您可以在
DBA/ALL/USER\u ARGUMENTS
视图中找到参数元数据。

这是我们使用的查询,或多或少:

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

我相信我收到的两个回答都是正确的,但我最终发现了一个不同的问题,它给出了我想要的东西:

    SELECT 
         ARGUMENT_NAME, 
         PLS_TYPE, 
         DEFAULT_VALUE
    FROM 
         USER_ARGUMENTS
    WHERE
         OBJECT_NAME = '<my_stored_proc>'
选择
你的名字,
请输入,
默认值
从…起
用户参数
哪里
对象名称=“”

到目前为止,它一直在为我工作,并提取我想要的所有OracleParameter信息。

正如其他人所说,您可以在_ARGUMENTS视图中找到大部分元数据,需要注意的是,如果参数是pl/sql记录类型,或者将sys\u refcursor变量传递到存储过程中可能需要什么结构,则需要进行更多的挖掘。