通常,当我插入4000个字符限制时,它的工作正常,但当超过4000个字符时,它抛出SQL异常字符串文字太长,即使我的DISCHARGE_TEXT数据类型是CLOB

我的JavaScript代码是

function saveAsDraftNew(){

var admissionNo = document.getElementById("apnNo").value;

if (admissionNo == "") {

alert("Please Insert Admission Number");

berak;

} else {

var idval = "";

var regNo = document.getElementById("regNo").innerHTML;

var editorValue = document.getElementById("editor").value;

//alert(editorValue.length);

alert(editorValue);

editorValuee = unescape(editorValue);

//alert(editorValuee.length);

//alert(editorValuee);

var referredTo = document.getElementById("otherAnswer").value = "";

var modeOfDischarge = document.getElementsByName('answer');

for ( var i = 0; i < modeOfDischarge.length; i++) {

if (modeOfDischarge[i].checked) {

var rate_value = modeOfDischarge[i].value;

$jf.ajax({

type: "POST",

url:"saveEditorValueAsTemplateIPDPatientInfo.do",

data:{

patientAdmissionNo:admissionNo,

editorValueM:editorValuee,

btnYesM:idval,

regNoM:regNo,

referredToM:referredTo,

rate_valueM:rate_value,

},

success : function(result) {

$jf("#btndiv").html(result);

},

});

}

}

}

}

我的行动类代码是

private String patientAdmissionNo = null;

Date date;

String regNoM;

String btnYesM = "";

String editorValueM = "";

String referredToM = "";

String rate_valueM;

public String saveEditorValueAsTemplate() {

String[] logInInfo = (String[]) ActionContext.getContext().getSession()

.get(sessionVariable.getUserLogInInfo());

String specialization_no = logInInfo[12];

int specializationInt = specialization_no == null

|| specialization_no.isEmpty() ? 0 : Integer

.parseInt(specialization_no);

String doctorEmpId = logInInfo[1].toString();

String companyNo = logInInfo[4].toString();

Long rowInserted = patientTreatmentOfDischargeSql

.addPatientDischargeValue(btnYesM, editorValueM,

patientAdmissionNo, regNoM, specializationInt,

doctorEmpId, companyNo, doctorEmpId, date, rate_valueM,

referredToM);

if (btnYesM.equals("0") || btnYesM.equals("1")) {

deschargeInfo.setBtnSave(false);

deschargeInfo.setBtnSaveAsDruft(false);

deschargeInfo.setBtnResumeOnDraft(false);

} else {

deschargeInfo.setBtnSave(false);

deschargeInfo.setBtnSaveAsDruft(false);

deschargeInfo.setBtnResumeOnDraft(true);

}

return "saveEditorValueAsTemplate";

}

我的SQL代码是

public Long addPatientDischargeValue(String CRITICAL_FLAG , String DISCHARGE_TEXT ,String ADMISSION_NO , String REG_NO ,Integer specialization_no,String ENTERED_BY, String COMPANY_NO, String UPDATE_BY, Date UPDATED_TIMESTAMP,String mode_of_discharge, String referred_to) {

Long rowInserted=(long) 0;

boolean fg = true;

con = dbc.connectDB();

if (con == null) {

fg = false;

}

if (fg) {

try {

st = con.createStatement();

String countQry = "SELECT COUNT(ADMISSION_NO) COUNT FROM IP_DISCHARGE WHERE ADMISSION_NO='"

+ ADMISSION_NO + "'";

int countNo= 0;

ResultSet rsCount=st.executeQuery(countQry);

if(rsCount.next()){

countNo = rsCount.getInt("COUNT");

}

String insertUpdate = null;

if (countNo > 0) {

insertUpdate="update ip_discharge set " +

" update_by ='"+UPDATE_BY+"', " +

" updated_timestamp = sysdate, " +

" critical_flag = '" + CRITICAL_FLAG + "' ," +

" discharge_text = '" + DISCHARGE_TEXT + "', " +

" mode_of_discharge = '" + mode_of_discharge + "', " +

" referred_to = '" + referred_to + "' " +

" where " +

" admission_no = '"+ ADMISSION_NO+ "'";

} else {

String PK_NO = generatedSequence("",

"SEQ_PATTYPEDTL", "D", "1", "Y");

insertUpdate = "INSERT INTO ip_discharge (DISCHARGE_ID,ADMISSION_NO , reg_no, DISCHARGE_TEXT , specialization_no , CRITICAL_FLAG , ENTERED_BY , COMPANY_NO, mode_of_discharge, referred_to "

+ ")values('"+ PK_NO+ "','"+ ADMISSION_NO+ "','"+ REG_NO+ "','" + DISCHARGE_TEXT + "'," + specialization_no + ",'" + CRITICAL_FLAG + "','" + ENTERED_BY + "','" + COMPANY_NO + "','" + mode_of_discharge + "','" + referred_to + "')";

}

System.out.println(insertUpdate);

st.executeUpdate(insertUpdate);

} catch (Exception ex) {

ex.printStackTrace();

} finally {

try {

st.close();

con.close();

} catch (SQLException ex) {

ex.printStackTrace();

}

}

}

return rowInserted;

}

我的表数据类型是

CREATE TABLE IP_DISCHARGE

