Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Bagaimana menemukan topeng tertentu dalam sebuah string - Oracle?

Kedengarannya seperti masalah model data (menyimpan tanggal dalam string).

Namun, karena itu terjadi dan terkadang kita tidak dapat mengontrol atau mengubah sesuatu, saya biasanya menyimpan fungsi seperti ini:

CREATE OR REPLACE FUNCTION safe_to_date (p_string        IN VARCHAR2,
                                         p_format_mask   IN VARCHAR2,
                                         p_error_date    IN DATE DEFAULT NULL)
  RETURN DATE
  DETERMINISTIC IS
  x_date   DATE;
BEGIN
  BEGIN
    x_date   := TO_DATE (p_string, p_format_mask);
    RETURN x_date;                                                        -- Only gets here if conversion was successful
  EXCEPTION
    WHEN OTHERS THEN
      RETURN p_error_date;
  END;
END safe_to_date;

Kemudian gunakan seperti ini:

WITH d AS
       (SELECT 'X' string_field FROM DUAL
        UNION ALL
        SELECT '11/15/2012' FROM DUAL
        UNION ALL
        SELECT '155' FROM DUAL)
SELECT safe_to_date (d.string_field, 'MM/DD/YYYY')
FROM   d;


  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 ORA-00979 - bukan ekspresi GROUP BY

  2. Bagaimana saya bisa menerjemahkan ID ID FileNet di DB2/Oracle menjadi GUID yang ramah?

  3. Database vs tablespace, apa bedanya?

  4. SQLPlus mencoba menjatuhkan paket dua kali

  5. Pertarungan Urutan RAC