使用Oracle Generic Connectivity进行查询会返回空白填充结果

时间:2016-09-02 16:00:09

标签: sql-server oracle odbc varchar

我正在通过数据库链接从Oracle运行查询到SQL Server 2012实例。所有结果都用空格填充到字段的最大长度,我无法弄清楚原因。 SQL Server数据库中的数据类型是varchar。在all_tab_columns@mydblink中,Oracle将列类型报告为VARCHAR2

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

我在Linux上使用Oracle通用连接(ODBC)和Microsoft ODBC驱动程序11 for SQL Server。

修改

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

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

1 个答案:

答案 0 :(得分:0)

雏龙。看起来实际的数据是空白填充的。 LEN()函数忽略尾随空格。使用cast( first_name as varbinary(max) )表示该字段最后包含大量0x20个字符。