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

Как да намалим дублирането на код, причинено от подниз и инстринг?

Предлагам да използвате REGEXP_SUBSTR което е чудесна функция за постигане на очакваните резултати:

SELECT
    l.DBKEY,
    l.DBTIME,
    REGEXP_SUBSTR(l.DBUSER, '[^$]+$')                 AS USERID,
    REGEXP_SUBSTR(l.DESCRIPTION, '[0-9]{4}')          AS ERROR_NUM,
    REPLACE(REGEXP_SUBSTR(l.DESCRIPTION, 'Planogram:[^\]+\\n'), '\n', '')
                                                      AS DESCRIPTION,
    REGEXP_SUBSTR(l.DESCRIPTION, '\d+$')              AS SEVERITY
FROM
    EVENT_LOG l;

Създадох и тествах SQLFiddle . За повече информация относно REGEXP_SUBSTR може да искате да прочетете Oracle Docs .



  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. Извикване на shell скрипт от PL/SQL, но shell се изпълнява като потребител на мрежата, а не като oracle

  3. Незабавно изпълнение в рамките на Oracle Procedure

  4. Проблеми на WSO2 с Oracle RDS Amazon интеграция

  5. Изпратете имейл с помощта на PLSQL