4

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

我曾尝试使用 DBA_SOURCE、DBA_PROCEDURES、ALL_DEPENDENCIES,但我没有看到任何显示属于指定存储过程的参数的东西。

有任何想法吗?

4

3 回答 3

2

我相信我收到的两个回复都是正确的,但我最终找到了一个不同的查询,这正是我正在寻找的:

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

到目前为止,这一直对我有用,并且还提取了我想要的所有 OracleParameter 信息。

于 2015-11-04T16:13:58.323 回答
1

DBA/ALL/USER_ARGUMENTS您可以在视图中找到参数元数据。

于 2015-10-27T16:43:41.093 回答
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
于 2015-10-27T17:32:04.820 回答