PLS-00231 private function is not in scope in 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  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>

 

请使用浏览器的分享功能分享到微信等