这些程序我是从网上复制过来的,如果我不改变他的connection连接代码在oracle sql/pl运行是正常的
我把  //  conn = DriverManager.getConnection("jdbc:default:connection:");这段代码改成
String DBDRIVER = "oracle.jdbc.driver.OracleDriver" ;
String DBURL = "jdbc:oracle:thin:@127.0.0.1:1521:MSDN" ;
String DBUSER = "SCOTT" ;
String DBPASSWORD = "TIGER" ;   conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;
        这样在oracle/pl就报一下错误
ORA-29532: Java 调用被未捕获的 Java 例外终止: java.lang.NullPointerException
但是java创建的方法我在myeclipse运行的时候是正确的。请各位大侠帮忙看一下是什么问题呢。
我为什么要用127.0.0.1因为我要在oracle里面写一个工具,这样我以后方便调用其他的IP的oracle服务器现在是本地127.0.0.1也许根据需求可能会改成192.168.1.102,这个我会用参数传过去的
create or replace and compile java source named test4 as 
import java.sql. * ;
import java. text .DateFormat;
import java. text .SimpleDateFormat;
import java.util. * ;
import java.util.Date;
import oracle.sql.ARRAY;
import oracle.sql.ArrayDescriptor;
public class Test4
{
   static public String   message(String name) {
        String sql = " select sysdate as dd from dual";
        String tmpStr = null ;
        PreparedStatement pstmt = null ;
        ResultSet rs = null ;
        Connection conn = null ;
String DBDRIVER = "oracle.jdbc.driver.OracleDriver" ;
String DBURL = "jdbc:oracle:thin:@127.0.0.1:1521:MSDN" ;
String DBUSER = "SCOTT" ;
String DBPASSWORD = "TIGER" ;

         try
         {
         Class.forName(DBDRIVER);
        conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;
            //  conn = DriverManager.getConnection("jdbc:default:connection:");
              pstmt = conn.prepareStatement(sql);
              rs = pstmt.executeQuery();
             
              if (rs. next ())
           tmpStr = rs.getString("dd");
         else 
           tmpStr = name;
          }
         catch(SQLException e)
         {
             System.err.println(e.getMessage());
         } catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
         finally
         {
             try
             {
                 rs. close ();
                 pstmt. close ();
                 /**/ /* if((conn!=null)||!conn.isClosed())
                     conn.close(); */ 
             }
             catch(SQLException e)
             {
                 System.err.println(e.getMessage());
             }
         }
        return tmpStr;
    }
 
}/ 
2 发布JAVA程序create or replace function test4 (name varchar2 ) return varchar2 
as language java name
' Test4.message(java.lang.String) return java.lang.String ' ;
/ 3 使用发面的JAVA程序select    test4( ' xx ' )   from    dual ;