2017-07-29 70 views
0

此处程序是使用OCI驱动程序创建表,但它显示以下错误。Oracle TYPE 2 JDBC创建表错误

Error Message

import java.sql.*; 
public class CreateTable{ 
public static void main(String[] args)throws Exception{ 
Connection con; 
Statement ps; 
String query; 
Class.forName("oracle.jdbc.driver.OracleDriver"); 
con=DriverManager.getConnection("jdbc:oracle:oci8:orcl","scott","tiger"); 
query="CREATE TABLE Employee (roll number(3))"; 
ps=con.createStatement(); 
ps.executeUpdate(query); 
System.out.println("Table created"); 
ps.close(); 
con.close(); 
} 
} 
+1

你实际上并没有连接到任何东西(按你的错误),你几乎肯定需要设置你的[本地命名参数](https://docs.oracle.com/cd/B28359_01/network.111/b28317/ tnsnames.htm#NETRF007)('tnsnames.ora')。 **为什么**您使用的是Type 2驱动程序? Oracle Type 4驱动程序速度更快...如果您仍然拥有scott/tiger - 禁用它们! –

+0

请将异常堆栈跟踪作为文本发布,而不是屏幕截图。 –

回答

-1

试试这个:

try (
Connection conn = DriverManager.getConnection(
    "jdbc:oracle:oci8:orcl","scott","tiger"); // MySQL 
     Statement ps = conn.createStatement(); 
     { 
     String query="CREATE TABLE Employee (roll number(3))"; 
     ps=con.createStatement(); 
     ps.executeUpdate(query); 
      System.out.println("Table created"); 
     System.out.println("Table created"); 
     } 
     } catch(SQLException ex) { 
     ex.printStackTrace(); 
     } 
ps.close(); 
con.close(); 
} 
} 

这是更好地使用Type 4连接性,因为他们的Java驱动程序是 “直接到数据库”。

+0

请添加您对原始代码更改内容的描述,以及原因。您所介绍的更改都与问题无关。 –