不要用long 用varchar吧,
用JSP存入的都是String类型的

解决方案 »

  1.   

    varchar实在太小,我要放的内容非常多。
      

  2.   

    varchar的上限是4000字符,如果想存入更多的内容,试试CLOB吧,不过CLOB的存取方式比varchar复杂。
      

  3.   

    CLOB多大,如何存取?谢谢!
    能考段代码上来吗?
      

  4.   

    http://club.21php.com/archive/index.php/t-1456.html
    看一下这个,希望能对你有所帮助
      

  5.   

    现在ORACLE已经不提倡用LONG字段了,而是用大对象类型(LOB),分为(CLOB、BLOB、BFILE)类型,如果你是存的文本,就用CLOB,以下为在oracle里的存取
    示例:
    一、建表
    create table mylob(num number,vlob clob);--这时vlob为大字段类型变量,一个字段可以 存4G
    二、插入值
    insert into mylob values(1,'fsajfowregsajgisajfksdajkfjsdajoifjsafnndsalkf');
    insert into mylob values(2,'fxczjvoijwmtjdfjnkkfksajfsakjfjsdajflkjsafjks');
    三、存取
    declare
      loc clob;
      num number;
      offset number;
      v_out varchar2(10);
    begin
      num:=7;
      offset:=3;
      select vlob into loc from mylob where num=2;
      dbms_lob.read(loc,num,offset,v_out);--大字段/结束字符/开始字符/输出字符串
      dbms_output.put_line('The out put is : '||v_out);
      

  6.   

    liwenlong(小心) 你好。数据库中已经定义为clob 但是insert时就出错?
    录入语句如下:String sql="insert into news(id,title,body)values(id.nextval,'"+title+"','"+body+"')";
    PreparedStatement stm=con.prepareStatement(sql); 
    stm.executeUpdate();body是word中的一张表(一页纸)错误如下。如大侠能解决,原送100分
    java.sql.SQLException: ORA-01704: string literal too long at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
    at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
    at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:579)
    at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1894)
    at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1094)
    at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2132)
    at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:2015)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2877)
    at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:608)
    at jsp_servlet._news.__savenew._jspService(__savenew.java:282)
    at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)
    at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1053)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:387)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:305)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6310)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
    at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3622)
    at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2569)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
      

  7.   

    你用的是PrepareStatement啊,可以将insert值输为?号,再用settring(1,"")改变这样好些
      

  8.   

    clob的插入好像稍微有些不同,而且上次我使用查匹配值段的时候容易出问题。
      

  9.   

    to: xuyang821225(CSDN账号) ( ) 信誉:100 
    用settring(1,"")改变这样好些   还是报错,只不过错误变了变成如下:错误
    java.sql.SQLException: pn'咜d{媱'<: 82415
    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
    at oracle.jdbc.ttc7.TTCItem.setArrayData(TTCItem.java:147)
    at oracle.jdbc.dbaccess.DBDataSetImpl.setBytesBindItem(DBDataSetImpl.java:2460)
    at oracle.jdbc.driver.OraclePreparedStatement.setItem(OraclePreparedStatement.java:1190)
    at oracle.jdbc.driver.OraclePreparedStatement.setString(OraclePreparedStatement.java:1610)
    at jsp_servlet._news.__savenew._jspService(__savenew.java:283)
    at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)
    at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1053)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:387)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:305)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6310)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
    at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3622)
    at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2569)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)