Запрос возвращает, а процедура нет - не реагирует на дату... что я делаю не так?

clauss
Дата: 21.03.2011 13:24:20
Есть работающий запрос
Data corruption
Дата: 21.03.2011 13:26:15
clauss,

входящий параметр дата, а работаете как с варчар2 :D
clauss
Дата: 21.03.2011 13:27:21
SELECT /*+ FIRST_ROWS */
       JC.ID ID,
       jc.HASCHILDREN HASCHILDREN,
       J.SUFFIX SUFFIX,
       JC.REGNUMBER REGNUMBER,
       JC.REGDATE REGDATE,
       JC.SUMMARY DOCSUMMARY,
       JC.DOCNUMBER DOCNUMBER,
       JC.DOCDATE DOCDATE,
       ORG.SHORTNAME || ADDR.FROMORG FROMORG,
       JC.CONTROLDATE CONTROLDATE,
       JC.EXECUTIONDATE EXECUTIONDATE,
       JC.DOCSTATE DOCSTATE,
       JC.DOCSTATE JCSTATE,
       jc.DOCCLASS DOCCLASS,
       JC.NOTE NOTE,
       JC.WHOSIGN WHOSIGN
        FROM sed_document doc
        LEFT JOIN sed_journalcontent jc
          on jc.IDDOC = doc.ID
        LEFT JOIN sed_journal j
          on J.ID = JC.IDJOURNAL
        LEFT JOIN sed_address addr
          on ADDR.IDJOURNDOC = JC.ID
        LEFT JOIN sedd_organization org
          on ORG.ID = ADDR.IDFROMORG
       WHERE JC.IDJOURNAL = HEXTORAW('47353CA4C5AE41BA837AF02F86A6042C')
         and (JC.REGDATE between to_date('12.03.2008','DD.MM.YYYY') and to_date('13.03.2008','DD.MM.YYYY'))
         and jc.DOCCLASS = 0;

Есть процедура:

procedure GetDocuments(journalID RAW,
                         dateFrom  Date,
                         dateTo    Date,
                         p_cursor  out rc) IS
  
  BEGIN
    OPEN p_cursor FOR
      SELECT /*+ FIRST_ROWS */
       JC.ID ID,
       jc.HASCHILDREN HASCHILDREN,
       J.SUFFIX SUFFIX,
       JC.REGNUMBER REGNUMBER,
       JC.REGDATE REGDATE,
       JC.SUMMARY DOCSUMMARY,
       JC.DOCNUMBER DOCNUMBER,
       JC.DOCDATE DOCDATE,
       ORG.SHORTNAME || ADDR.FROMORG FROMORG,
       JC.CONTROLDATE CONTROLDATE,
       JC.EXECUTIONDATE EXECUTIONDATE,
       JC.DOCSTATE DOCSTATE,
       JC.DOCSTATE JCSTATE,
       jc.DOCCLASS DOCCLASS,
       JC.NOTE NOTE,
       JC.WHOSIGN WHOSIGN
        FROM sed_document doc
        LEFT JOIN sed_journalcontent jc
          on jc.IDDOC = doc.ID
        LEFT JOIN sed_journal j
          on J.ID = JC.IDJOURNAL
        LEFT JOIN sed_address addr
          on ADDR.IDJOURNDOC = JC.ID
        LEFT JOIN sedd_organization org
          on ORG.ID = ADDR.IDFROMORG
       WHERE JC.IDJOURNAL = HEXTORAW(journalID)
         and (JC.REGDATE between to_date(dateFrom, 'DD.MM.YYYY') and to_date(dateTo, 'DD.MM.YYYY'))
         and jc.DOCCLASS = 0;
  END;

И в запросе и в процедуре значения параметров одинаковые. Запрос возвращает значения, а процедура нет.
Как только убираю параметры типа даты - процедура возвращает значения.
При выполнении ни на что не ругается.

Подскажите, что я делаю не так.

Заранее, спасибо.
clauss
Дата: 21.03.2011 13:28:29
Data corruption
clauss,

входящий параметр дата, а работаете как с варчар2 :D


Да нет, как далее видно - параметры даты.
tru55
Дата: 21.03.2011 13:29:24
зачем к параметру типа date применять to_date ?
Data corruption
Дата: 21.03.2011 13:32:00
clauss,

to_date(dateFrom, 'DD.MM.YYYY') - wtf ? у вас так дата.
clauss
Дата: 21.03.2011 13:35:06
Data corruption,

Отвечаю - раньше так и было:

JC.REGDATE between dateFrom and dateTo

Ничего не возвращало, и я попробывала еще и преобразовывать - так же результата никакого.
AlexFF__|
Дата: 21.03.2011 13:37:01
clauss,
trunc
clauss
Дата: 21.03.2011 13:40:01
AlexFF__|,

?
-2-
Дата: 21.03.2011 13:44:25
clauss
я попробывала
Есть какая-то странная корреляция между теми, кто "пробывал" и "to_date(date)".