15:
16: -- Internal representation of a jrad grouping
17: TYPE GROUPING IS RECORD ( parentId NUMBER,
18: ns VARCHAR2(5),
19: tagName jdr_components.comp_grouping%TYPE,
20: childId NUMBER );
21:
22: -- Internal representation of a jrad component
23: TYPE ELEM IS RECORD ( id NUMBER,
21:
22: -- Internal representation of a jrad component
23: TYPE ELEM IS RECORD ( id NUMBER,
24: ns VARCHAR2(5),
25: tagName jdr_components.comp_element%TYPE );
26:
27: -- Internal representation of a jrad document
28: TYPE DOC IS RECORD ( id NUMBER,
29: fullPath jdr_components.comp_ref%TYPE,
25: tagName jdr_components.comp_element%TYPE );
26:
27: -- Internal representation of a jrad document
28: TYPE DOC IS RECORD ( id NUMBER,
29: fullPath jdr_components.comp_ref%TYPE,
30: lang VARCHAR2(5),
31: topElemId NUMBER,
32: parentId NUMBER);
33:
45:
46: -- Tables containing a database component's properties in bulk-insert
47: -- compatible format
48: TYPE DB_COMPONENT_L1 IS TABLE OF NUMBER;
49: TYPE DB_COMPONENT_L2 IS TABLE OF jdr_components.comp_seq%TYPE;
50: TYPE DB_COMPONENT_L3 IS TABLE OF jdr_components.comp_level%TYPE;
51: TYPE DB_COMPONENT_L4 IS TABLE OF jdr_components.comp_grouping%TYPE;
52: TYPE DB_COMPONENT_L5 IS TABLE OF jdr_components.comp_element%TYPE;
53: TYPE DB_COMPONENT_L6 IS TABLE OF jdr_components.comp_id%TYPE;
46: -- Tables containing a database component's properties in bulk-insert
47: -- compatible format
48: TYPE DB_COMPONENT_L1 IS TABLE OF NUMBER;
49: TYPE DB_COMPONENT_L2 IS TABLE OF jdr_components.comp_seq%TYPE;
50: TYPE DB_COMPONENT_L3 IS TABLE OF jdr_components.comp_level%TYPE;
51: TYPE DB_COMPONENT_L4 IS TABLE OF jdr_components.comp_grouping%TYPE;
52: TYPE DB_COMPONENT_L5 IS TABLE OF jdr_components.comp_element%TYPE;
53: TYPE DB_COMPONENT_L6 IS TABLE OF jdr_components.comp_id%TYPE;
54: TYPE DB_COMPONENT_L7 IS TABLE OF jdr_components.comp_ref%TYPE;
47: -- compatible format
48: TYPE DB_COMPONENT_L1 IS TABLE OF NUMBER;
49: TYPE DB_COMPONENT_L2 IS TABLE OF jdr_components.comp_seq%TYPE;
50: TYPE DB_COMPONENT_L3 IS TABLE OF jdr_components.comp_level%TYPE;
51: TYPE DB_COMPONENT_L4 IS TABLE OF jdr_components.comp_grouping%TYPE;
52: TYPE DB_COMPONENT_L5 IS TABLE OF jdr_components.comp_element%TYPE;
53: TYPE DB_COMPONENT_L6 IS TABLE OF jdr_components.comp_id%TYPE;
54: TYPE DB_COMPONENT_L7 IS TABLE OF jdr_components.comp_ref%TYPE;
55: TYPE DB_COMPONENT_L8 IS TABLE OF jdr_components.comp_extends%TYPE;
48: TYPE DB_COMPONENT_L1 IS TABLE OF NUMBER;
49: TYPE DB_COMPONENT_L2 IS TABLE OF jdr_components.comp_seq%TYPE;
50: TYPE DB_COMPONENT_L3 IS TABLE OF jdr_components.comp_level%TYPE;
51: TYPE DB_COMPONENT_L4 IS TABLE OF jdr_components.comp_grouping%TYPE;
52: TYPE DB_COMPONENT_L5 IS TABLE OF jdr_components.comp_element%TYPE;
53: TYPE DB_COMPONENT_L6 IS TABLE OF jdr_components.comp_id%TYPE;
54: TYPE DB_COMPONENT_L7 IS TABLE OF jdr_components.comp_ref%TYPE;
55: TYPE DB_COMPONENT_L8 IS TABLE OF jdr_components.comp_extends%TYPE;
56: TYPE DB_COMPONENT_L9 IS TABLE OF jdr_components.comp_use%TYPE;
49: TYPE DB_COMPONENT_L2 IS TABLE OF jdr_components.comp_seq%TYPE;
50: TYPE DB_COMPONENT_L3 IS TABLE OF jdr_components.comp_level%TYPE;
51: TYPE DB_COMPONENT_L4 IS TABLE OF jdr_components.comp_grouping%TYPE;
52: TYPE DB_COMPONENT_L5 IS TABLE OF jdr_components.comp_element%TYPE;
53: TYPE DB_COMPONENT_L6 IS TABLE OF jdr_components.comp_id%TYPE;
54: TYPE DB_COMPONENT_L7 IS TABLE OF jdr_components.comp_ref%TYPE;
55: TYPE DB_COMPONENT_L8 IS TABLE OF jdr_components.comp_extends%TYPE;
56: TYPE DB_COMPONENT_L9 IS TABLE OF jdr_components.comp_use%TYPE;
57: TYPE DB_COMPONENT_L10 IS TABLE OF jdr_components.comp_comment%TYPE;
50: TYPE DB_COMPONENT_L3 IS TABLE OF jdr_components.comp_level%TYPE;
51: TYPE DB_COMPONENT_L4 IS TABLE OF jdr_components.comp_grouping%TYPE;
52: TYPE DB_COMPONENT_L5 IS TABLE OF jdr_components.comp_element%TYPE;
53: TYPE DB_COMPONENT_L6 IS TABLE OF jdr_components.comp_id%TYPE;
54: TYPE DB_COMPONENT_L7 IS TABLE OF jdr_components.comp_ref%TYPE;
55: TYPE DB_COMPONENT_L8 IS TABLE OF jdr_components.comp_extends%TYPE;
56: TYPE DB_COMPONENT_L9 IS TABLE OF jdr_components.comp_use%TYPE;
57: TYPE DB_COMPONENT_L10 IS TABLE OF jdr_components.comp_comment%TYPE;
58:
51: TYPE DB_COMPONENT_L4 IS TABLE OF jdr_components.comp_grouping%TYPE;
52: TYPE DB_COMPONENT_L5 IS TABLE OF jdr_components.comp_element%TYPE;
53: TYPE DB_COMPONENT_L6 IS TABLE OF jdr_components.comp_id%TYPE;
54: TYPE DB_COMPONENT_L7 IS TABLE OF jdr_components.comp_ref%TYPE;
55: TYPE DB_COMPONENT_L8 IS TABLE OF jdr_components.comp_extends%TYPE;
56: TYPE DB_COMPONENT_L9 IS TABLE OF jdr_components.comp_use%TYPE;
57: TYPE DB_COMPONENT_L10 IS TABLE OF jdr_components.comp_comment%TYPE;
58:
59: -- Tables containing a database attribute's properties in bulk-insert
52: TYPE DB_COMPONENT_L5 IS TABLE OF jdr_components.comp_element%TYPE;
53: TYPE DB_COMPONENT_L6 IS TABLE OF jdr_components.comp_id%TYPE;
54: TYPE DB_COMPONENT_L7 IS TABLE OF jdr_components.comp_ref%TYPE;
55: TYPE DB_COMPONENT_L8 IS TABLE OF jdr_components.comp_extends%TYPE;
56: TYPE DB_COMPONENT_L9 IS TABLE OF jdr_components.comp_use%TYPE;
57: TYPE DB_COMPONENT_L10 IS TABLE OF jdr_components.comp_comment%TYPE;
58:
59: -- Tables containing a database attribute's properties in bulk-insert
60: -- compatible format
53: TYPE DB_COMPONENT_L6 IS TABLE OF jdr_components.comp_id%TYPE;
54: TYPE DB_COMPONENT_L7 IS TABLE OF jdr_components.comp_ref%TYPE;
55: TYPE DB_COMPONENT_L8 IS TABLE OF jdr_components.comp_extends%TYPE;
56: TYPE DB_COMPONENT_L9 IS TABLE OF jdr_components.comp_use%TYPE;
57: TYPE DB_COMPONENT_L10 IS TABLE OF jdr_components.comp_comment%TYPE;
58:
59: -- Tables containing a database attribute's properties in bulk-insert
60: -- compatible format
61: TYPE DB_ATTRIBUTE_L1 IS TABLE OF jdr_attributes.att_comp_seq%TYPE;
114: p_comp_num IN NUMBER,
115: p_seq IN PLS_INTEGER)
116: IS
117: seq PLS_INTEGER := p_seq;
118: l_comp_seq jdr_components.comp_seq%TYPE := compList2(p_comp_num); --comp_seq
119: BEGIN
120: -- set xmlns
121: attList1.EXTEND;
122: attList2.EXTEND;
276:
277:
278: -- Build the entire list of components, starting with a given element and
279: -- recursing through all its children. This list closely represents the
280: -- jdr_components table structure in the repository.
281: --
282: -- Note: This is a recursive procedure, which assumes that the ELEMENT_TABLE
283: -- mElems has been sorted by elemId and grouping.
284: --
526: IS
527: i PLS_INTEGER;
528: BEGIN
529: FORALL i in compList1.FIRST..compList1.LAST
530: INSERT INTO jdr_components
531: (COMP_DOCID, COMP_SEQ , COMP_LEVEL, COMP_GROUPING, COMP_ELEMENT,
532: COMP_ID, COMP_REF, COMP_EXTENDS, COMP_USE, COMP_COMMENT)
533: VALUES
534: (p_docid, compList2(i), compList3(i), compList4(i), compList5(i),
638: FUNCTION createChildDocument(
639: p_fullPathName VARCHAR2) RETURN DOCUMENT
640: IS
641: pkgDocId NUMBER;
642: pkgName jdr_components.comp_ref%TYPE;
643: BEGIN
644: -- Determine whether the package file exists in the repository
645: pkgName := substr(p_fullPathName,
646: 1,
819: docSeq,
820: 'DOCUMENT');
821: IF isDuplicate
822: THEN
823: -- Delete from jdr_attribute and jdr_components table
824: DELETE jdr_attributes WHERE att_comp_docid = db_docid;
825: DELETE jdr_components WHERE comp_docid = db_docid;
826: END IF;
827: END IF;
821: IF isDuplicate
822: THEN
823: -- Delete from jdr_attribute and jdr_components table
824: DELETE jdr_attributes WHERE att_comp_docid = db_docid;
825: DELETE jdr_components WHERE comp_docid = db_docid;
826: END IF;
827: END IF;
828: -- Bulk Insert the components/attributes
829: insertComponents(db_docid);