将 varchar2 参数从 Select 语句传递给 plsql 过程

Pet*_*r17 5 sql oracle toad plsql

在Oracle Toad中执行以下语句

exec plsql_procedure(select 'somestring' from dual);
Run Code Online (Sandbox Code Playgroud)

抛出以下异常:

ORA-06550:第 1 行,第 33 列:PLS-00103:在预期以下情况之一时遇到符号“SELECT”:

( ) - + case mod new 不为空

过程采用一个 VARCHAR2 参数。如何修复?

Dav*_*dge 3

除非您使用 select from Dual 只是其他示例,否则请忽略该选择。

exec plsql_procedure('somestring');
Run Code Online (Sandbox Code Playgroud)

否则,选择一个变量并将其传递给过程。

declare
  my_var table_name.column_name%Type;
begin

  select column_name
  into   my_var
  from   table_name
  where  ...;

  plsql_procedure(parameter_name => my_var);

end;
/
Run Code Online (Sandbox Code Playgroud)