【问题标题】:Stored Procedure With Named Parameters And Cursor具有命名参数和光标的存储过程
【发布时间】:2016-12-02 05:39:00
【问题描述】:

我正在阅读命名参数。我其实有两个问题:

如果使用命名参数语法:p_rank => 5,我可以只传递我需要的。假设程序接受 5 个参数,但是对于这个调用,我只想传递 1 个参数。

我可以:exec procedure_name(p_rank => 5) 而不用担心其他 4 个吗?

现在,我如何使用以 REF CURSOR 作为输出的命名参数?

exec customer_package.retrieve_data (
  p_rank             => 5,
  p_value_score      => p_value,
  p_momentum_score   => p_momentum,
  p_growth_score     => p_growth,
  p_data             => p_output);

p_data 实际上是一个 REF CURSOR.......所以,如果使用 SQL Plus 中的位置参数调用,我可以将变量定义为 REF_CURSOR 并打印它。但是这是在一个存储过程中完成的,调用另一个存储过程,也就是返回一个REF CURSOR.......

【问题讨论】:

  • 是的,命名参数的整个想法是允许您只提供您需要的参数,只要不需要其他参数。

标签: sql oracle plsql procedure


【解决方案1】:

要以exec procedure_name(p_rank => 5) 调用proc,您应该使用DEFAULT 值定义其他参数。如果你有像 p_data 这样的OUT 参数,你应该把它传递给你的 proc。

【讨论】:

    猜你喜欢
    • 2016-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多