SQL> declare
2 lv_test number;
3 function fn_test return number
4 is
5 begin
6 return 1;
7 end fn_test;
8 begin
9 select fn_test into lv_test from dual;
10 dbms_output.put_line(lv_test);
11 end;
12 /
declare
lv_test number;
function fn_test return number
is
begin
return 1;
end fn_test;
begin
select fn_test into lv_test from dual;
dbms_output.put_line(lv_test);
end;
ORA-06550: line 10, column 8:
PLS-00231: function 'FN_TEST' may not be used in SQL
ORA-06550: line 10, column 8:
PL/SQL: ORA-00904: "FN_TEST": invalid identifier
ORA-06550: line 10, column 1:
PL/SQL: SQL Statement ignored
SQL>
SQL> declare
2 lv_test number;
3 function fn_test return number
4 is
5 begin
6 return 1;
7 end fn_test;
8 begin
9 lv_test :=fn_test;
10 dbms_output.put_line(lv_test);
11 end;
12 /
1
PL/SQL procedure successfully completed
SQL>