Oracle 12c中的轉換功能增強
Oracle Database 12c Release 2(12.2)包括對資料型別轉換函式的許多增強,從而更容易處理轉換錯誤。
建立測試表及初始化資料
本文中的示例所用的表:
CREATE TABLE t1 (
data VARCHAR2(20)
);
INSERT INTO t1 VALUES ('11111');
INSERT INTO t1 VALUES ('01-JAN-2016');
INSERT INTO t1 VALUES ('AAAAA');
COMMIT;
CAST 和 TO_* 轉換函式
在以前的資料庫版本中,資料型別轉換期間失敗將導致錯誤。
SELECT TO_NUMBER(data) FROM t1;
ERROR:
ORA-01722: invalid number
no rows selected
SQL>
在Oracle資料庫12.2中,CAST函式和幾個TO_*函式已修改為包括錯誤處理功能,允許它們在發生轉換錯誤時返回預設值。
SELECT TO_NUMBER(data DEFAULT -1 ON CONVERSION ERROR)
FROM t1;
*
TO_NUMBER(DATADEFAULT-1ONCONVERSIONERROR)
----------------------------------------
11111
-1
-1
SQL>
SELECT TO_DATE(data DEFAULT '01-JAN-2000' ON CONVERSION ERROR, 'DD-MON-YYYY' )
FROM t1;
TO_DATE(D
---------
01-JAN-00
01-JAN-16
01-JAN-00
SQL>
SELECT CAST(data AS TIMESTAMP DEFAULT NULL ON CONVERSION ERROR, 'DD-MON-YYYY')
FROM t1;
CAST(DATAASTIMESTAMPDEFAULTNULLONCONVERSIONERROR,'DD-MON-YYYY')
-----------------------------------------------------------------
01-JAN-16 12.00.00.000000000 AM
SQL>
VALIDATE_CONVERSION 函式
VALIDATE_CONVERSION函式用於測試轉換是否成功,從而可以排除在操作期間導致問題的資料。 如果轉換成功,則函式返回值“1”,如果轉換失敗,則返回“0”。
SELECT data FROM t1 WHERE VALIDATE_CONVERSION(data AS NUMBER) = 1;
DATA
--------------------
11111
SQL>
SELECT data FROM t1
WHERE VALIDATE_CONVERSION(data AS DATE, 'DD-MON-YYYY') = 1;
DATA
--------------------
01-JAN-2016
SQL>
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29337971/viewspace-2130195/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 12c中增強的PL/SQL功能OracleSQL
- ORACLE 12C RMAN 功能增強Oracle
- Oracle 12C R2-新特性-轉換函式的增強Oracle函式
- Oracle 12c新特性 - Active Data Guard功能增強Oracle
- Oracle 12c新特性 - Data Pump (expdp/impdp) 功能增強Oracle
- Oracle12c功能增強 新特性之管理功能的增強Oracle
- RMAN 在 Oracle 12c 的增強功能 (文件 ID 2017199.1)Oracle
- [20130803]ORACLE 12C RMAN 功能增強.txtOracle
- Oracle 12c nocdb轉換成cdbOracle
- Oracle12c中功能及效能新特點之with子句的增強Oracle
- Oracle Database 19c 中的 JSON_OBJECT 函式的增強功能OracleDatabaseJSONObject函式
- Mybatis 中如何優雅的增強日誌功能?MyBatis
- Oracle 12c no-CDB轉換為CDBOracle
- Oracle11新特性——分割槽功能增強Oracle
- One Switch for Mac 一鍵切換功能軟體【增強】Mac
- .NET Framework 新功能和增強的功能Framework
- Windows 2000 瀏覽器功能的增強(轉)Windows瀏覽器
- Ubuntu在Vbox中安裝增強功能Ubuntu
- JavaScript中的強制型別轉換JavaScript型別
- Oracle11gr2 AUDIT清除功能增強(三)Oracle
- Oracle11gr2 AUDIT清除功能增強(四)Oracle
- Oracle11gr2 AUDIT清除功能增強(二)Oracle
- Oracle11gr2 AUDIT清除功能增強(一)Oracle
- Oracle11新特性——分割槽功能增強(五)Oracle
- Oracle11新特性——分割槽功能增強(四)Oracle
- Oracle11新特性——分割槽功能增強(三)Oracle
- Oracle11新特性——分割槽功能增強(二)Oracle
- Oracle11新特性——分割槽功能增強(一)Oracle
- Oracle12c 中RAC功能增強新特性之ASM&GridOracleASM
- Oracle 10g中對resumable session的增強Oracle 10gSession
- openGauss DSS功能增強
- JS在if中的強制型別轉換JS型別
- Oracle11新特性——備份恢復功能增強Oracle
- Oracle11g新特性——LOB型別功能增強Oracle型別
- 在ORACLE中利用角色增強應用系統安全性(轉)Oracle
- 增強字串 (轉)字串
- Oracle中的進位制轉換Oracle
- Oracle12c中效能最佳化&功能增強新特性之臨時undoOracle