Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

Oracle 11g - कैरिज रिटर्न लाइन फीड के साथ CLOB में रिकॉर्ड खोजें

खराब डेटा का मामला निकला। मेरे टेस्ट डीबी में डेटा दूषित था और सीआरएलएफ के बजाय केवल एलएफ था।

गीगो :-)

आपकी सभी मदद के लिए धन्यवाद

ओह और वैसे मेरे कोड उदाहरण में मैं समान फ़ंक्शन के बजाय INSTR फ़ंक्शन के साथ गया था। यदि उपयोगकर्ता ने टेक्स्ट में % दर्ज किया है तो उसके माध्यम से खोजने के लिए इस तरह के कथन को गड़बड़ कर दिया हो सकता है। (उन्हें फ़िल्टर नहीं कर सकता क्योंकि % मेरे डेटा में एक मान्य वर्ण हो सकता है)

यहाँ अंतिम कोड है:

PROCEDURE FindReplaceResponsibilities (
iOldResponsibilities    IN  JP_JOB_FAMILIES.RESPONSIBILITIES%TYPE,
iNewResponsibilities    IN  JP_JOB_FAMILIES.RESPONSIBILITIES%TYPE,
oNumRowsUpdated         OUT INTEGER

)आईएस

BEGINoNumRowsUpdated :=0;

    SAVEPOINT sp_jf_findrepresp;

    -- If there is no old text to search for then, 
    -- append the new text to the end of every row.
    -- Else replace all occurrences of the old text with the new text
    IF iOldResponsibilities IS NULL THEN
      UPDATE JP_JOB_FAMILIES
        SET RESPONSIBILITIES = RESPONSIBILITIES || iNewResponsibilities;

      oNumRowsUpdated := SQL%ROWCOUNT;

    ELSE
      UPDATE JP_JOB_FAMILIES
        SET RESPONSIBILITIES = REPLACE(RESPONSIBILITIES, iOldResponsibilities, iNewResponsibilities)
      WHERE dbms_lob.instr(RESPONSIBILITIES, iOldResponsibilities) > 0; 

      oNumRowsUpdated := SQL%ROWCOUNT;

    END IF;

    RETURN;

    EXCEPTION

        WHEN OTHERS THEN
            BEGIN
                oNumRowsUpdated := -1;
                ROLLBACK TO sp_jf_findrepresp;
                dbms_output.put_line('error: ' || sqlerrm);
                RETURN;
            END;

END FindReplaceResponsibility;

मेरे आवेदन का कोड ठीक था:

public int FindReplaceJobFamilyResponsibilities(String oldResponsibilities, String newResponsibilities, IDbTransaction transaction = null)
{
    using (IDbCommand cmd = this._dataHelper.GetStoredProcedure(_connectionString,
        "JP_JOBFAM_PKG.FindReplaceResponsibilities", true))
    {
        _dataHelper.SetParameterValue(cmd, "iOldResponsibilities", oldResponsibilities);
        _dataHelper.SetParameterValue(cmd, "iNewResponsibilities", newResponsibilities);
        DataHelperBase.VerifyParameters(cmd.Parameters, false);
        base.SetExecuteConnection(cmd, transaction);
        _dataHelper.ExecuteNonQuery(cmd);

        return Convert.ToInt32(_dataHelper.GetParameterValue(cmd, "oNumRowsUpdated"));
    }
}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. किसी भिन्न तालिका से यादृच्छिक अद्वितीय मानों का उपयोग करके कॉलम अपडेट करें

  2. Oracle सप्ताह गणना मुद्दा

  3. SQL 'AND' या 'OR' पहले आता है?

  4. क्या सामान्यीकृत तालिकाओं का उपयोग करना वाकई बेहतर है?

  5. Oracle में उच्चतम मूल्य के साथ रिकॉर्ड कैसे प्रदर्शित करें?