造成这个问题的原因是因为我是在SQL语句里面调用这个PL/SQL函数的,因为SQL语句和PL/SQL函数是通过不同的engine(SQL engine 和 PL/SQL engine) 来解析执行的,因此在SQL语句中执行的FUNCTION必须是public的,这样SQL engine才能访问的。 解决这个问题的方法要么就是将function 公有化,即放在package specification中,或者...
编译时提示这个错误,搜了下,原来是因为如果该函数没有在包头定义的话,sql语句是见不到该函数的,因此如果想在sql级别使用这个函数,只能在包头上定义该函数,即只能作为公有的暴露出来了,否则只能采用plsql的方式即 xxxx := function; 具体可以参考 http://asktom.oracle.com/pls/asktom/f?p=100:11:0:::P11_...