Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.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
在Oracle中转换和比较字段数据类型_Oracle - Fatal编程技术网

在Oracle中转换和比较字段数据类型

在Oracle中转换和比较字段数据类型,oracle,Oracle,我有一个名为Contract_Value的Varchar2字段,其值如下所示 Contract_Value --------------- USD 300,000 EUR 120,215.65 AUD 237,176.39 JPY 31,284.32 SELECT COUNT(*), VALUE FROM (SELECT CASE WHEN REGEXP_REPLACE(A.CONTRACT_VALUE, '[^.0-9]') > 100 THEN 'P

我有一个名为Contract_Value的Varchar2字段,其值如下所示

Contract_Value
---------------
USD 300,000
EUR 120,215.65
AUD 237,176.39
JPY 31,284.32
 SELECT COUNT(*), VALUE FROM
 (SELECT CASE WHEN REGEXP_REPLACE(A.CONTRACT_VALUE, '[^.0-9]') > 100 
              THEN 'P' ELSE 'F' END AS VALUE FROM DOCUMENTS A) 
 GROUP BY VALUE; 
现在我需要对仪表板应用程序的此字段进行验证,如下所示

Contract_Value
---------------
USD 300,000
EUR 120,215.65
AUD 237,176.39
JPY 31,284.32
 SELECT COUNT(*), VALUE FROM
 (SELECT CASE WHEN REGEXP_REPLACE(A.CONTRACT_VALUE, '[^.0-9]') > 100 
              THEN 'P' ELSE 'F' END AS VALUE FROM DOCUMENTS A) 
 GROUP BY VALUE; 
但是它抛出了一个错误,这个无效的数字 原因如下:如上所述,合同值字段为VARCHAR2,我的验证号为>100


我尝试使用CAST和to_NUMBER关键字将数据类型从VARCHAR2更改为NUMBER,但仍然没有成功。

修复架构,不要将值与货币存储在一个字符串中。那太可怕了。为值设置一个
number
列,为货币设置一个
varchar2
,或者更好地使用指向货币表的外键。对于给定的示例数据,它工作正常。数据库中必须有损坏的数据。类似于两点等。数据库中的
NLS\u数字\u字符中的值是多少?