IT備忘録

LINUX関連 .NET関連 DB関連 正規表現 その他 情報

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のテクニックを記
[IT備忘録]のサイト内にある文章の正確性については一切責任を持ちません。
実開発の際には、技術的内容は十分確認した上で作業してください。

(C) 2010 IT備忘録 All rights reserved.