2015-09-03 2 views
-3
create or replace function sum(a in number , b in number) 
return number as ans number; begin ans:=a+b; return ans; end;/ 

begin dbms_output.put_line('Ans is '||sum(10,20)) end;/ 

что случилось в коде выше, пожалуйста, помогитеоракул функция SQL

+3

«Сумма», вероятно, зарезервированное слово. –

+0

SUM зарезервированное слово в SQL-92, но не в более поздних версиях стандарта ANSI SQL. – jarlh

+0

В самой функции нет ничего плохого. – Rene

ответ

0

Вы должны указать схему, как с этими примерами:

create or replace function sum(a in number , b in number) 
return number as ans number; begin ans:=a+b; return ans; end;/ 

select ('Ans is '||sum(10,20)) from dual; 

возвращает ошибку, однако

select ('Ans is '||sum(10+20)) from dual; 

Возвращает: АНС 30

select ('Ans is '||sh.sum(10,20)) from dual; 

Возвращает: АНС 30

create or replace function suma(a in number , b in number) 
return number as ans number; begin ans:=a+b; return ans; end;/ 

select ('Ans is '||suma(10,20)) from dual; 

Возврат: Анс 30

+0

спасибо, я получил его – Parvez

0

Функция правильно создан, но потому, что сумма уже функция в базе данных, что функция вызывается в тестовом коде вместо функции вы только что создали ,

Вы можете вызвать функцию, но вы также должны указать схему.

begin 
    dbms_output.put_line('Ans is ' || my_schema.sum(10, 20)); 
end; 

Замените my_schema в приведенном выше коде именем пользователя, под которым вы скомпилировали эту функцию.

+0

спасибо, я получил – Parvez