Что я делаю не так при получении URL [закрыто]

Процедура не может быть выполнена с помощью оператора select, вы можете использовать функцию, если вы хотите выполнить ее с помощью оператора select.

Если вы хотите выполнить процедуру с использованием оператора select, то один из подходов - это обернуть вашу процедуру с помощью функция и функция вызова с использованием оператора select.

CREATE OR REPLACE PROCEDURE pr (o_param OUT DATE)
IS
    v_date  DATE;
BEGIN
    SELECT  SYSDATE
      INTO  v_date
      FROM  DUAL;

    o_param := v_date;
END pr;

Теперь завершите процедуру с помощью функции

CREATE OR REPLACE FUNCTION my_funct
    RETURN DATE
AS
    o_param  DATE;
BEGIN
    pr (o_param);

    RETURN o_param;
EXCEPTION
    WHEN NO_DATA_FOUND
    THEN
        DBMS_OUTPUT.put_line (
        DBMS_UTILITY.format_error_backtrace || ' ' || SQLERRM
    );
                -- raise exception 
    WHEN OTHERS
    THEN
        DBMS_OUTPUT.put_line (
        DBMS_UTILITY.format_error_backtrace || ' ' || SQLERRM
    );
                -- raise exception  
END my_funct;
/

И вызовите функцию с помощью оператора select

SELECT my_funct  FROM DUAL
0
задан user2428118 28 September 2012 в 10:34
поделиться