国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

java通過JDBC訪問Oracle的2個異常

2019-11-18 14:37:31
字體:
來源:轉載
供稿:網友

1.  連接非常慢, 連接成功后執行select操作出現異常:

   Exception in thread "main" java.sql.SQLException: ORA-00600: 內部錯誤代碼,參數: [ttcgcshnd-1], [0], [], [], [], [], [], [] 

   解決: 使用Oracle安裝目錄下的jdbc/lib/classes12.jar后正常.



2. 使用PReparedStatement的setString(i, s)時出現:

可以參考帖子:http://community.csdn.net/EXPert/topic/3936/3936672.xml?temp=.2879145

 java.sql.SQLException: 數據大小超出此類型的最大值: 3000

后面那個值大小不定,  感覺與s大小有關

表結構

create table test(

name char(32),

addr   varchar(3000)                       //varchar2也一樣

)

解決辦法: 采用setCharacterStream





import java.sql.*;import java.io.*;import java.util.*;

/** * oracle測試 * @author kingfish * @version 1.0 */public class TestOra {  public static void testORACLE() {    String url = "jdbc:oracle:thin:@localhost:1521:oradb";    String username = "system";    String passWord = "manager";

    Connection conn = null;    try {      Class.forName("oracle.jdbc.driver.OracleDriver");      conn = DriverManager.getConnection(url, username, password);    }    catch (Exception e) {      e.printStackTrace();      return;    }

    char[] carray = new char[1000];    Arrays.fill(carray, '我');    String s = new String(carray);    try {      PreparedStatement pst = conn.prepareStatement(          "insert into test(name,addr) values(?,?)");      pst.setString(1, "kingfish");

      pst.setCharacterStream(2,                             new InputStreamReader(new ByteArrayInputStream(s.          getBytes())), s.length());

      //pst.setString(2,s);  //用此句則異常      pst.execute();

      Statement st = conn.createStatement();      ResultSet r = st.executeQuery("SELECT * from test");

      while (r.next()) {        s = r.getString(2);        System.out.println("len=" + s.length());        System.out.println("value=" + s);      }

      r.close();      st.close();      conn.close();    }    catch (Exception e) {      e.printStackTrace();    }  }

  /**   * 測試   * @param args String[]   */  public static void main(String[] args) {    testORACLE();  }}





說明: 引起此問題的原因估計和OraclePreparedStatement中的setString的實現有關.



kingfish

2005.4.14

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 静乐县| 潞城市| 德阳市| 汕尾市| 拜城县| 炎陵县| 分宜县| 修文县| 云浮市| 稻城县| 准格尔旗| 额尔古纳市| 信阳市| 南澳县| 平度市| 那坡县| 安义县| 库车县| 白沙| 宁德市| 志丹县| 天镇县| 普陀区| 桑植县| 朔州市| 文安县| 辛集市| 文水县| 巴里| 赤城县| 桦南县| 邢台市| 利津县| 和硕县| 常山县| 炉霍县| 本溪| 咸阳市| 梅州市| 清远市| 阿坝县|