【发布时间】:2018-02-04 14:08:23
【问题描述】:
【问题讨论】:
-
也许一个字符列被转换为一个数字,但它不代表一个有效的数字。当然,这只是猜测。
-
我没有发现任何类似的错误:(如果你能弄清楚,请检查示例数据
标签: sql oracle linked-server openquery
【问题讨论】:
标签: sql oracle linked-server openquery
千位和小数点分隔符设置为多少?通过运行以下语句来检查它们:
SQL> select * From v$nls_parameters
2 where parameter = 'NLS_NUMERIC_CHARACTERS';
PARAMETER VALUE
------------------------------ ----------
NLS_NUMERIC_CHARACTERS ,.
它说 - 在我的数据库中 - 逗号是十进制字符,而点是千位分隔符。例如:
SQL> select 5/2 result from dual;
RESULT
----------
2,5
因此,如果您的源数据包含与您的设置不同的分隔符,则可能会导致错误。在 Oracle 中,您可以将其修复为
SQL> alter session set nls_numeric_characters = '.,';
Session altered.
SQL> select 5/2 result from dual;
RESULT
----------
2.5
不过,您发布的消息不是标准的 Oracle ORA-xxxxx 错误消息,因此您可能需要在“那个”端(即不在 Oracle 端)修复它。
【讨论】: