VARCHAR2をNUMBERに変換する際、桁数で怒られるときに桁数を無視するfunction
create or replace
FUNCTION TO_NUMBER2 (
InputString IN VARCHAR2 , /* 変換元文字列 */
DefaultValue IN NUMBER := NULL , /* 非数値時の値 */
FromatString IN VARCHAR2 := NULL /* 数値書式 */
) RETURN NUMBER
AUTHID CURRENT_USER DETERMINISTIC PARALLEL_ENABLE
IS
BEGIN
RETURN(
CASE WHEN REPLACE( TRANSLATE( InputString, '123456789',
'000000000'), '0', '') IS NULL
THEN CASE WHEN FromatString IS NULL
THEN TO_NUMBER(InputString)
ELSE TO_NUMBER(InputString, FromatString) END
ELSE DefaultValue END
);
END;
|
Oracleでテキストインデックスを使用す
Oracleのテクニックを記
VARCHAR2をNUMBERに変換する際、桁数で怒られるときに桁数を無視するfunction
SQLのテクニックを記
|