у меня есть процедура
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-запроса, потому что мне нужно выполнить его с другого сервера через связанный сервер.
У меня нет разрешения на создание каких-либо других хранимых процедур, функций или таблиц в базе данных.