Oracle
 sql >> база данни >  >> RDS >> Oracle

Невалиден номер на Oracle в клауза

Промяна в отговора на phonetic_man, която ще позволи NULL елементи в списъка. Форматът на регулярен израз на '[^,]+' за синтактичен анализ на разделени списъци не обработва NULL списъчни елементи и ще върне неправилна стойност, ако такава съществува и по този начин използването му трябва да се избягва. Променете оригинала, като изтриете числото 2 например и вижте резултатите. Ще получите '3' в позицията на втория елемент! Ето начин, който обработва NULL и връща правилната стойност за елемента:

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;

Вижте тук за повече информация и доказателство:https://stackoverflow.com/a/31464699/2543416



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle:Мога ли да разбера програмно дали дадена процедура съдържа ангажимент?

  2. Създаване на CSV файл на Loop | PLSQL Oracle SQL разработчик

  3. Оптимизиране на оракул заявка

  4. Как да преброим последователните дубликати в таблица?

  5. Странно поведение на команда LENGTH - ORACLE