我目前正在尝试查询Oracle server
并将数据导入SQL server
。
现在我得到的是这个查询:
select * from openquery(databasename, 'SELECT * FROM RICALM.REQUEST_TIMESTAMP_EXT DueDate
WHERE DueDate.NAME = "com.ibm.team.apt.attribute.constraintdate"')
如果我只是抛出查询:
SELECT * FROM RICALM.REQUEST_TIMESTAMP_EXT DueDate
WHERE DueDate.NAME = 'com.ibm.team.apt.attribute.constraintdate'
进入excel,在那里我创建了一个oracle链接,我可以很好地提取数据。
但是,当我在SQL
中提取数据时,如果我只是"SELECT * FROM RICALM.REQUEST_TIMESTAMP.EXT"
,我可以拉整个表,但是当我添加WHERE
子句时,我收到一条错误消息:
OLE DB provider "OraOLEDB.Oracle" for linked server "databasename" returned message "ORA-00972: identifier is too long".
对此有何解决方法?我想安排一个这样的查询每晚运行,所以我不必处理刷新excel表。
谢谢!
答案 0 :(得分:1)
尝试使用您正在使用的openquery:
select * from openquery(databasename, 'SELECT * FROM RICALM.REQUEST_TIMESTAMP_EXT DueDate WHERE DueDate.NAME = ''com.ibm.team.apt.attribute.constraintdate''')
差异#1正在替换双引号:
"
有两个单引号,应该解析为单引号:
''
差异#2将其作为一行。