我有一个独特的问题。我想在列中保存一个十进制值。该列仅将十进制指针视为“,”而不是“。”因此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 - “缺少表达”'
无论如何都要修复此错误?因为我希望它能够在所有系统中顺利运行..
答案 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 = '.,';