首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从oracle过程调用java的ClassNotFoundException

从oracle过程调用java的ClassNotFoundException
EN

Stack Overflow用户
提问于 2012-08-05 04:25:30
回答 2查看 742关注 0票数 1

这是我的先知procedure

代码语言:javascript
复制
FUNCTION JavaHefExtract_runSingle (
    p_company_cd        varchar2,
    p_srcConnString     varchar2,
    p_destConnString    varchar2,
    p_mode              number,
    p_period            number
    ) return varchar2
IS
LANGUAGE JAVA
NAME 'HefExtract.DoIt(java.lang.String, java.lang.String, java.lang.String, int, int ) return java.lang.String';

这是我的java function

代码语言:javascript
复制
import com.microsoft.sqlserver.jdbc.*;
import java.math.BigInteger;
import java.sql.*;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Enumeration;
import oracle.jdbc.*;
import java.io.*;

public class HefExtract
{

 public static String DoIt(String orgName, String oracleConnstring, String sqlConnstring, int typ, int iPeriod )
    {
        String errMsg = null;
        Connection sqlConn;
        Connection oracleConn;
        try
        {
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            Class.forName("oracle.jdbc.OracleDriver");
            if (oracleConnstring != null)
                oracleConn = DriverManager.getConnection(oracleConnstring);
            else
                oracleConn = new OracleDriver().defaultConnection();
            sqlConn = DriverManager.getConnection(sqlConnstring);
        } catch (Throwable e1) {
            CharArrayWriter byteSink = new CharArrayWriter();
            e1.printStackTrace(new PrintWriter(byteSink));
            return byteSink.toString();
        }
        return errMsg;
}
}

当我在procedure块中调用oracle PL/SQL时,将返回此错误:

java.lang.ClassNotFoundException: com/microsoft/sqlserver/jdbc/SQLServerDriver at java.lang.Class.forName0(原生方法) at java.lang.Class.forName(Class.java) at HefExtract.DoIt(HEFEXTRACT:415)

这个错误背后的原因可能是什么?

EN

回答 2

Stack Overflow用户

发布于 2012-08-05 08:11:38

据我所知,在您的情况下没有必要使用驱动程序。只需删除与Microsoft驱动程序相关的所有内容,即删除以下行:

代码语言:javascript
复制
import com.microsoft.sqlserver.jdbc.*;

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
票数 1
EN

Stack Overflow用户

发布于 2012-08-05 05:26:59

阅读这篇关于如何设置类路径的Wiki文章,其中有很多例子。(爪哇)

如果使用Eclipse,请选择项目->属性->项目构建路径-> Java定位jar文件并选择它

如果使用netbeans,请选择项目->属性、->库、->编译、定位jar并选择jar

帖子还可帮助解决您的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11813958

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档