【问题标题】:Error converting data type varchar to float (SQL to oracle linked Server)将数据类型 varchar 转换为 float 时出错(SQL 到 oracle 链接服务器)
【发布时间】:2018-02-04 14:08:23
【问题描述】:

Sample Data to upload is here

相同的数据正在从另一台服务器成功上传。背后的原因可能是什么???

【问题讨论】:

  • 也许一个字符列被转换为一个数字,但它不代表一个有效的数字。当然,这只是猜测。
  • 我没有发现任何类似的错误:(如果你能弄清楚,请检查示例数据

标签: sql oracle linked-server openquery


【解决方案1】:

千位和小数点分隔符设置为多少?通过运行以下语句来检查它们:

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 端)修复它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多