Чтобы проверить функцию 'test2' ниже, я пробовал вот так.
SELECT test2('A') FROM DUAL;SELECT test2('C') FROM DUAL;SELECT test2('E') FROM DUAL;
Но есть ли удобный способ сделать это сразу? (без создания другого стола)
Я думаю, запрос может выглядеть так
ВЫБЕРИТЕ test2 (p.c1) ОТ (....) p?
Таблица и функция, как показано ниже
CREATE TABLE T2 (
C1 VARCHAR2(1),
C2 NUMBER
);
INSERT INTO T2 VALUES ('A',1);
INSERT INTO T2 VALUES ('B',4);
INSERT INTO T2 VALUES ('C',3);
INSERT INTO T2 VALUES ('D',2);
INSERT INTO T2 VALUES ('E',4);
CREATE OR REPLACE FUNCTION test2
(p1 IN VARCHAR2)
RETURN NUMBER AS V_VALUE NUMBER;
BEGIN
SELECT(
SELECT C2
FROM T2
WHERE C1=p1)
INTO V_VALUE
FROM DUAL;
RETURN V_VALUE;
END;
/