Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何将大小为N的数字转换为字符串-oracle_Sql_Oracle - Fatal编程技术网

Sql 如何将大小为N的数字转换为字符串-oracle

Sql 如何将大小为N的数字转换为字符串-oracle,sql,oracle,Sql,Oracle,下面的查询给出了正确的格式 select to_char(999.00,'9,99.00') from dual output = 9,99.00 如果我没有具体的号码怎么办 999999999999999999999999999999999.00 应转换为 9999999999999999999999999999999,99.00 有可能做到吗? 有什么格式吗 在格式化字符串中使用FM前缀。它将根据转换结果修剪前导空格: select ''''||to_char(12

下面的查询给出了正确的格式

select  to_char(999.00,'9,99.00') from dual

output = 9,99.00  
如果我没有具体的号码怎么办

999999999999999999999999999999999.00   
应转换为

9999999999999999999999999999999,99.00   
有可能做到吗?

有什么格式吗

在格式化字符串中使用
FM
前缀。它将根据转换结果修剪前导空格:

select ''''||to_char(123456.00, 'FM999999999999999999,99.00')||''''
     , ''''||to_char(123456.00,   '999999999999999999,99.00')||''''
  from dual
     ;
产生

'1234,56.00'                
'               1234,56.00'
注意
必须指定与格式匹配的最短表示形式中要转换的最大数字的位数。把一个复杂的短语变成一个简单的例子,
to_char(123456.00,'FM9,99.00')
是行不通的。

我知道我们必须给出所有99999999999的方法。但是有没有更好的办法?我不知道我的数字的长度。Iirc,oracle数字最多可能有38位(尾数),所以在你的模式中使用38
9
s,这样你就安全了。