Страница 1 из 1

В JS-версии не генерируется отчет со сложным SQL-запросом

Добавлено: 09 мар 2017, 12:12
Nikolay.D
Добрый день. Переделываю отчет из Flex версии под JS-версию. В нем имеется такой SQL-запрос:

Код: Выделить всё

SELECT *
FROM 
(SELECT h4.h2h_char grup, h2.h2h_parent_id par_id, 
        h2.h2h_child_id child_id, 
        nvl(h2.h2h_char, to_char(h2.h2h_date, 'DD.MM.YYYY')) str, 
        t.STATUS stat 
FROM TABLE(PKG_TREE_MANIPULATION.GET_EKD_TREE(2369045, to_char(SYSDATE, 'DD.MM.YYYY'), 1)) t, 
      ekd_h2h h
     ,ekd_h2h h1
     ,ekd_h2h h2
     ,ekd_h2h h3
     ,ekd_h2h h4
WHERE t.ID2 = h.h2h_parent_id
  AND h.h2h_child_id = h1.h2h_parent_id
  AND h1.h2h_child_id = h2.h2h_parent_id
  AND h2.h2h_child_id IN (2369051, 2369052, 2369053, 2369054, 13293063)
  AND h2.h2h_parent_id = h3.h2h_child_id
  AND h3.h2h_char = 'branch' AND h3.h2h_value IS NULL
  AND h3.h2h_parent_id = h4.h2h_parent_id AND h4.h2h_child_id = 3748678 
ORDER BY h2.h2h_parent_id, h2.h2h_child_id) t
pivot (max (str)
       for child_id in (2369051 as code, 2369052 as name, 2369053 as date_beg, 2369054 as date_end, 13293063 as tc_code)
      )
ORDER BY grup
Формирование данного отчета во Flex версии занимало около 2-х минут. В JS версии формирование не завершается вообще.
Единственное что удалось установить, это то, что выполнение останавливается в файле oracle.php

Код: Выделить всё

public function execute($queryString) {
			$result = $this->connect();
			if ($result->success) {
				$query = oci_parse($this->link, $queryString);
				if (!$query || !oci_execute($query)) return $this->getLastErrorResult();
т.е. oci_execute не возвращает результат.

Еще раз повторю, во Flex-версии и в дизайнере базы данных этот же запрос работает.

Re: В JS-версии не генерируется отчет со сложным SQL-запросо

Добавлено: 09 мар 2017, 21:20
Andrew
Николай,

В пятничном релизе будут исправления по "сложным запросам". Неправильно интерпретировались символы табуляции. Скорее всего и построение отчета останавливалось.

Спасибо.