Форум: "Прочее";
Текущий архив: 2011.01.30;
Скачать: [xml.tar.bz2];
ВнизORA-01403. Запрос прилинкованого сервера Oracle из MSSQL Найти похожие ветки
← →
12 © (2010-10-13 12:28) [0]Захожу в MS SQL SERVER Managment Studio -> newquery ->
пишу код, приведенный ниже. Запускаю - есть ответ.
Беру ADO компаненты, коннект к этому же серверу,
1:1 код вставляю в SQL.TEXT. Запускаю - ORA-01403.
ORA-01403 error occurs when a SQL statement, written within a PL/SQL block, does not fetch any data.
т.е. как это? Вот же они...
Что делать?
select
A.ACCOUNT ACCOUNT, A.PHONE PHONE, A.DOLG DOLG, B.CallResult
from
openquery(ASRSTART, "select Account, ""8""||PHONE PHONE, -SALDO DOLG from
(SELECT DISTINCT a.ab_external_code account
, nvl(nvl((select max(ma.PHONE)
from main.adsl_ustr_mile_active ma,main.t_line_device ld
where ma.USER_ID=tu.user_id
and ld.dev_id=ma.DEV_ID
and ld.line_device_id!=3779640
and ld.line_device_id is not null),
(select max(ts.phone)
from main.t_services ts,main.t_line_device ld
where ts.house_id=tu.house_id
and nvl(ts.flat,0)=nvl(tu.flat,0)
and substr(ts.dev_id,1,1)=""8""
and ts.phone is not null
and sysdate between ts.date_begin and nvl(ts.date_end,sysdate)
and ld.dev_id=ts.dev_id
and ld.line_device_id!=3779640
and ld.line_device_id is not null)),""Прямой провод"") phone
, ROUND(bal.acc_current_balance,2) saldo
FROM SIP_W.abonent@startip a
, SIP_W.ct_blocking@startip bl
, sip_w.tb_accounts@startip bal
, main.t_users tu
WHERE a.ab_abc_id = 4
AND a.ab_id = bl.bl_ab_id
AND a.ab_ur_ustp = ""DUSA""
AND bal.acc_ab_id = a.ab_id
AND NVL(bl.bl_to, SYSDATE) >= SYSDATE
and tu.account=a.ab_external_code
HAVING NVL(bl.bl_to, SYSDATE) - bl.bl_from >= 10
AND ( SELECT COUNT(u.us_user_name)
FROM SIP_W.ct_users@startip u
WHERE u.us_ab_id = a.ab_id
AND u.us_close_date IS NULL
AND u.us_uc_code IN (""XA_F"",""XL_F"",""EA_F"",""EL_F"")
) > 0
GROUP BY a.ab_external_code
, tu.user_id
, tu.house_id
, tu.flat
, a.ab_firm
, bl.bl_from
, bl.bl_to
, bl.bl_bc_code
, a.ab_id
, bal.acc_current_balance)
where phone != ""Прямой провод"" and saldo < 0 order by saldo"
) A
left join
(
select MS.CallPhone PHONE, MS.CallResult
from dbo.CallShot CS
join dbo.MainShot MS on MS.CallShotId = CS.IdCallShot
where CS.IdCallShot = (select max(IdCallShot) from CallShot where TypeCaller = 5010)
--and MS.CallResult <> 10
) B on A.PHONE = B.PHONE
where
B.CallResult <> 10
← →
12 © (2010-10-13 12:49) [1]на MSSQL загнал все в хранимку
в TADO.sql.text теперь просто "exec GetInternetAllreadyCalled"
тоже самое, ORA-01403..
← →
Petr V. Abramov © (2010-10-13 13:19) [2]что такое openquery?
ответ на кто "кто виноват?" тут:
> SQL statement, written within a PL/SQL block, does not fetch
> any data.
>
на "что делать" ответа нет, пока не ясно, кто из желания сделать как получше автоматом формирует pl/sql блок, т.е. оборачивает запрос в begin...end;
← →
Игорь Шевченко © (2010-10-13 13:23) [3]Use MAX, Luke
← →
12 © (2010-10-13 13:27) [4]ясно.
Ладно, пока сделал из хранимки into #Tmp
и select from #Tmp
вроде, работает
← →
12 © (2010-10-13 13:28) [5]
> Use MAX, Luke
сейчас почитаю, спасиб
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2011.01.30;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.003 c