(

DISCHARGE_ID VARCHAR2(16 BYTE),

ADMISSION_NO VARCHAR2(16 BYTE) NOT NULL,

ENTERED_BY VARCHAR2(16 BYTE),

ENTRY_TIMESTAMP DATE DEFAULT SYSDATE,

UPDATE_BY VARCHAR2(16 BYTE),

UPDATED_TIMESTAMP DATE,

COMPANY_NO VARCHAR2(10 BYTE),

DEPT_NO NUMBER,

CRITICAL_FLAG VARCHAR2(1 BYTE),

DISCHARGE_TEXT CLOB,

REG_NO VARCHAR2(22 BYTE),

MODE_OF_DISCHARGE VARCHAR2(22 BYTE),

REFERRED_TO VARCHAR2(22 BYTE),

SPECIALIZATION_NO NUMBER

)

java clob内存溢出_java - java.sql.SQLException:ORA-01704:字符串文字太长时插入或更新 - 堆栈内存溢出...相关推荐

  1. 【解决方案】Oracle插入/更新CLOB字段报ORA-01704:字符串文字太长

    [解决方案]Oracle插入/更新CLOB字段报ORA-01704:字符串文字太长 解决办法: 1.如果插入的SQL比较少,那么可以人工处理.方法是使用PLSQL Developer软件,命令为:se ...

  2. java repaint 没反应_java - 为什么repaint()在我的JPanel上不起作用? - 堆栈内存溢出...

    我制作了自己的JPanel子类,称为SubPatternPanel . 我想在框架中使用它来绘制网格,但是当我从框架中为SubPatternPanel调用repaint() ,它不起作用. 运行时,框 ...

  3. java光标位置无效_java - java.sql.SQLException:无效的光标位置 - 堆栈内存溢出

    我创建了一个简单的应用程序,使用户可以购买门票. 但是,每当我尝试购买" n"张门票时,都会遇到此错误. 现在,我知道在使用数据库进行操作时需要crs.next()语句,我已经使用 ...

  4. java 抛出空指针_java - Java ServerSocket抛出空指针异常 - 堆栈内存溢出

    我正在尝试通过Android中的Java套接字实现文件传输. 它工作正常,但当我关闭应用程序时,它崩溃,控制台显示nullPointerException. 我已经尝试了一切,但无法找到问题! 我已经 ...

  5. java drawstring 字体_java - 为什么字体大小为101的Graphics2D.drawString字母“o”坏了? - 堆栈内存溢出...

    我想在png中绘制字符串. 我需要高达600像素的字母. 因此我尝试使用Graphics2D.drawString: String text = "o"; graphics.set ...

  6. java调用MySQL脚本_Java调用SQL脚本执行常用的方法示例

    前言 大家都知道,在Java中调用SQL脚本的方式有多种,在这里只记录一种自己常用的方式,个人觉得挺实用方便的. 运用ScriptRunner这个类. ScriptRunner类用于执行SQL语句,例 ...

  7. java web 来源页_Java:Java Web--分页效果

    先来看一看分页的实现原理 万能公式.jpg 项目目录.PNG 首先,新建Java Web项目 一. 梳理业务逻辑 重定向到URL(跳转到StudentViewAction页面)//index.jsp页 ...

  8. java word标签替换_JAVA实现替换WORD模板中的文字和图片

    1.本来有其他方法可以实现的,但是由于jar包一直有问题所以换了种,要是还有其他的更好的方法,希望可以讨论 2.废话不说直接上代码: 3.我自己加了个生成图片的方法,也可以不需要直接用已经存在的图片替 ...

  9. java 文件转十六进制_JAVA将文件转成十六进制字符串和十六进制字符串生成文件的方法...

    以下代码以APK文件为例,其他格式的文件方法一样,代码如下: package com.evideostb.billsystem.module.update; import java.io.*; /** ...

最新文章

  1. vista——最恰当的中文译名应该是“喂死它”
  2. 简单配置snmpd.conf
  3. matlab中一组数取百分位数_GRE数学难题-正态分布+百分位数
  4. 通过Java字节码发现有趣的内幕之String篇(上)(转)
  5. Spring Cloud Alibaba - 17 Nacos Config 配置中心 应用篇
  6. 与虫子尾交3d动画网站_不容错过的三维动画设计展!快来pick吧!
  7. 没想到单位的bt下载的速度可以到这么快,满意了
  8. android系统相机自动录像,android 调用系统相机录像并保存
  9. unity, undo
  10. 百度网盘直接解析高速下载文件源码
  11. oracle到pg不停机增量迁移,研究 Oracle 到 PostgreSQL 的数据迁移 – 以 pgloader 为例 – Phy 的博客...
  12. 《Excel数据处理与分析实战技巧精粹》扫描版[PDF]
  13. boost库asio错误码
  14. Linux进程管理命令之accton/lastcomm
  15. css grid布局中的minmax()函数的使用
  16. PoE视频监控解决方案
  17. 对搜索引擎不友好的网站具有的特征
  18. pip安装pytorch 0.4.1
  19. Windows中安全弹出U盘的操作__2018.06.02
  20. python中列表嵌套字典/列表排序,字典排序,列表排序。

热门文章

  1. ATS和闰秒那些事儿
  2. vuex+vue-router拦截
  3. sql数据库系统表和mysql系统表
  4. sublime text 3 中改变.vue文件的颜色
  5. 20155204 2016-2017-2 《Java程序设计》第3周学习总结
  6. Linux进程与线程的区别 详细总结(面试经验总结)
  7. iframe自动调整高度能在IE5里实现吗
  8. X@X.X域名转向的实现
  9. Java飞行记录器 JRockit Flight Recorder JFR诊断JVM的历史性能和操作
  10. TCMalloc:线程缓存的Malloc