c# - 链接服务器“FDMEE_SIMPHONY”的 OLE DB 提供程序“OraOLEDB.Oracle”返回消息“ORA-00903:无效表名”
问题描述
我正在尝试在两个链接服务器之间运行此查询,但它返回消息ORA-00903
Invalid table。
- 代码
SELECT * FROM OPENQUERY ([Database1],
'SELECT ''Simphony_ARCS-Operational'', ''Mar'', ''03'', ''2020'', ''DayPlaceholder''AS DAY,
SUM((MENU_ITEM_DAY_PART_TOTAL.SALESTOTAL) - (MENU_ITEM_DAY_PART_TOTAL.DISCOUNTTOTAL)) AS NETSALESTOTAL,
MENU_ITEM_DAY_PART_TOTAL.ORGANIZATIONID,
CONCAT(MENU_ITEM_DAY_PART_TOTAL.REVENUECENTERID, ''_REV'') AS REV_ID,
UPPER(CASE WHEN DAY_PART.NAME IS NULL THEN ''DINNER''
ELSE DAY_PART.NAME END) AS DAYPART,
COALESCE(sc.stringtext, scc.stringtext) as MenuItemClassName,
sm.stringtext as MenuItemName,
su.stringtext as ZoneORLocation
FROM
--LOCATION_ACTIVITY_DB.MAJOR_GROUP
[10.xxx.1.xxx].[Database2].[TRANS].menu_item_definition d
left join [10.xxx.1.xxx].[SimphonyTables].[TRANS].string_table sm
on d.name1id = sm.stringnumberid
left join [10.xxx.1.xxx].[SimphonyTables].[TRANS].menu_item_master m
on d.menuitemmasterid = m.menuitemmasterid
left join [10.xxx.1.xxx].[SimphonyTables].[TRANS].hierarchy_structure s
on d.hierstrucid = s.hierstrucid
left join [10.xxx.1.xxx].[SimphonyTables].[TRANS].hierarchy_unit u
on s.hierunitid = u.hierunitid
left join [10.xxx.1.xxx].[SimphonyTables].[TRANS].string_table su
on u.nameid = su.stringnumberid
left join [10.xxx.1.xxx].[SimphonyTables].[TRANS].menu_item_class c
on d.hierstrucid = c.hierstrucid and d.menuitemclassobjnum = c.objectnumber
left join [10.xxx.1.xxx].[SimphonyTables].[TRANS].menu_item_class cc
on s.parenthierstrucid = cc.hierstrucid and d.menuitemclassobjnum = cc.objectnumber
left join [10.xxx.1.xxx].[SimphonyTables].[TRANS].string_table sc
on c.nameid = sc.stringnumberid
left join [10.xxx.1.xxx].[SimphonyTables].[TRANS].string_table scc
on cc.nameid = scc.stringnumberid
left join [10.xxx.1.xxx].[SimphonyTables].[TRANS].sales_itemizer i
on c.hierstrucid = i.hierstrucid and c.slsitmzrindex = i.slsitmzrindex
left join [10.xxx.1.xxx].[SimphonyTables].[TRANS].sales_itemizer ii
on cc.hierstrucid = ii.hierstrucid and cc.slsitmzrindex = ii.slsitmzrindex
left join [10.xxx.1.xxx].[SimphonyTables].[TRANS].sales_itemizer pi
on s.parenthierstrucid = pi.hierstrucid and c.slsitmzrindex = pi.slsitmzrindex
left join [10.xxx.1.xxx].[SimphonyTables].[TRANS].string_table si
on i.nameid = si.stringnumberid
left join [10.xxx.1.xxx].[SimphonyTables].[TRANS].string_table spi
on pi.nameid = spi.stringnumberid
left join [10.xxx.1.xxx].[SimphonyTables].[TRANS].string_table sii
on ii.nameid = sii.stringnumberid
inner join LOCATION_ACTIVITY_DB.REVENUE_CENTER rc
on rc.revenuecenterposref = u.objectnumber
inner join LOCATION_ACTIVITY_DB.MENU_ITEM mi
on m.objectnumber = mi.MENUITEMPOSREF
right outer join LOCATION_ACTIVITY_DB.MENU_ITEM_DAY_PART_TOTAL midpt
on mi.menuitemid = midpt.menuitemid
left outer join LOCATION_ACTIVITY_DB.DAY_PART dp
on midpt.organizationid = dp.organizationid and midpt.daypartid = dp.daypartid
AND MENU_ITEM_DAY_PART_TOTAL.DAYPARTID = DAY_PART.DAYPARTID
WHERE (midpt.ORGANIZATIONID = ''10260'')
AND BUSINESSDATE BETWEEN (TO_DATE(''01-Mar-20'',''DD-MON-YY'')) AND (TO_DATE(''31-Mar-20'',''DD-MON-YY''))
AND mi.MENUITEMPOSREF = ''420000010''
AND rc.REVENUECENTERPOSREF LIKE ''304%''
GROUP BY midpt.ORGANIZATIONID
,COALESCE(sc.stringtext, scc.stringtext)
,sm.stringtext
,midpt.REVENUECENTERID
,dp.NAME
,su.stringtext')
错误信息...
OLE DB provider "OraOLEDB.Oracle" for linked server "FDMEE_SIMPHONY" returned message "ORA-00903: invalid table name".
Msg 7321, Level 16, State 2, Line 1
An error occurred while preparing the query "SELECT 'Simphony_ARCS-Operational', 'Mar', '03', '2020', 'DayPlaceholder'AS DAY,
SUM((MENU_ITEM_DAY_PART_TOTAL.SALESTOTAL) - (MENU_ITEM_DAY_PART_TOTAL.DISCOUNTTOTAL)) AS NETSALESTOTAL,
MENU_ITEM_DAY_PART_TOTAL.ORGANIZATIONID,
CONCAT(MENU_ITEM_DAY_PART_TOTAL.REVENUECENTERID, '_REV') AS REV_ID,
UPPER(CASE WHEN DAY_PART.NAME IS NULL THEN 'DINNER'
ELSE DAY_PART.NAME END) AS DAYPART,
COALESCE(sc.stringtext, scc.stringtext) as MenuItemClassName,
sm.stringtext as MenuItemName,
su.stringtext as ZoneORLocation
FROM
--LOCATION_ACTIVITY_DB.MAJOR_GROUP
[10.118.1.135].[SimphonyTables].[TRANS].menu_item_definition d
left join [10.118.1.135].[SimphonyTables].[TRANS].string_table sm
on d.name1id = sm.stringnumberid
left join [10.118.1.135].[SimphonyTables].[TRANS].menu_item_master m
on d.menuitemmasterid = m.menuitemmasterid
left join [10.118.1.135].[SimphonyTables].[TRANS].hierarchy_structure s
on d.hierstrucid = s.hierstrucid
left join [10.118.1.135].[SimphonyTables].[TRANS].hierarchy_unit u
on s.hierunitid = u.hierunitid
left join [10.118.1.135].[SimphonyTables].[TRANS].string_table su
on u.nameid = su.stringnumberid
left join [10.118.1.135].[SimphonyTables].[TRANS].menu_item_class c
on d.hierstrucid = c.hierstrucid and d.menuitemclassobjnum = c.objectnumber
left join [10.118.1.135].[SimphonyTables].[TRANS].menu_item_class cc
on s.parenthierstrucid = cc.hierstrucid and d.menuitemclassobjnum = cc.objectnumber
left join [10.118.1.135].[SimphonyTables].[TRANS].string_table sc
on c.nameid = sc.stringnumberid
left join [10.118.1.135].[SimphonyTables].[TR...
解决方案
我怀疑问题出在你的方括号上(MSSQL 特定的语法;对 Oracle 无效)。
看看这个链接:
Oracle Linked Server Ole DB Provider 无效的表名或表或视图不存在
大家好,我在使用 OLE DB Provider for Oracle 通过 SSIS 连接 Oracle 时遇到了一个大问题
数据流,源 Oracle_Connection,我将 AlwaysUseDefaultCode 固定为是,并检索了表“[Oracle]”。“[Tax]”(顶点自动出现)。我检查了映射并将 Destination Assistant 创建为 SQL 表。它确实有效。
数据流,源 Oracle_Connection,我将 AlwaysUseDefaultCode 固定为是并且...我使用 SQL 命令编写
select * from [Oracle].[Tax] retrieves (ORA - 00903) invalid table name select * from "[Oracle]"."[Tax]" retrieves (ORA - 00942) table or view does not exist select * from LinkedSever.."[Oracle]"."[Tax]" retrieves (ORA - 00903) invalid table name select * from "LinkedSever".."[Oracle]"."[Tax]" retrieves (ORA - 00903) invalid table name
解决方案:
我知道了。
select * from Oracle.Tax simply without brackets
否则,请尝试此处的故障排除提示:
推荐阅读
- prolog - 运行文件而不是交互运行时无权修改静态过程“findall/3”
- google-sheets - 与链接表共享创建的 Google 表单以供其他人使用
- python - 如何根据产品选择(例如尺寸、颜色、包装)抓取信息?
- r - 如何根据同一行中的值移动 data.table 行中的值
- python-3.x - 从 NLTK Python 模块运行 pos_tag() 时出现 UnpicklingError 的原因是什么?
- c++ - 错误:增量填充向量时,表达式必须具有整数或无范围枚举类型
- nosql - DynamoDB 在定价方面的替代品?(只支付你使用的东西)
- python - 在没有上下文的情况下向当前频道发送消息?| discord.py 重写
- r - 了解矩阵子设置:`mat[2, mat[1, ] == 1] == 1` (2)
- apache-spark - Kappa 架构和简单地使用流处理有什么区别?