我正在通过数据库链接从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。
修改:
根据information_schema.columns,SQL Server数据库上的字段为varchar
。
它们没有填充。至少,当我运行查询SELECT first_name, len(first_name) from mytable
时,我得到“John”和“4”。从Oracle端运行SELECT first_name, length(first_name) from mytable
,我得到“John”和“50”。
答案 0 :(得分:0)
雏龙。看起来实际的数据是空白填充的。 LEN()
函数忽略尾随空格。使用cast( first_name as varbinary(max) )
表示该字段最后包含大量0x20
个字符。