PL/SQL показывает ошибка компиляции. Функция работает правильно и успешно скомпилирована, но если запущен pl/sql-запрос, то показывается компиляция.PlSQL отображение ошибка компиляции
CREATE OR REPLACE FUNCTION f(
num IN NUMBER,
num2 IN NUMBER,
ans OUT NUMBER
) RETURN number IS
BEGIN
ans := num + num2;
RETURN ans;
END;
CREATE table add1(val1 number(2),val2 number(1),ans number(3));
SET SERVEROUTPUT ON ;
DECLARE
a1 add1.val1%TYPE;
b1 add1.val2%TYPE;
sum add1.ans%TYPE;
BEGIN
WHILE a1!=-99
LOOP
a1 := &a1;
b1 := &b1;
sum := f(a1, b1, sum);
INSERT INTO add1 VALUES(a1, b1, c1);
END LOOP;
END;
Я заменил c1 в запросе вставки с суммой, но все же ошибка компиляции ,,, – ngLover
'PL/SQL показывает ошибку компиляции'. Где ошибка (код, сообщение)? На самом деле существует много ошибок: 1) вы пытаетесь использовать переменную 'c1', но вы ее не объявили; 2) 'sum' является зарезервированным словом PL/SQL. Таким образом, вы либо изменяете (рекомендуете) имя переменной, либо заключите 'sum' в двойные кавычки (никогда не делайте этого). Боковое примечание. Старайтесь не записывать функции, возвращающие более одного значения вызывающей стороне посредством комбинации оператора 'return' и одного или нескольких параметров' out'. –
Спасибо @NicholasKrasnov, я получил вашу точку. Теперь его работа,. ,, :) – ngLover