1

我有一些 sql 脚本可以将数据从我们的 SQL Server 移动到我们的进度框。但它停止了工作。

这在 9.1E 中有效,但在升级到 10.2B 后失败

INSERT INTO OPENQUERY(linkedserver, 'select building, unit, "unit-desc", "address" from pub."rm-unit"') 
SELECT  DISTINCT
        UPPER(ProjectCode + BuildingCode) AS building, 
        UPPER(UnitCode) as unit, 
        UPPER(UnitNumber) AS [unit-desc]
        UPPER(AddressLine) as [address]
FROM    RawUnit
WHERE   ProjectCode in ('VM')
ORDER BY building, unit

升级链接服务器“linkedserver”的 OLE DB 提供程序“MSDASQL”后的错误消息返回消息“多步 OLE DB 操作生成错误。检查每个 OLE DB 状态值(如果可用)。没有完成任何工作。”。消息 7344,级别 16,状态 1,第 1 行链接服务器“linkedserver”的 OLE DB 提供程序“MSDASQL”无法插入表“[MSDASQL]”,因为列“unit-desc”。用户没有权限写到专栏。

为了让它工作,我删除了带有连字符的列。

INSERT INTO OPENQUERY(linkedserver, 'select building, unit, "address" from pub."rm-unit"')  
SELECT  DISTINCT
        UPPER(ProjectCode + BuildingCode) AS building, 
        UPPER(UnitCode) as unit, 
        UPPER(AddressLine) as [address]
FROM    RawUnit
WHERE   ProjectCode in ('VM')
ORDER BY building, unit

任何人都知道如何让这个工作?

4

1 回答 1

1

您正在使用 MSDASQL ODBC 驱动程序连接到 Progress,但您需要 DataDirect OpenEdge 10.2B ODBC 驱动程序。你在使用 QAD 吗?如果是这样,请联系 QAD,他们应该能够从 Progress 获得仅适用于 ODBC 驱动程序的安装程序。如果没有,请直接联系 Progress。根据您与供应商或 Progress 的合同,您可能会或可能不会为驱动程序付费。

于 2011-10-03T20:15:08.760 回答