Я пытаюсь вернуть 2 значения из функции в PL/SQL. Первое значение, которое я хочу, чтобы это была зарплата парня, которого я должен искать. Во-вторых, я хочу, чтобы это количество строк, затронутых этим. Я искал google некоторое время, и я узнал, что должен сначала создать тип, чтобы я мог вернуть данные. Однако я получаю сообщение об ошибке:Функция Возвращение нескольких значений SQL
Error(9,1): PL/SQL: SQL Statement ignored
Error(9,36): PL/SQL: ORA-00936: missing expression
Код, который у меня есть:
CREATE OR REPLACE TYPE return_type AS OBJECT(val1 NUMBER,val2 NUMBER);
CREATE OR REPLACE FUNCTION f2
(v_nume employees.last_name%TYPE DEFAULT 'Bell')
RETURN return_type IS
out_var return_type;
salariu employees.salary%type;
BEGIN
SELECT salary INTO salariu
FROM employees
WHERE last_name = v_nume;
INSERT INTO out_var values(salariu,@@ROWCOUNT);
RETURN out_var;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RAISE_APPLICATION_ERROR(-20000, 'Nu exista angajati cu numele dat');
WHEN TOO_MANY_ROWS THEN
RAISE_APPLICATION_ERROR(-20001, 'Exista mai multi angajati cu numele dat');
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR(-20002,'Alta eroare!');
END f2;
/
Заменить также 'INSERT INTO out_var значений (Заработная, @@ ROWCOUNT); 'с операторами присваивания' out_var.val1: = salariu; out_var.val1: = 1; ', вы не можете вставлять значения в объект, в случае pl/sql – mikron
я вижу: P спасибо mikron –