Я создал функцию PL/SQL, как этотКак изменить существующую функцию в оракула
CREATE Function conc(name IN varchar2)
RETURN varchar2 DETERMINISTIC
IS
fn varchar2(30);
BEGIN
SELECT concat(fname,lname) into fn
FROM tab1 where fname=name;
return fn;
End;
/
Он получил успешно создан без каких-либо ошибок компиляции. Теперь я попытался изменившие выше существующей функции с помощью замены
CREATE OR REPLACE Function conc(name IN varchar2)
RETURN varchar2 DETERMINISTIC
IS
fn varchar2(30);
BEGIN
SELECT concat(lname,fname) into fn
FROM tab1 where fname=name;
return fn;
End;
/
Здесь функция создана с ошибками компиляции.
Может кто-нибудь предположить, почему это происходит, и что является лучшим способом изменить существующее определение функции pl/sql.
Используйте 'show errors', чтобы увидеть найденные проблемы, или запросите представление' user_errors'. –
вы также можете получить интерактивную обратную связь, показывающую ошибки компиляции, если вы используете нашу среду IDE, Oracle SQL Developer – thatjeffsmith
И не имеет прямого значения, но: [«Не указывать DETERMINISTIC для функции, результат которой зависит от состояния переменных сеанса или объектов схемы» ] (http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/function.htm#CJAFICJJ). –