Проблема с запросом выбора: ORA-01861: литерал не соответствует строке формата - PullRequest
0 голосов
/ 08 мая 2019

У меня возникают проблемы при выполнении запроса ниже: «ORA-01861: литерал не соответствует строке формата».Не удалось определить актуальную проблему.

select
  *
from(
    select
      a.*,
      rownum rnum
    from(
        SELECT
          E1."BAMEVENT" AS "BAMEVENT",
          E1."BCRMORDERID" AS "BCRMORDERID",
          E1."COMPLETIONTIME" AS "COMPLETIONTIME",
          E1."CONTACT" AS "CONTACT",
          E1."CREATIONTIME" AS "CREATIONTIME",
          E1."CURRENTOWNERID" AS "CURRENTOWNERID",
          E1."CURRENTOWNERNAME" AS "CURRENTOWNERNAME",
          E1."CUSTOMERNAME" AS "CUSTOMERNAME",
          E1."CUSTOMERSEGMENT" AS "CUSTOMERSEGMENT",
          E1."CUSTOMERSUBSEGMENT" AS "CUSTOMERSUBSEGMENT",
          E1."CUSTOMERID" AS "CUSTOMERID",
          E1."CUSTOMERREGION" AS "CUSTOMERREGION",
          E1."ESCLATIONLEVELFIRED" AS "ESCALATIONLEVELFIRED",
          E1."ESTIMATECOMPLETIONDATE" AS "ESTIMATECOMPLETETIME",
          E1."OVERALLESTIMATECOMPLETIONDATE" AS "ESTIMATEDCLOSUREDATE",
          E1."EVENTTYPE" AS "EVENTTYPE",
          E1."EVENTWEIGHT" AS "EVENTWEIGHT",
          E1."MODIFIEDBY" AS "MODIFIEDBY",
          E1."MODIFIEDDATE" AS "MODIFIEDDATE",
          E1."ORDERNUMBER" AS "ORDERNUMBER",
          E1."ORDERSTATUS" AS "ORDERSTATUS",
          E1."OWNER" AS "OWNER",
          E1."PARTYID" AS "PARTYID",
          E1."PARTYNAME" AS "PARTYNAME",
          E1."PROCESSINSTANCEID" AS "PROCESSINSTANCEID",
          E1."PRODUCTDESC" AS "PRODUCTDESCRIPTION",
          E1."PRODUCTOFFERINGNAME" AS "PRODUCTOFFERING",
          E1."REQUESTID" AS "REQUESTID",
          E1."REQUESTEDDATE" AS "REQUESTEDDATE",
          E1."REQUESTEDSYSTEM" AS "REQUESTEDSYSTEM",
          E1."REVERSALREASON" AS "REVERSALREASON",
          E1."SLABREACHED" AS "SLABREACHED",
          E1."SMARTSEARCH" AS "SMARTSEARCH",
          E1."TICKETNUMBER" AS "TICKETNUMBER",
          E1."TRANSACTIONID" AS "TRANSACTIONID",
          E1."PRODUCTIDENTIFIER" AS "PRODUCTIDENTIFIER",
          C2."BUSINESSSEGMENT" AS "BUSINESSSEGMENT",
          E1."PRODUCTIDENTIFIER" AS "COLUMN",
          E1."ORDERCHANNEL" AS "ORDERCHANNEL",
          E1."OVERALLPROGRESSPRCNT" AS "OVERALLPROGRESSPRCNT",
          E1."PROCESSINSTANCEPRCNT" AS "PROCESSINSTANCEPRCNT",
          O3."BCRMREQUESTTYPE" AS "BCRMREQUESTTYPE",
          O3."OPRODUCTDETAIL_PRODUCTCATEGORY" AS "OPRODUCTDETAILPRODUCTCATEGOR",
          O3."OPRODUCTDETAIL_PRODUCTLINE" AS "OPRODUCTDETAILPRODUCTLINE",
          O3."OPRODUCTDETAIL_PRODUCTOFFERING" AS "OPRODUCTDETAILPRODUCTOFFERIN",
          R4."CBCMREQUESTTYPE" AS "CBCMREQUESTTYPE",
          R4."ORDERREFERENCENUMBER" AS "ORDERREFERENCENUMBER"
        FROM
          "BAMSPAPP"."ETOE_ORDER_TRACKER" E1,
          "BAMSPAPP"."CUST_DETAILS" C2,
          "BAMSPAPP"."ORDER_LINE_ITEMS_DETAILS" O3,
          "BAMSPAPP"."REQUEST_DETAILS" R4
        WHERE
          (
            E1."PROCESSINSTANCEID" = C2."PROCESSINSTANCEID"(+)
          )
          AND (
            E1."PROCESSINSTANCEID" = O3."PROCESSINSTANCEID"(+)
          )
          AND (
            E1."PROCESSINSTANCEID" = R4."PROCESSINSTANCEID"(+)
          )
          AND E1.CREATIONTIME >= '2019-02-01T00:00:00'
          AND E1.CREATIONTIME < = '2019-05-06T00:00:00'
          AND (
            (
              (
                E1.ORDERSTATUS = 'Closed'
                or E1.ORDERSTATUS = 'Cancelled'
              )
              and E1.PRODUCTIDENTIFIER = 'Mobile'
              and NOT(E1.COMPLETIONTIME < SYSDATE -10)
            )
            OR (
              (
                E1.ORDERSTATUS = 'Closed'
                or E1.ORDERSTATUS = 'Cancelled'
              )
              and (
                E1.PRODUCTIDENTIFIER IS NULL
                or E1.PRODUCTIDENTIFIER != 'Mobile'
              )
              and NOT(E1.COMPLETIONTIME < SYSDATE -30)
            )
            OR (
              E1.ORDERSTATUS != 'Closed'
              and E1.ORDERSTATUS != 'Cancelled'
            )
          )
        order by
          E1.CREATIONTIME
      ) a
    where
      rownum <= 5000
  )
where
  rnum >= 0

1 Ответ

2 голосов
/ 08 мая 2019

Ошибка возникает из-за сравнения дат со строками символов.Если предположить, что CREATIONDATE является полем типа даты (что и должно быть), тогда ошибка в вашем условии where:

          E1.CREATIONTIME >= '2019-02-01T00:00:00'
      AND E1.CREATIONTIME < = '2019-05-06T00:00:00'

Вы можете решить ее следующим образом:

          E1.CREATIONTIME >= to_date('2019-02-01', 'YYYY-MM-DD')
      AND E1.CREATIONTIME <= to_date('2019-05-06', 'YYYY-MM-DD')

Или начиная с Oracle 11g:

          E1.CREATIONTIME >= date '2019-02-01'
      AND E1.CREATIONTIME <= date '2019-05-06'

Если, однако, эти поля являются символьными строками (varchar2), то проблема будет в следующем условии:

    NOT(E1.COMPLETIONTIME < SYSDATE -10)

Тогда вам необходимо исправить это следующим образом:

    NOT(to_date(E1.COMPLETIONTIME, 'YYYY-MM-DD"T"HH24:MI:SS') < SYSDATE -10)

... где второй аргумент, передаваемый в функцию to_date, должен представлять точный формат содержимого поля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...