процедура сбоя компиляции - PullRequest
0 голосов
/ 27 сентября 2018

У меня есть существующая процедура, которая создает таблицу adwstg.switchhold_notificatn_stg

Внезапно возникает ошибка при создании таблицы.Я ничего не изменил в этом утверждении.

Сначала я подумал, что ошибка в «Нет».Поэтому найдите и замените '' на '

Но в строке выдается ошибка:

nvl(ba300_z51.sent_650_01, 'No') sent_650_01,

Ошибка (27,29): PLS-00103: Обнаружен символ «НЕТ«при ожидании одного из следующего: * & = - +;</> at in - это остаток от мода, а не rem <> или! = или ~ => = <= <> и / или like2 like4 likec между ||член мультимножества submultiset ***

Ниже приведен запрос:

create table adwstg.switchhold_notificatn_stg nologging parallel (degree 8) compress as
select distinct
bad3700.createdon,
bad3700.uc_pod_ext,
bpc.cacont_acc, 
bad3700.notificatn, 
bad3700.nfcat_code, 
nvl(ba300_z51.sent_650_01, ''No'') sent_650_01,
decode(ba300_z51.sent_650_01,''No'',''--'',''Yes'',to_char(ba300_z51.ucswmsgdat,''yyyymmdd''),''--'') date_sent_650_01,
nvl(to_char(ba300_z51.ucswmsgtim,''hh24:mi:ss''),''--'') time_sent_650_01,
nvl(ba300_z52.received_650_02, ''No'') received_650_02,
decode(ba300_z52.received_650_02,''No'',''--'',''Yes'',to_char(ba300_z52.ucswmsgdat,''yyyymmdd''),''--'') date_received_650_02,
nvl(to_char(ba300_z52.ucswmsgtim,''hh24:mi:ss''),''--'') time_received_650_02,
nvl(ba300_z20.received_814_20, ''No'') received_814_20,
decode(ba300_z20.received_814_20,''No'',''--'',''Yes'',to_char(ba300_z20.ucswmsgdat,''yyyymmdd''),''--'') date_received_814_20,
nvl(to_char(ba300_z20.ucswmsgtim,''hh24:mi:ss''),''--'') time_received_814_20,
case
   when trim(bad3700.nfcat_code) = ''SH01'' and zet.ext_ui is not null then ''ADDED''
   when trim(bad3700.nfcat_code) = ''SH01'' and zet.ext_ui is null then ''NOT PROCESSED''
   when trim(bad3700.nfcat_code) in (''SH02'',''SH03'') and zet.ext_ui is null then ''REMOVED''
   when trim(bad3700.nfcat_code) in (''SH02'',''SH03'') and zet.ext_ui is not null then ''NOT PROCESSED''
   else ''NOT PROCESSED''
end work_order_check
from
    (select distinct *
     from
        (select
         trunc(createdon) createdon,
         trim(notificatn) notificatn,
         trim(uc_pod_ext) uc_pod_ext,
         trim(not_type) not_type,
         trim(nfcat_code) nfcat_code,
         row_number () over (partition by trim(uc_pod_ext),trunc(createdon) order by trim(notificatn) desc) rnum
         from birpt.bic_azfc_ds3700
         where upper(trim(not_type)) = ''SH''
         and trim(bic_zdiscstat) = ''E0010'')
     where rnum = 1
    ) bad3700
left outer join
    (
     select distinct ucinstalla, uc_pod_ext, datefrom, dateto
     from birpt.bi0_qucinstalla
     where objvers = ''A''
    ) bqi
    on (trim(bad3700.uc_pod_ext) = trim(bqi.uc_pod_ext)
        and trunc(bad3700.createdon) between bqi.datefrom and bqi.dateto)
left outer join
    (
     select distinct cacont_acc, ucinstalla, ucmovein_d, ucmoveoutd
     from birpt.bi0_puccontract
     where objvers = ''A''
    ) bpc
    on (trim(bqi.ucinstalla) = trim(bpc.ucinstalla)
        and trunc(bad3700.createdon) between bpc.ucmovein_d and bpc.ucmoveoutd)
left outer join 
    (select distinct * 
     from 
        (select
         trim(ucswtpodex) ucswtpodex,
         trunc(ucswmsgdat) ucswmsgdat,
         ucswmsgtim,
         case  --650_01 CHECK
            when trim(uc_mdcat) = ''Z51'' then ''Yes''
            else ''No''
         end sent_650_01,
         row_number () over (partition by trim(ucswtpodex), trunc(ucswmsgdat) order by trunc(ucswmsgdat) desc, ucswmsgtim desc) rnum
         from birpt.bic_azudeds0300
         where trim(uc_mdcat) = ''Z51'') 
     where rnum = 1) ba300_z51
     on (trim(bad3700.uc_pod_ext) = trim(ba300_z51.ucswtpodex)
         and trunc(bad3700.createdon)= trunc(ba300_z51.ucswmsgdat))
left outer join
    (select distinct * 
     from 
        (select
         trim(ucswtpodex) ucswtpodex,
         trunc(ucswmsgdat) ucswmsgdat,
         ucswmsgtim,
         case  --650_02 CHECK
            when trim(uc_mdcat) = ''Z52'' then ''Yes''
            else ''No''
         end received_650_02,
         row_number () over (partition by trim(ucswtpodex), trunc(ucswmsgdat) order by trunc(ucswmsgdat) desc, ucswmsgtim desc) rnum
         from birpt.bic_azudeds0300
         where trim(uc_mdcat) = ''Z52'') 
     where rnum = 1) ba300_z52
     on (trim(bad3700.uc_pod_ext) = trim(ba300_z52.ucswtpodex)
         and trunc(bad3700.createdon)= trunc(ba300_z52.ucswmsgdat))
left outer join
    (select distinct * 
     from 
        (select
         trim(ucswtpodex) ucswtpodex,
         trunc(ucswmsgdat) ucswmsgdat,
         ucswmsgtim,
         case  --814_20 CHECK
            when trim(uc_mdcat) = ''Z20'' then ''Yes''
            else ''No''
         end received_814_20,
         row_number () over (partition by trim(ucswtpodex), trunc(ucswmsgdat) order by trunc(ucswmsgdat) desc, ucswmsgtim desc) rnum
         from birpt.bic_azudeds0300
         where trim(uc_mdcat) = ''Z20'') 
     where rnum = 1) ba300_z20
     on (trim(bad3700.uc_pod_ext) = trim(ba300_z20.ucswtpodex)
         and trunc(bad3700.createdon)= trunc(ba300_z20.ucswmsgdat))
left outer join
    (select distinct ext_ui
     from isurpt.zcs_esiid_tamper
    ) zet
    on (trim(bad3700.uc_pod_ext) = trim(zet.ext_ui));

1 Ответ

0 голосов
/ 27 сентября 2018

Если вы удалите все двойные одинарные кавычки (выполните функцию , замените в любом текстовом редакторе), ваш код будет действительным (что касается синтаксиса).

У меня нет ваших таблиц, чтобы проверить их, и их слишком много со слишком большим количеством столбцов, чтобы я сам мог создать контрольный пример.

Вопрос: почему вы удвоилиих на первом месте?

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