带有命名参数和光标的存储过程

时间:2016-07-28 02:10:10

标签: sql oracle plsql procedure

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

如果使用命名参数语法: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 .......

1 个答案:

答案 0 :(得分:1)

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