从9.1E升级到10.2B后,进度ODBC INSERT INTO失败



我有一些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状态值(如果可用)。什么活儿也没干。"由于列"unit-desc",链接服务器"linkedserver"的OLE DB提供程序"MSDASQL"无法插入表"[MSDASQL]"。用户没有写入该列的权限。

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

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

有人知道怎么让它工作吗?

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

最新更新