小数点误差德国表示

时间:2017-04-27 12:51:58

标签: sql oracle

enter image description here我有一个独特的问题。我想在列中保存一个十进制值。该列仅将十进制指针视为“,”而不是“。”因此0,85是可接受的值,但0.85不是..

在执行时插入0,85作为十进制:

select case 
    when (11>=(5 * ,85))and(11<=(5*1,15)) 
    then 'Green'  else 'CHECK_FAILED' 
end from dual;

它没有说'ORA-00936:缺少表达式00936. 00000 - “缺少表达”'

无论如何都要修复此错误?因为我希望它能够在所有系统中顺利运行..

2 个答案:

答案 0 :(得分:0)

在德语中,您不能省略小数值前面的0。您还使用了句点而不是逗号。所以&#34; .85&#34;应该是&#34; 0,85&#34;和&#34; 1.15&#34;应该是&#34; 1,15&#34;

答案 1 :(得分:0)

当我更改NLS会话参数以匹配数据库参数时,它工作正常。 它没有工作,因为'NLS会话参数'具有与'NLS数据库参数'不同的十进制表示。

alter session set NLS_NUMERIC_CHARACTERS = '.,';