oracle sql to\带逗号的数字字符串值

wko9yo5t  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(381)

在insert中,我传递了一个类似“9.9”的值。如何将其插入“数字(4,2)”之类的数字列中?
我试着用数字('9.9','9g999d99'),但在表中它就像'99',我需要它是9.9

pobjuy32

pobjuy321#

如果你传递一个数字,你将插入一个数字。否则,请使用 TO_CHAR 具有适当的格式掩码(和 TO_NUMBER 明确告知甲骨文你在做什么)。

SQL> create table test (val number(4, 2));

Table created.

SQL> insert into test (val) values (1.1);

1 row created.

SQL> insert into test (val) values (to_number(to_char('2,2', '99D99')));

1 row created.

SQL> insert into test (val) values
  2    (to_number(to_char('3,3', '99D99', 'nls_numeric_characters=,.')));

1 row created.

SQL> select * From test order by val;

       VAL
----------
       1,1
       2,2
       3,3

如果我以错误的方式使用它,则会出现错误:

SQL> insert into test (val) values
  2    (to_number(to_char('4,4', '99D99', 'nls_numeric_characters=.,')));
  (to_number(to_char('4,4', '99D99', 'nls_numeric_characters=.,')))
                     *
ERROR at line 2:
ORA-01722: invalid number

SQL>

在克罗地亚,我们有一个小数点逗号,而不是点;切换到小数点:

SQL> alter session set nls_numeric_characters = '.,';

Session altered.

SQL> select * From test order by val;

       VAL
----------
       1.1
       2.2
       3.3

SQL>

相关问题