我有一个过程
create or replace PROCEDURE proc
(
p1 IN varchar2,
p2 IN varchar2,
p3 OUT varchar2
) AS
BEGIN
p3:= p1 || ' ' || p2
END proc
我称其为
Declare
P3 varchar(50);
Begin
proc('foo', 'bar', P3)
END;
我可以使用以下方式打印出 P3 的值:
Dbms_Output.Put_line('P3: ' || P3)
但我需要将结果作为表格以便我可以从中选择。
我能想到的最好方法是:
Declare
P3 varchar(50);
Begin
proc('foo', 'bar', P3)
END;
SELECT &&P3 from dual;
但是这会给我一个错误
Error report -
ORA-06550: line 5, column 12:
PL/SQL: ORA-00936: missing expression
ORA-06550: line 5, column 5:
PL/SQL: SQL statement ignored
06550. 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilatiopn error.
*Action:
有没有一种方法可以将参数值作为列/行值进行选择?
我需要在单个SQL查询中完成所有操作,因为我需要通过链接服务器从另一台服务器执行它。
我没有权限在数据库上创建任何其他存储过程、函数或表。
select :result from dual;
,它会要求我输入result
的绑定变量,然后只选择我输入的值而不是过程返回的值。 - Tomas