Openquery 挂在同一行号
Openquery Hung at Same Row Number
我正在尝试通过链接服务器在 SQL 服务器 17 中执行 运行 到 Oracle 连接源的开放查询。当我 运行 下面发布的查询每次都卡在 行 7833 处。
查询:
SELECT
sys_ohi,
"Region",
sub_acct_no_ohi,
serv_cde_ohi,
connect_dte_ohi,
charge_amt_ohi
FROM openquery (MyServer, '
(SELECT DISTINCT
sys_ohi,
CASE
WHEN prin_ohi = ''1000'' THEN ''Seattle East''
WHEN prin_ohi = ''1500'' THEN ''Seattle West''
WHEN prin_ohi = ''2000'' THEN ''Oregon''
WHEN prin_ohi = ''3000'' THEN ''Sacramento''
WHEN prin_ohi = ''3500'' THEN ''San Francisco''
END AS "Region",
sub_acct_no_ohi,
serv_cde_ohi,
connect_dte_ohi,
charge_amt_ohi
FROM mytable_ohi
WHERE serv_cde_ohi IN (''INSTALL'')
AND connect_dte_ohi > trunc(to_date(''06-01-2017'',''MM-DD-YYYY'')))')
我有 36 个不同的 serv_cde_ohi IN (''INSTALL'')
但我已经为不同的场景创建了 36 个 UNION ALL 查询,因为试图将它们放在 'IN' 语句中对性能来说很糟糕。
我需要知道为什么这个查询卡在同一个地方。
您的 UNION ALL 声明可能依赖于隐式数据转换才能开始执行,然后在游标提取期间出现数据条件,其中隐式转换以您观察到的这种方式失败。
消除所有隐式依赖。对于每个 SELECT 中的每个项目,明确建立数据类型(每个项目的类型相同,当然是按顺序)。
我正在尝试通过链接服务器在 SQL 服务器 17 中执行 运行 到 Oracle 连接源的开放查询。当我 运行 下面发布的查询每次都卡在 行 7833 处。
查询:
SELECT
sys_ohi,
"Region",
sub_acct_no_ohi,
serv_cde_ohi,
connect_dte_ohi,
charge_amt_ohi
FROM openquery (MyServer, '
(SELECT DISTINCT
sys_ohi,
CASE
WHEN prin_ohi = ''1000'' THEN ''Seattle East''
WHEN prin_ohi = ''1500'' THEN ''Seattle West''
WHEN prin_ohi = ''2000'' THEN ''Oregon''
WHEN prin_ohi = ''3000'' THEN ''Sacramento''
WHEN prin_ohi = ''3500'' THEN ''San Francisco''
END AS "Region",
sub_acct_no_ohi,
serv_cde_ohi,
connect_dte_ohi,
charge_amt_ohi
FROM mytable_ohi
WHERE serv_cde_ohi IN (''INSTALL'')
AND connect_dte_ohi > trunc(to_date(''06-01-2017'',''MM-DD-YYYY'')))')
我有 36 个不同的 serv_cde_ohi IN (''INSTALL'')
但我已经为不同的场景创建了 36 个 UNION ALL 查询,因为试图将它们放在 'IN' 语句中对性能来说很糟糕。
我需要知道为什么这个查询卡在同一个地方。
您的 UNION ALL 声明可能依赖于隐式数据转换才能开始执行,然后在游标提取期间出现数据条件,其中隐式转换以您观察到的这种方式失败。
消除所有隐式依赖。对于每个 SELECT 中的每个项目,明确建立数据类型(每个项目的类型相同,当然是按顺序)。