sql >> Databáze >  >> RDS >> Oracle

Oracle neplatné číslo v klauzuli

Změna odpovědi phonetic_man, která umožní prvky NULL v seznamu. Formát regulárního výrazu '[^,]+' pro analýzu seznamů s oddělovači nezpracovává prvky seznamu NULL a vrátí nesprávnou hodnotu, pokud taková existuje, a proto je třeba se jeho použití vyhnout. Změňte originál odstraněním například čísla 2 a podívejte se na výsledky. Dostanete '3' na pozici 2. prvku! Zde je způsob, který zpracovává hodnotu NULL a vrací správnou hodnotu prvku:

SELECT TRIM(REGEXP_SUBSTR(str, '(.*?)(,|$)', 1, LEVEL, NULL, 1)) str
    FROM ( SELECT '1,,3,4' str FROM dual )
    connect by level <= regexp_count(str, ',') + 1;

Další informace a důkaz naleznete zde:https://stackoverflow.com/a/31464699/2543416



  1. Kde je soubor MySQL 5.7 my.cnf?

  2. jedinečné porušení indexu během aktualizace

  3. Activerecord:Vytrhněte konkrétní sloupce a počty asociací

  4. Hibernate, MySQL a tabulka s názvem Repeat – podivné chování