oracle Number to char

本文介绍了一种将64位大数字插入数据库的方法,通过将数字转换为字符串再利用to_number函数进行存储。文章提供了具体的SQL示例,展示了如何正确地显示和查询这些大数值。

插入64位数字时可以将数字转化为字符串再用to_number('number')插入数据库

 

1.0000E+15只是数据的显示形式
数据库中真正存储的就是999999999999999.99
SQL> select to_char(num) from test_num;

TO_CHAR(NUM)
----------------------------------------
999999999999999.99
或者:
SQL> col num for 99999999999999999999.99
SQL> select num from test_num;

                         NUM
----------------------------
          999999999999999.99

### Oracle TO_CHAR 函数使用方法及示例 Oracle 数据库中的 `TO_CHAR` 函数用于将日期或数字转换为字符串格式。对于数字,可以通过指定格式模型来控制输出的显示方式。以下是关于 `TO_CHAR` 函数在处理数字时的具体用法和示例。 #### 1. 基本语法 `TO_CHAR` 函数的基本语法如下: ```sql TO_CHAR(number, 'format_model') ``` - **number**: 要转换的数字。 - **format_model**: 指定输出格式的模型,用于定义数字的显示方式。 #### 2. 常见格式化符 以下是一些常用的格式化符及其作用[^1]: - **9**: 表示一个数字字符,如果该位置没有数字则显示空格。 - **0**: 表示一个数字字符,如果该位置没有数字则显示为 0。 - **D**: 表示小数点(根据区域设置)。 - **FM**: 表示“填充模式”,去掉前导和尾随的空格或零。 #### 3. 示例代码 以下是一些具体的示例,展示如何使用 `TO_CHAR` 函数对数字进行格式化: ##### 示例 1: 基本格式化 ```sql SELECT TO_CHAR(12345.678, '99999.99') AS formatted_number FROM dual; -- 输出: " 12345.67" ``` 上述示例中,`99999.99` 表示最多五位整数部分和两位小数部分。由于整数部分不足五位,因此前面用空格填充[^2]。 ##### 示例 2: 使用 `FM` 去掉前导空格 ```sql SELECT TO_CHAR(12345.678, 'FM99999.99') AS formatted_number FROM dual; -- 输出: "12345.67" ``` 通过添加 `FM`,可以去掉前导空格。 ##### 示例 3: 小数点后补零 ```sql SELECT TO_CHAR(12345, '99999.00') AS formatted_number FROM dual; -- 输出: " 12345.00" ``` 如果数字本身没有小数部分,`TO_CHAR` 会自动补零以满足格式要求。 ##### 示例 4: 使用 `RTRIM` 去掉尾随的小数点 ```sql SELECT RTRIM(TO_CHAR(12345, 'FM99999.99'), '.') AS formatted_number FROM dual; -- 输出: "12345" ``` 此示例展示了如何结合 `RTRIM` 和 `FM` 来去掉不必要的小数点和尾随零[^2]。 ##### 示例 5: 处理小数值 ```sql SELECT TO_CHAR(0.35, 'FM99.99') AS formatted_number FROM dual; -- 输出: "0.35" ``` 对于小于 1 的小数,`FM` 可以确保去掉多余的前导零和空格。 #### 4. 注意事项 - 如果格式模型中的位数不足以表示实际数字,则会导致错误或截断。 - 格式模型中的小数点符号 (`D`) 会根据数据库的区域设置自动调整。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值