@Simon:這裏是代碼
drop table Project.Iterations;
drop table Project.test_steps;
CREATE TABLE Project.TEST_STEPS
(
test_case_id NUMBER(9,0),
test_step varchar2(4000)
);
CREATE TABLE Project.TEST_CASES_WITHOUT_TEST_STEPS
(
test_case_id NUMBER(9,0)
);
INSERT INTO Project.TEST_STEPS(test_case_id,test_step)
select test_case_id ,
listagg(activity, chr(10)) within group (order by header1) as test_step
from(
select
testschrit.testfall_id as test_case_id,
'h2.' || TESTSCHRITT_NR || ' ' || CAST(TESTSCHRITT_BEZEICHNUNG AS varchar(600)) || CHR(10) || CAST(TESTSCHRITT_BESCHREIBUNG AS varchar(600)) as header1,
('h2.' || TESTSCHRITT_NR || ' ' || CAST(TESTSCHRITT_BEZEICHNUNG AS varchar(600)) || CHR(10) || CAST(TESTSCHRITT_BESCHREIBUNG AS varchar(600))
|| '||AKTIVITÄT_NR' || '||AKTIVITÄT_KÜRZEL' || '||AKTIVITÄT_BESCHREIBUNG' || '||AKTIVITÄT_ERWARTETES_ERGEBNIS||' || CHR(10)
/*|| clobagg(' |' || aktiv.AKTIVITÄT_NR || ' |' || aktiv.AKTIVITÄT_KÜRZEL || ' |' || aktiv.AKTIVITÄT_BESCHREIBUNG || ' |' || aktiv.AKTIVITÄT_ERWARTETES_ERGEBNIS|| ' |' || CHR(10)) as activity*/
|| listagg(' |' || aktiv.AKTIVITÄT_NR || ' |' || aktiv.AKTIVITÄT_KÜRZEL || ' |' || aktiv.AKTIVITÄT_BESCHREIBUNG || ' |' || aktiv.AKTIVITÄT_ERWARTETES_ERGEBNIS|| ' |' || CHR(10)) within group (order by aktiv.AKTIVITÄT_NR)) as activity
FROM Project.TESTFALLBESCHREIBUNG tfb, Project.TESTSCHRITTE testschrit, Project.AKTIVITÄTEN aktiv
WHERE testschrit.testfall_id = tfb.testfall_id(+)
AND testschrit.TESTSCHRITT_ID=aktiv.TESTSCHRITT_ID (+)
Group by
testschrit.testfall_id,
testschrit.testschritt_id,
testschrit.TESTSCHRITT_NR,
CAST(TESTSCHRITT_BEZEICHNUNG AS varchar(600)),
CAST(TESTSCHRITT_BESCHREIBUNG AS varchar(600))
order by test_case_id,
testschrit.testschritt_nr
)
group by test_case_id;
CREATE TABLE Project.ITERATIONS
(
Issue_Id NUMBER(9,0),
iteration_id NUMBER(9,0),
content_of_iteration VARCHAR2(4000),
parent_id NUMBER(9,0),
Issue_type VARCHAR2(300),
Hierarchy1 VARCHAR2(300),
Hierarchy2 VARCHAR2(300),
summary_name VARCHAR2(300),
part_elements VARCHAR2(300),
status VARCHAR2(300),
issue_category VARCHAR2(300),
relevance VARCHAR2(300),
planned_duration FLOAT,
description VARCHAR2(4000),
precondition VARCHAR2(300),
priority NUMBER(3,0),
assignee VARCHAR2(300),
expected_result VARCHAR2(300),
editor VARCHAR2(300),
modification_date DATE,
dok_ref VARCHAR2(4000),
activity VARCHAR2(4000),
ITERATIONSPARAMETER_NR NUMBER(9,0)
);
INSERT INTO Project.ITERATIONS
select
NULL as Issue_Id,
iter.testfall_id as iteration_id,
iter.testfall_id || ' ' || iter.ITERATIONSPARAMETER || ' ' || iter.ITERATIONSPARAMETER_BESCHREIBU as content_of_iteration,
tfb.TESTFALL_ID as parent_id,
'Iteration' as Issue_type,
NULL as Hierarchy1,
NULL as Hierarchy2,
'Iteration' ||' '|| iter.ITERATIONSPARAMETER_NR || ' - ' || tfb.FALL_BEZEICHNUNG as summary_name,
NULL as part_elements,
NULL as status,
NULL as issue_category,
NULL as relevance,
/* CASE (iter.ITERATIONSPARAMETER_NR) WHEN 0 THEN iter.ITERATIONSPARAMETER
ELSE ''
END
as naglowek,*/
NULL as planned_duration,
' |' || Replace(iter.ITERATIONSPARAMETER,';','|') || ' | |' ||iter.ITERATIONSPARAMETER_BESCHREIBU || ' |' as description,
NULL as precondition,
NULL as priority,
NULL as assignee,
NULL as expected_result,
NULL as editor,
NULL as modification_date,
NULL as dok_ref,
/* NULL as TESTSCHRITT_BEZEICHNUNG*/
/*NULL as activity*/
NULL as activity,
iter.ITERATIONSPARAMETER_NR as ITERATIONSPARAMETER_NR
FROM Project.TESTFALLBESCHREIBUNG tfb, Project.ITERATIONSPARAMETER iter
where
iter.testfall_id =tfb.testfall_id (+)
order by
Issue_Id,
iteration_id,
iter.ITERATIONSPARAMETER_NR ;
SELECT
distinct tfb.TESTFALL_ID as Issue_Id,
NULL as iteration_id,
NULL as content_of_iteration,
NULL as parent_id,
'Test_case' as Issue_type,
REPLACE(globale.testbezeichnung, ' ','_') as Hierarchy1,
REPLACE(voraus.voraussetzungs_bezeichnung,' ' , '_') as Hierarchy2,
CAST(FALL_BEZEICHNUNG AS varchar(150)) as summary_name,
CAST(BETEILIGTE_ELEMENTE AS varchar(100)) as part_elements,
status.testfall_status_beschreibung as status,
(CASE FEHLERFREIHEIT || ' ' || WIDERSPRUCHSLOSIGKEIT || ' ' || VOLLSTÄNDIGKEIT WHEN '0 0 0' THEN ''
ELSE '' END) ||
(CASE FEHLERFREIHEIT || ' ' || WIDERSPRUCHSLOSIGKEIT || ' ' || VOLLSTÄNDIGKEIT WHEN '-1 0 0' THEN 'FEHLERFREIHEIT'
ELSE '' END) ||
(CASE FEHLERFREIHEIT || ' ' || WIDERSPRUCHSLOSIGKEIT || ' ' || VOLLSTÄNDIGKEIT WHEN '-1 -1 0' THEN 'FEHLERFREIHEIT WIDERSPRUCHSLOSIGKEIT'
ELSE '' END) ||
(CASE FEHLERFREIHEIT || ' ' || WIDERSPRUCHSLOSIGKEIT || ' ' || VOLLSTÄNDIGKEIT WHEN '-1 -1 -1' THEN 'FEHLERFREIHEIT WIDERSPRUCHSLOSIGKEIT VOLLSTÄNDIGKEIT'
ELSE '' END) ||
(CASE FEHLERFREIHEIT || ' ' || WIDERSPRUCHSLOSIGKEIT || ' ' || VOLLSTÄNDIGKEIT WHEN '0 -1 0' THEN 'WIDERSPRUCHSLOSIGKEIT'
ELSE '' END) ||
(CASE FEHLERFREIHEIT || ' ' || WIDERSPRUCHSLOSIGKEIT || ' ' || VOLLSTÄNDIGKEIT WHEN '0 -1 -1' THEN 'WIDERSPRUCHSLOSIGKEIT VOLLSTÄNDIGKEIT'
ELSE '' END)||
(CASE FEHLERFREIHEIT || ' ' || WIDERSPRUCHSLOSIGKEIT || ' ' || VOLLSTÄNDIGKEIT WHEN '-1 0 -1' THEN 'FEHLERFREIHEIT VOLLSTÄNDIGKEIT'
ELSE '' END) ||
(CASE FEHLERFREIHEIT || ' ' || WIDERSPRUCHSLOSIGKEIT || ' ' || VOLLSTÄNDIGKEIT WHEN '0 0 -1' THEN 'VOLLSTÄNDIGKEIT'
ELSE '' END) as issue_category,
(CASE ELEMENTTEST || ' ' || INTEGRATIONSTEST || ' ' || SYSTEMTEST WHEN '0 0 0' THEN ''
ELSE '' END) ||
(CASE ELEMENTTEST || ' ' || INTEGRATIONSTEST || ' ' || SYSTEMTEST WHEN '-1 0 0' THEN 'ELEMENTTEST'
ELSE '' END) ||
(CASE ELEMENTTEST || ' ' || INTEGRATIONSTEST || ' ' || SYSTEMTEST WHEN '-1 -1 0' THEN 'ELEMENTTEST INTEGRATIONSTEST'
ELSE '' END) ||
(CASE ELEMENTTEST || ' ' || INTEGRATIONSTEST || ' ' || SYSTEMTEST WHEN '-1 -1 -1' THEN 'ELEMENTTEST INTEGRATIONSTEST SYSTEMTEST'
ELSE '' END) ||
(CASE ELEMENTTEST || ' ' || INTEGRATIONSTEST || ' ' || SYSTEMTEST WHEN '0 -1 0' THEN 'INTEGRATIONSTEST'
ELSE '' END) ||
(CASE ELEMENTTEST || ' ' || INTEGRATIONSTEST || ' ' || SYSTEMTEST WHEN '0 -1 -1' THEN 'INTEGRATIONSTEST SYSTEMTEST'
ELSE '' END)||
(CASE ELEMENTTEST || ' ' || INTEGRATIONSTEST || ' ' || SYSTEMTEST WHEN '-1 0 -1' THEN 'ELEMENTTEST SYSTEMTEST'
ELSE '' END) ||
(CASE ELEMENTTEST || ' ' || INTEGRATIONSTEST || ' ' || SYSTEMTEST WHEN '0 0 -1' THEN 'SYSTEMTEST'
ELSE '' END) as relevance,
/* NULL as head, */
tfb.GEPLANTER_AUFWAND as planned_duration,
CAST(BESCHREIBUNG_TESTFALL AS varchar(4000)) as description,
CAST(AUSGANGSSITUATION AS varchar(200)) as precondition,
WICHTIGKEIT as priority,
BEARBEITER as assignee,
CAST(ERWARTETE_ERGEBNISSE AS varchar(200)) as expected_result,
LETZTER_BEARBEITER as editor,
DATUM_LETZTE_ÄNDERUNG as modification_date,
Replace(LISTAGG(dokref.dokumentenreferenz, chr(10)) within group (order by dokref.dokumentenreferenz),' ','_') as dok_ref,
steps.test_step as activity,
NULL as ITERATIONSPARAMETER_NR
FROM Project.TESTFALLBESCHREIBUNG tfb, Project.TEST_STEPS steps,Project.NM_TESTFALL_DOKUMENTENREFERENZ nmdokref,
Project.DOKUMENTENREFERENZ dokref, Project.TESTFALL_STATUS status, Project.VORAUSSETZUNGEN voraus, Project.GLOBALE_ANGABEN globale,
Project.NM_TESTFÄLLE_STICHWORTE stich, Project.STICHWORTE stichworte
WHERE tfb.testfall_id=steps.test_case_id (+)
AND tfb.testfall_id= nmdokref.testfall_id (+)
AND nmdokref.dokumentenreferenz_id= dokref.dokumentenreferenz_id(+)
AND tfb.testfall_status= status.testfall_status (+)
AND tfb.voraussetzung_id=voraus.voraussetzung_id (+)
AND voraus.tz_id= globale.tz_id (+)
AND tfb.testfall_id= stich.testfall_id (+)
AND stich.stichworte_id= stichworte.stichwort_id (+)
GROUP BY
tfb.TESTFALL_ID,
globale.testbezeichnung,
status.testfall_status_beschreibung,
voraus.voraussetzungs_bezeichnung,
CAST(FALL_BEZEICHNUNG AS varchar(200)) ,
CAST(BETEILIGTE_ELEMENTE AS varchar(200)),
FEHLERFREIHEIT,
WIDERSPRUCHSLOSIGKEIT,
VOLLSTÄNDIGKEIT,
ELEMENTTEST,
INTEGRATIONSTEST,
SYSTEMTEST,
tfb.GEPLANTER_AUFWAND,
CAST(BESCHREIBUNG_TESTFALL AS varchar(200)),
CAST(AUSGANGSSITUATION AS varchar(200)),
WICHTIGKEIT,
BEARBEITER,
CAST(ERWARTETE_ERGEBNISSE AS varchar(200)),
LETZTER_BEARBEITER,
DATUM_LETZTE_ÄNDERUNG,
status.testfall_status_beschreibung,
stichworte.stichwort,
steps.test_step
UNION ALL
select * from Project.ITERATIONS
爲什麼不能夠你SUBSTR()插入串使其小於或EQ。到4000? – Art
你是什麼意思?你能舉個例子嗎? E.x我有一個包含12000字節的字符串。你能寫出它應該是什麼樣子?以獲得最終結果,其中將包含所有12000字節在最後順序排列 – Greg
沒有辦法像11g那樣做。 12000> varchar2 maximum(4000中的<= 11g) =>中它不適用於varchar2;您可以嘗試使用CLOB,但listagg只返回varchar2 =>不然,或者使用12g將varchar2的最大大小增加到32767,這隻會移動限制但是並沒有刪除它 – smnbbrv