जैसा कि मैंने पहले ही आपके अन्य प्रश्न में उल्लेख किया है। :मेरे अनुभव में getClob() और setClob() ठीक से काम नहीं करते हैं।
setCharacterStream()
का उपयोग करें इसके बजाय:
StringReader clob = new StringReader("");
pStmt = conn.prepareStatement("update activity set REFERENCE = ? WHERE ID = ?");
pStmt.setCharacterStream(1, clob, 0);
pStmt.setLong(2, 1);
pStmt.executeUpdate();
इस तरह आप अपडेट करने से पहले अनावश्यक SELECT को भी हटा सकते हैं, जिससे प्रदर्शन में भी सुधार होगा।
एक अन्य विकल्प बस उस कॉलम को NULL
. पर सेट करना होगा
संपादित करें:
नए ड्राइवरों (11.x) के साथ आप setString()
. का उपयोग करने का प्रयास भी कर सकते हैं और getString()
CLOB कॉलम पर।
पंक्ति को लॉक करना केवल तभी आवश्यक होना चाहिए जब आप एक LOB लोकेटर का उपयोग करते हैं जिसे आप एक लेन-देन के दौरान रखना चाहते हैं जो एक से अधिक कथनों को फैलाता है (कम से कम यह मैनुअल के लिंक किए गए संदर्भ की मेरी समझ है)।