【问题标题】:Query using Oracle Generic Connectivity returns blank-padded results使用 Oracle Generic Connectivity 查询返回空白填充结果
【发布时间】:2017-01-10 19:33:33
【问题描述】:

我正在从 Oracle 跨数据库链接到 SQL Server 2012 实例运行查询。所有结果都用空格填充到字段的最大长度,我不知道为什么。 SQL Server 数据库中的数据类型是 varchar。在all_tab_columns@mydblink 中,Oracle 将列类型报告为VARCHAR2

我缺少 ODBC 或 SQL Server 驱动程序中的一些初始化参数吗?

我在 Linux 上使用 Oracle Generic Connectivity (ODBC) 和 Microsoft ODBC Driver 11 for SQL Server。

编辑

  1. 根据 information_schema.columns,字段为 SQL Server db 上的 varchar

  2. 它们没有填充。至少,当我运行查询SELECT first_name, len(first_name) from mytable 时,我得到“John”和“4”。从 Oracle 端运行 SELECT first_name, length(first_name) from mytable,我得到“John”和“50”。

【问题讨论】:

  • 你检查记录没有填充到原始SQL服务器表中吗?
  • SQL Server中的数据类型是char还是varchar

标签: sql-server oracle odbc varchar


【解决方案1】:

小崽子。看起来数据实际上是 填充空白的。 LEN() 函数忽略尾随空格。使用cast( first_name as varbinary(max) ) 表示字段末尾有大量0x20 字符。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-18
    • 2021-11-20
    • 2019-10-13
    • 1970-01-01
    相关资源
    最近更新 更多