close

      Oracle在寫入語法中有設定文字語法限制2000字內,

所以如果有大量的文字內容需要(Insert into 或 Update)用一般寫法會顯示文字太長,

所以改採下列語法(setCharacterStream)寫入:

備註:
1.經測試開LONG型態可塞入5萬字,沒有繼續往上測試。
2.語法長度限制再ORACLE上有這問題,SQL SERVER 沒有這種問題,其他就沒測試過了。

--------------------------------------------------------------------------------------------

<%@ page import="java.io.*" %>  // StringReader 套件

<%
PreparedStatement dbc = null; //宣告
%>

<!----------以下為INSERT INTO 語法------------->
<%
sql01 = "INSERT INTO TEST (A , B , C , D , E , F , G , H , I , J , K)";
sql01 += "VALUES ( ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? )";

dbc = conn01.prepareStatement(sql01);
dbc.setString(1,ST_S01);  // SET 型態 (SQL語法裡"?"的順序,值)
dbc.setString(2,ST_S02);
dbc.setInt(3,Integer.parseInt(ST_S15));
dbc.setString(4,ST_S03);
dbc.setString(5,ST_S04);
dbc.setString(6,ST_S05);
dbc.setString(7,ST_S06);
dbc.setString(8,ST_S07);
dbc.setString(9,ST_S08);
dbc.setCharacterStream(10,new StringReader(ST_S09), ST_S09.length());
dbc.setString(11,ST_S10);
dbc.executeUpdate();//執行SQL
%>


<!----------以下為UPDATE語法------------->
<%
SQL01 = "UPDATE BOARD  SET B = ?, C = ?, D = ?, E = ?, F = ?, G = ?, H = ?, I = ?, J = ?, K = ? WHERE A = '" + ST_S01 + "' AND B = '" + ST_S02_O + "' AND C = " + ST_S15_O + "";dbc = CONN01.prepareStatement(SQL01);


//dbc.setString(1,ST_S01);
dbc.setString(1,ST_S02);// SET 型態 (SQL語法裡"?"的順序,值)
dbc.setInt(2,Integer.parseInt(ST_S15));
dbc.setString(3,ST_S03);
dbc.setString(4,ST_S04);
dbc.setString(5,ST_S05);
dbc.setString(6,ST_S06);
dbc.setString(7,ST_S07);
dbc.setString(8,ST_S08);
dbc.setCharacterStream(9,new StringReader(ST_S09), ST_S09.length());
dbc.setString(10,ST_S10);
dbc.executeUpdate();//執行SQL
%>

--------------------------------------------------------------------------------------------

arrow
arrow
    全站熱搜

    傳說中的小瞇 發表在 痞客邦 留言(0) 人氣()