我正在尝试对Oracle链接服务器执行此查询,并收到以下错误,我知道我的查询格式错误,但我无法弄清楚在哪里以及如何。
DECLARE @CREDIT_CUST_SQL NVARCHAR(1000) = NULL;
SET @CREDIT_CUST_SQL = 'SELECT
cu.[ST_CD]
,cu.[SRT_CD]
,cu.[TITLE]
,cu.[FNAME]
,cu.[INIT]
,cu.[LNAME]
,cu.[ADDR1]
,cu.[ADDR2]
,cu.[CITY]
,cu.[COUNTRY]
,cu.[ZIP_CD]
,cu.[HOME_PHONE]
,cu.[BUS_PHONE]
,cu.[EXT]
FROM [AR].[CUST] cu,
[CUSTOM].[CUST_OTHER] co,
[AR].[CUST_CR] cc
WHERE cu.CUST_CD = co.CUST_CD
AND cu.CUST_CD = cc.CUST_CD
AND cu.DOB IS NOT NULL'
EXECUTE (@CREDIT_CUST_SQL) AT LIVE_BD;
我得到了这个错误,
“ORA-01747:user.table.column,table.column或列规范无效”
知道为什么会这样。感谢。
答案 0 :(得分:4)
您的代码看起来像SQL Server
不要使用括号( [ ] )来引用列名,只需将其保留为大写的有效标识符或使用(sql标准)double引用无效标识符或非大写标识符。
像这样:
SELECT
cu.ST_CD
,cu.SRT_CD
,cu.TITLE
,cu.FNAME
,cu.INIT
,cu.LNAME
,cu.ADDR1
,cu.ADDR2
,cu.CITY
,cu.COUNTRY
,cu.ZIP_CD
,cu.HOME_PHONE
,cu.BUS_PHONE
,cu.EXT
FROM AR.CUST cu,
CUSTOM.CUST_OTHER co,
AR.CUST_CR cc
WHERE cu.CUST_CD = co.CUST_CD
AND cu.CUST_CD = cc.CUST_CD
AND cu.DOB IS NOT NULL