sql >> Database teknologi >  >> RDS >> Oracle

Oracle 11g - Find poster i en CLOB med Carriage Return Line Feed

Det viser sig at være et tilfælde af dårlige data. Dataene i min test-DB var beskadiget og havde kun LF'er i stedet for CRLF'er.

GIGO :-)

Tak for al din hjælp

Åh og forresten I mit kodeeksempel gik jeg med INSTR-funktionen i stedet for den lignende funktion. Hvis brugeren indtastede en % i teksten for at søge igennem, kunne det have forvirret lignende-sætningen. (Kan ikke filtrere dem fra, fordi % kan være et gyldigt tegn i mine data)

Her er den endelige kode:

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

)IS

BEGINoNumRowsUpdated :=0;

SAVEPOINT sp_jf_findrepresp; -- Hvis der ikke er nogen gammel tekst at søge efter, -- tilføjer den nye tekst til slutningen af ​​hver række. -- Ellers erstat alle forekomster af den gamle tekst med den nye tekst HVIS iOldResponsibilities ER NULL SÅ OPDATERE JP_JOB_FAMILIES SÆT ANSVAR =ANSVAR || iNewAnsvar; oNumRowsUpdated :=SQL%ROWCOUNT; ELSE UPDATE JP_JOB_FAMILIES SET ANSVAR =REPLACE(RESPONSIBILITIES, iOldResponsibilities, iNewResponsibilities) WHERE dbms_lob.instr(RESPONSIBILITIES, iOldResponsibilities)> 0; oNumRowsUpdated :=SQL%ROWCOUNT; AFSLUT HVIS; VEND TILBAGE; UNDTAGELSE NÅR ANDRE SÅ BEGYNDER påNumRowsUpdated :=-1; TILBAGE TIL sp_jf_findrepresp; dbms_output.put_line('fejl:' || sqlerrm); VEND TILBAGE; END;

AFSLUT FindReplaceResponsibilities;

Koden fra min applikation var fin:

public int FindReplaceJobFamilyResponsibilities(String oldResponsibilities, String newResponsibilities, IDbTransaction transaction =null){ ved hjælp af (IDbCommand cmd =this._dataHelper.GetStoredProcedure(_connectionString, "JP_JOBFAM_Replacer.PKGspond.cmd.cmd) , "iOldResponsibilities", oldResponsibilities); _dataHelper.SetParameterValue(cmd, "iNewResponsibilities", newResponsibilities); DataHelperBase.VerifyParameters(cmd.Parameters, false); base.SetExecuteConnection(cmd, transaktion); _dataHelper.ExecuteNonQuery(cmd); return Convert.ToInt32(_dataHelper.GetParameterValue(cmd, "oNumRowsUpdated")); }} 



  1. Spring JdbcTemplate opdatering Postgis geografi kolonne

  2. ORA - 00933 forveksling med indre sammenføjning og som

  3. Hvad er en forespørgselsudligger, og hvordan rettes den

  4. oci8, php7 og Oracle 10.1 kompatibilitet