Недействительный идентификатор и оператор возврата не могут содержать выражение в PL / SQL - PullRequest
0 голосов
/ 27 мая 2020

Я пытаюсь создать функцию в PL / SQL, но получаю ошибку неверного идентификатора

(для имени пользователя VARCHAR2) и

«В процедуре оператор RETURN не может содержать выражение "ошибка.

Я пробовал решать аналогичные вопросы о недопустимом идентификаторе и ошибке возврата состояния, но ни один из них не помог мне.

Я не смог исправить проблему. Идк, в чем причина появления ошибки.

Я использую oracle 19 c с oracle sql разработчиком

Вы можете мне помочь? Заранее благодарим

Мой код функции создания:

CREATE OR REPLACE FUNCTION bring_product
(
username VARCHAR2
)
RETURN pr%ROWTYPE
AS
product_tbl pr%rowtype;
BEGIN

 SELECT *  INTO product_table FROM PRODUCT pr WHERE pr.kulusername = username ;

 RETURN product_tbl ;

END;

1 Ответ

1 голос
/ 27 мая 2020

Вы не можете использовать table alias для объявления переменной %rowtype attribute-style

, но the table name. Итак, конвертируем в следующий:

SQL> CREATE OR REPLACE FUNCTION bring_product(username VARCHAR2)
        RETURN product%rowtype AS
   product_tbl product%rowtype;
BEGIN
  SELECT *
    INTO product_tbl
    FROM product pr
   WHERE pr.kulusername = username;

  RETURN product_tbl;
END;
/
...