sql >> データベース >  >> RDS >> Oracle

デフォルト以外のNLS_NUMERIC_CHARACTERSを使用してOraclePL/ SQLでテキストを数値に効率的に変換するにはどうすればよいですか?

    以下が機能するはずです:

    SELECT to_number(:x, 
                     translate(:x, '012345678-+', '999999999SS'), 
                     'nls_numeric_characters=''.,''') 
      FROM dual;
    

    正しい2番目の引数999.999999を作成します 効率的なtranslate したがって、事前に何桁あるかを知る必要はありません。サポートされているすべてのOracle数値形式で機能します(10.2.0.3では明らかに最大62桁の有効数字)。

    興味深いことに、非常に大きな文字列がある場合は、単純なto_number(:x) この方法は失敗しますが、機能します。

    編集:sOliverのおかげで負の数をサポートします。



    1. mysqli ::mysqli():(HY000 / 2002):ソケット「MySQL」を介してローカルMySQLサーバーに接続できません(2)

    2. データベーステーブルのtable_nameからcount(1)を選択するとはどういう意味ですか?

    3. MySQLで現在の日付と時刻を取得する方法

    4. mysqliを使用したデータの挿入