Повторяющиеся данные из оператора выбора - PullRequest
0 голосов
/ 06 декабря 2018

Я хочу провести стресс-тест для процедуры, а не для создания файла .csv.Проблема в том, что у меня недостаточно данных, поэтому я хочу дублировать данные в моем sql select.

Запрос выглядит так:

SELECT P.FST_NAME,
           P.LAST_NAME,
           P.EMAIL_ADDR,
           P.PERSON_UID,
           PR.FST_NAME PRSP_FST_NAME,
           PR.LAST_NAME PRSP_LAST_NAME, 
           M.X_BAPRO_DT_01,
           M.X_BAPRO_DT_02,
           M.X_BAPRO_DT_03,
           M.X_BAPRO_MONTO,
           M.X_BAPRO_NUM_01,
           M.X_BAPRO_NUM_02,
           M.X_BAPRO_NUM_03,
           M.X_BAPRO_TEXT_01,
           M.X_BAPRO_TEXT_02,
           M.X_BAPRO_TEXT_03,
           M.X_BAPRO_TEXT_04,
           M.X_BAPRO_TEXT_05
    FROM SIEBEL.S_SRC C 
    left join SIEBEL.S_CAMP_CON M on C.ROW_ID = M.SRC_ID
    left join SIEBEL.S_DMND_CRTN_PRG T on T.ROW_ID = M.DCP_ID
    left join SIEBEL.S_CONTACT P on P.ROW_ID = M.CON_PER_ID
    left join SIEBEL.S_PRSP_CONTACT PR on PR.ROW_ID= M.PRSP_CON_PER_ID 
    WHERE 
      C.ROW_ID <> p_row_id

Итак, этот запрос возвращает около 100 записейЯ хочу получить 1000 записей, и мне все равно, дублируются ли данные.

Ответы [ 2 ]

0 голосов
/ 06 декабря 2018

Вы также можете использовать предложение VALUE для создания маленькой таблицы «muliplier», как показано ниже:

SELECT ...
FROM SIEBEL.S_SRC C 
left join SIEBEL.S_CAMP_CON M on C.ROW_ID = M.SRC_ID
left join SIEBEL.S_DMND_CRTN_PRG T on T.ROW_ID = M.DCP_ID
left join SIEBEL.S_CONTACT P on P.ROW_ID = M.CON_PER_ID
left join SIEBEL.S_PRSP_CONTACT PR on PR.ROW_ID= M.PRSP_CON_PER_ID 
cross join (values (1),(2),(3),(4),(5),(6),(7),(8),(9),(10)) tabl(n)
0 голосов
/ 06 декабря 2018

Вы можете добавить cross join:

FROM SIEBEL.S_SRC C 
    left join SIEBEL.S_CAMP_CON M on C.ROW_ID = M.SRC_ID
    left join SIEBEL.S_DMND_CRTN_PRG T on T.ROW_ID = M.DCP_ID
    left join SIEBEL.S_CONTACT P on P.ROW_ID = M.CON_PER_ID
    left join SIEBEL.S_PRSP_CONTACT PR on PR.ROW_ID= M.PRSP_CON_PER_ID 
    cross join (select 1 as n from dual union all
                select 2 from dual
                . . .
               ) x
...