2017-07-29 71 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

請添加您對原始代碼更改內容的描述,以及原因。您所介紹的更改都與問題無關。 –