0
votes

Pls aidez-moi avec cette requête Oracle SQL

Je dois écrire une requête Oracle SQL où je dois vérifier que la longueur de la chaîne est de 64 ou non si c'est 64 dans cette chaîne. 'Lst021_23-fehlerdatenprotokoll.aendienSt2019.06.11_08.48.42.tx' Ensuite, l'extension de la chaîne doit être txt et nous devons supprimer la partie de la chaîne jusqu'à - aussi

​​donc pour la chaîne de
'lst021_23-fehlerdatenprotokoll.aendienSt2019.06.11_08.48.42.tx' La sortie sera xxx

J'essaie d'écrire cette requête xxx


0 commentaires

3 Réponses :


0
votes

Vous avez une question de syntaxe dans le script. Essayez de cette façon xxx


0 commentaires

0
votes

Préférez écrire votre chaîne une seule fois: xxx

Démo


0 commentaires

0
votes

Et ça? Si la longueur est 64, alors:

  • Prenez une sous-chaîne à partir du premier trait d'union ( - code>) à la fin de la chaîne li>
  • Appliquer regexp_replace substitue et remplace le dernier "mot" ( \ w + $ code>) avec txt code> (comme indiqué que l'extension doit être TXT CODE>) LI> ul>

    ici nous allons: P>

    SQL> with test (id, col) as
      2    (select 1, 'Lst021_23-Fehler-Datenprotokoll.AenDienst.2019.06.11_08.48.42.tx' from dual
      3     union all
      4     select 2, 'blabla-Something-else.Which_is_64_characters_long.2019.06.12.txt' from dual
      5     union all
      6     select 3, 'This will not be "fixed" as it is shorter than 64 chars.exe'      from dual
      7     union all
      8     select 4, 'Yet another nice string-Kein_Fehler.Mitwoch.2019.06.13_22.22.com' from dual
      9     )
     10  select
     11    id,
     12    case when length(col) = 64 then
     13              regexp_replace(substr(col, instr(col, '-') + 1), '\w+$', 'txt')
     14         else col
     15    end result
     16  from test;
    
     ID RESULT
    --- -----------------------------------------------------------------
      1 Fehler-Datenprotokoll.AenDienst.2019.06.11_08.48.42.txt
      2 Something-else.Which_is_64_characters_long.2019.06.12.txt
      3 This will not be "fixed" as it is shorter than 64 chars.exe
      4 Kein_Fehler.Mitwoch.2019.06.13_22.22.txt
    
    SQL>
    


0 commentaires