Почему я получаю дублированные записи запросов в базе данных Oracle 12 c? - PullRequest
0 голосов
/ 18 февраля 2020

Я занимаюсь извлечением данных, и я новичок в 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? если да, то какой?

...