RUBY — OCI8, Почему не работает сложный SQL запрос?
Всем привет, при подключении к БД cursor = connection.parse("Сложный SQL запрос"), курсор оказывается пустой, т.е как будто запрос не прошел. В чем может быть беда?
С запросом все хорошо, напрямую выдает те данные, которые нужны
select
c.co_dn,
Unit_Id_Code,
Unit_Serial_Nbr,
Unit_Unit_Type,
c_fff.fff_stn_8,
c_fff.fff_std_7
from C_BTH_UNIT t
join ctp_common_objects c
on c.co_gid = t.obj_gid
join ctp_common_objects fff
on fff.co_dn =
REGEXP_SUBSTR(c.co_dn, 'SXZ/SXZ-(\d+)/ZXC-(\d+)', 1, 1)
join c_fff_fff c_fff
on c_fff.obj_gid = fff.co_gid
and c_fff.conf_id = 1
where UNIT_UNIT_TYPE not in ('AAA',
'BBB',
'CCC',
'DDD',
'EEE',
'CCC',
'VVV',
)
and t.conf_id = 1
Vapaamies: Да из запроса я убирал половину строк, чтобы сюда не все вставить. С запросом все хорошо. ЕГО почему то cursor = connection.parse не парсит из БД.
Трудно сказать, не имея набор самих данных.
Может, по заданному шаблону REGEXP_SUBSTR не находятся совпадения. Попробуй сначала поискать при помощи REGEXP_SUBSTR конкретные строчки простым запросом, без JOIN, при помощи WHERE REGEXP_LIKE. Если они находятся под заданным выражением, то причина в другом.
Так дело то не в SQL запросе, в PL/SQL своим запросом он меньше чем за 1 секунду выводит мне нужные данные, дело в том, что код парсера не может выполнить его. Допустим так, cursor = connection.parse("Select 1,2,3 from table1") все отлично работает, а с моим запросом parse перепрыгивает и cursor оказывается пустым, ума не приложу почему так происходит=(