java - 无法找出 JDBC ClassNotFoundException(JTDS 驱动程序)

标签 java sql sql-server oracle jtds

关于我的问题的一些背景知识:我正在尝试从 Oracle 数据库复制 Microsoft SQL 系统上的表。除了提供对表的密码和用户访问权限之外,我无法对 MSSQL 数据库进行编辑或执行任何操作。

我成功使用 Oracle SQL Developer 连接并查看我想要的表(使用第三方 JDBC 驱动程序),但我想设置自动复制到我的 Oracle 数据库中,因此我尝试使用相同的一些存储的java代码中的驱动程序。

我有一个java函数,它应该做的就是计算表中的条目数。到目前为止我的代码如下所示:

public static String getCount() {
Statement stmt = null;
Connection conn = null;
int rowCount = 0;
String message = "";
try {
  Class.forName("net.sourceforge.jtds.jdbc.Driver");
}
catch(ClassNotFoundException e) {
  System.err.println("Error loading driver: " + e);
  message = message + e + " -ER1 \n";
}
try {
  conn = DriverManager.getConnection("jdbc:jtds:sqlserver://site.school.edu:2000/ACCESS", "user", "password");
  stmt = conn.createStatement();
  String strSelect = "select 1 as field;";
  ResultSet rset = stmt.executeQuery(strSelect);
  while (rset.next()) {
   ++rowCount;
 }
}
catch(SQLException ex) {
  ex.printStackTrace();
  message = message + ex.getSQLState() + " -ER2";
}
finally {
  try {
    if (stmt != null) stmt.close(); 
    if (conn != null) conn.close();
  } catch(SQLException ex) {
    ex.printStackTrace();
    message = message + ex.getSQLState() + "-ER3";
  }
}
return message;
}

正在从存储的函数调用:

CREATE OR REPLACE function Schema.java_testMessage return varchar2
as language java 
name 'ConnectAndQuery.getCount() return java.lang.String';

我从 TOAD 中的脚本调用:

set serveroutput on;

declare
 words varchar2(400);
 begin
   words := KSL_ADMIN.java_testMessage;
   dbms_output.put_line(words);
 end;

但是结果是我得到:

 java.lang.ClassNotFoundException: net/sourceforge/jtds/jdbc/Driver -ER1 
 08001 -ER2
 PL/SQL procedure successfully completed.

我在类路径中有 jar 文件,我想不出任何理由它不应该具有查看 jar 的必要权限,并且据我所知,我的所有内容都拼写正确。

请帮我找出我做错了什么。或者是否有一种更简单的方法可以将 Oracle DB 连接到 MSSQL DB,而无需真正安装任何东西。欢迎任何有关这方面的知识,因为我对很多方面都很陌生。

最佳答案

Oracle有自己的内部java虚拟机,并且不使用系统类路径。如果您需要外部库,则必须将它们“加载”到内部 JVM 中。您可以使用 Oracle 的 loadjava 工具来完成此操作。

请参阅 Oracle 的 loadjava 文档 ( http://docs.oracle.com/cd/B28359_01/java.111/b31225/cheleven.htm#JJDEV10060 )

关于java - 无法找出 JDBC ClassNotFoundException(JTDS 驱动程序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21147506/

相关文章:

java - 如何使用 XML 配置和 JaxWsProxyFactoryBean 增加 Apache CXF 超时?

java - 在java的静态上下文中是否有任何替代方法

c# - SQL Server 验证返回错误的输出

java - 从java中的tsv文件读取

php - 一次按多个条件进行分组

mysql - 创建 VIEW 但更改所选列的数据类型

java - 是否可以使用 jOOQ 生成的记录类进行更新插入?

sql-server - 为什么 Case 语句在这种情况下返回 1 作为输出?

sql-server - SSMS 中查询编辑器菜单中不同颜色的条意味着什么?

Java Swing 调整 BorderLayout.CENTER 大小