Я занимаюсь извлечением данных, и я новичок в Oracle базах данных, мне был дан какой-то эксперт по этим вопросам, но после просмотра данных, которые я экспортировал в CSV, я заметил, что они дублируются данные, в частности одна запись, запрос такой:
SELECT
1 AS SourceID,
to_char(SYSDATE, 'yyyy-mm-dd hh24:mi:ss') as CreatedDateTime
,'PAN' AS Customer_Code
,REPLACE(REPLACE(REPLACE(Trim(tibom010.t$mitm), CHR(13), ' '), CHR(10), ' ') , CHR(9), ' ') AS TopLevelPartNumber
,REPLACE(REPLACE(REPLACE(Trim(itm.t$dsca), CHR(13), ' '), CHR(10), ' ') , CHR(9), ' ') AS TopLevelPartNumberDescription
,tibom010.t$pono AS BOMPositionNumber
,tibom010.t$seqn AS BOMSequence
,REPLACE(REPLACE(REPLACE(Trim(tibom010.t$sitm), CHR(13), ' '), CHR(10), ' ') , CHR(9), ' ') AS ComponentPartNumber
,REPLACE(REPLACE(REPLACE(Trim(itm2.t$dsca), CHR(13), ' '), CHR(10), ' ') , CHR(9), ' ') AS ComponentPartDescription
,tibom010.t$qana AS QuanityPer
,REPLACE(REPLACE(REPLACE(Trim(itm2.t$cuni), CHR(13), ' '), CHR(10), ' ') , CHR(9), ' ') AS UnitOfMeasure
,to_char(New_Time(tibom010.t$indt,'GMT','PDT'), 'yyyy-mm-dd hh24:mi:ss') AS EffectiveDate
,CASE WHEN (tibom010.t$exdt > to_date('01/01/1970','mm/dd/yyyy')) THEN to_char(New_Time(tibom010.t$exdt,'GMT','PDT'), 'yyyy-mm-dd hh24:mi:ss') ELSE NULL END AS ExpirationDate
,REPLACE(REPLACE(REPLACE(Trim(rf.t$lcid), CHR(13), ' '), CHR(10), ' ') , CHR(9), ' ') AS ReferenceDesignatorLocation
,REPLACE(REPLACE(REPLACE(Trim(rf.t$qana), CHR(13), ' '), CHR(10), ' ') , CHR(9), ' ') AS ReferenceDesignatorLocationQuantity
FROM baan.ttibom010335 tibom010
LEFT OUTER JOIN baan.ttcibd001335 itm ON (itm.t$item = tibom010.t$mitm)
LEFT OUTER JOIN baan.ttcibd001335 itm2 ON (itm2.t$item = tibom010.t$sitm)
LEFT OUTER JOIN baan.ttibom020335 rf ON (rf.t$mitm = tibom010.t$mitm AND rf.t$pono = tibom010.t$pono AND rf.t$seqn = tibom010.t$seqn)
start WITH trim(tibom010.t$mitm) LIKE 'PNW%'
connect BY prior tibom010.t$sitm = tibom010.t$mitm;
Я нашел дублированные данные при выполнении этого запроса:
SELECT * FROM baan.ttibom010335 tibom010 where trim(tibom010.t$mitm) = 'PNW-710-000162' and trim(tibom010.t$sitm) = 'PNW-510-000060' AND tibom010.t$seqn = 2;
Запрос сверху возвращает только один элемент, однако найденное извлечение 5. Имеет ли оно какое-либо отношение к функции запуска или к любой другой нативной функции из базы данных Oracle? если да, то какой?