155:
156: gTranslateItemsSQL VARCHAR2(32767);
157: gUpdateItemsTLSQL VARCHAR2(32767);
158: gUpdateItemsNonTLSQL VARCHAR2(32767);
159: gAddRootCtxSQL ICX_POR_CTX_SQL_PKG.SQLTab;
160: gUpdateRootCtxSQL ICX_POR_CTX_SQL_PKG.SQLTab;
161:
162: gBaseLanguage fnd_languages.language_code%TYPE;
163: gJobLanguage fnd_languages.language_code%TYPE;
156: gTranslateItemsSQL VARCHAR2(32767);
157: gUpdateItemsTLSQL VARCHAR2(32767);
158: gUpdateItemsNonTLSQL VARCHAR2(32767);
159: gAddRootCtxSQL ICX_POR_CTX_SQL_PKG.SQLTab;
160: gUpdateRootCtxSQL ICX_POR_CTX_SQL_PKG.SQLTab;
161:
162: gBaseLanguage fnd_languages.language_code%TYPE;
163: gJobLanguage fnd_languages.language_code%TYPE;
164: --Bug#2611529 gSupplierId NUMBER;
178: We can't store these in gCategoryInfo since PL/SQL would not
179: allow PL/SQL tables inside PL/SQL tables, so we can only store
180: info about the most recently used category */
181: gCurrentCatId NUMBER;
182: gAddCatCtxSQL ICX_POR_CTX_SQL_PKG.SQLTab;
183: gUpdateCatCtxSQL ICX_POR_CTX_SQL_PKG.SQLTab;
184:
185: /* Debug Handling */
186: procedure Debug(p_message in varchar2) is
179: allow PL/SQL tables inside PL/SQL tables, so we can only store
180: info about the most recently used category */
181: gCurrentCatId NUMBER;
182: gAddCatCtxSQL ICX_POR_CTX_SQL_PKG.SQLTab;
183: gUpdateCatCtxSQL ICX_POR_CTX_SQL_PKG.SQLTab;
184:
185: /* Debug Handling */
186: procedure Debug(p_message in varchar2) is
187: begin
324:
325: /* Constructs the SQL statements used to populate ICX_POR_CTX_TL
326: for a given category */
327: PROCEDURE build_category_ctx_sql(p_category_id IN NUMBER) IS
328: vSQLTab ICX_POR_CTX_SQL_PKG.SQLTab;
329: xErrLoc PLS_INTEGER := 100;
330: BEGIN
331:
332: IF (p_category_id <> gCurrentCatId) THEN
333: gCurrentCatId := p_category_id;
334:
335: -- For Add CTX SQL we want to use rowid where clause
336: xErrLoc := 200;
337: ICX_POR_CTX_SQL_PKG.build_ctx_sql(p_category_id,
338: ICX_POR_CTX_SQL_PKG.ROWID_WHERE_CLAUSE, null,
339: ICX_POR_CTX_SQL_PKG.DEFAULT_MAX_LENGTH,
340: gAddCatCtxSQL, vSQLTab);
341:
334:
335: -- For Add CTX SQL we want to use rowid where clause
336: xErrLoc := 200;
337: ICX_POR_CTX_SQL_PKG.build_ctx_sql(p_category_id,
338: ICX_POR_CTX_SQL_PKG.ROWID_WHERE_CLAUSE, null,
339: ICX_POR_CTX_SQL_PKG.DEFAULT_MAX_LENGTH,
340: gAddCatCtxSQL, vSQLTab);
341:
342: -- For Update CTX SQL we need to use itemid where clause
335: -- For Add CTX SQL we want to use rowid where clause
336: xErrLoc := 200;
337: ICX_POR_CTX_SQL_PKG.build_ctx_sql(p_category_id,
338: ICX_POR_CTX_SQL_PKG.ROWID_WHERE_CLAUSE, null,
339: ICX_POR_CTX_SQL_PKG.DEFAULT_MAX_LENGTH,
340: gAddCatCtxSQL, vSQLTab);
341:
342: -- For Update CTX SQL we need to use itemid where clause
343: xErrLoc := 300;
340: gAddCatCtxSQL, vSQLTab);
341:
342: -- For Update CTX SQL we need to use itemid where clause
343: xErrLoc := 300;
344: ICX_POR_CTX_SQL_PKG.build_ctx_sql(p_category_id,
345: ICX_POR_CTX_SQL_PKG.ITEMID_WHERE_CLAUSE, null,
346: ICX_POR_CTX_SQL_PKG.DEFAULT_MAX_LENGTH, vSQLTab, gUpdateCatCtxSQL);
347:
348: END IF;
341:
342: -- For Update CTX SQL we need to use itemid where clause
343: xErrLoc := 300;
344: ICX_POR_CTX_SQL_PKG.build_ctx_sql(p_category_id,
345: ICX_POR_CTX_SQL_PKG.ITEMID_WHERE_CLAUSE, null,
346: ICX_POR_CTX_SQL_PKG.DEFAULT_MAX_LENGTH, vSQLTab, gUpdateCatCtxSQL);
347:
348: END IF;
349: EXCEPTION
342: -- For Update CTX SQL we need to use itemid where clause
343: xErrLoc := 300;
344: ICX_POR_CTX_SQL_PKG.build_ctx_sql(p_category_id,
345: ICX_POR_CTX_SQL_PKG.ITEMID_WHERE_CLAUSE, null,
346: ICX_POR_CTX_SQL_PKG.DEFAULT_MAX_LENGTH, vSQLTab, gUpdateCatCtxSQL);
347:
348: END IF;
349: EXCEPTION
350: WHEN OTHERS THEN
387: vDescCount PLS_INTEGER := 0;
388: vAllDescCount PLS_INTEGER := 0;
389: vTLDescCount PLS_INTEGER := 0;
390: vTableName VARCHAR2(30);
391: vDescInfo ICX_POR_CTX_SQL_PKG.DescriptorInfo;
392: vDescInfoTab ICX_POR_CTX_SQL_PKG.DescriptorInfoTab;
393: vSearchableDescCount PLS_INTEGER := 0;
394: vSQLTab ICX_POR_CTX_SQL_PKG.SQLTab;
395: BEGIN
388: vAllDescCount PLS_INTEGER := 0;
389: vTLDescCount PLS_INTEGER := 0;
390: vTableName VARCHAR2(30);
391: vDescInfo ICX_POR_CTX_SQL_PKG.DescriptorInfo;
392: vDescInfoTab ICX_POR_CTX_SQL_PKG.DescriptorInfoTab;
393: vSearchableDescCount PLS_INTEGER := 0;
394: vSQLTab ICX_POR_CTX_SQL_PKG.SQLTab;
395: BEGIN
396:
390: vTableName VARCHAR2(30);
391: vDescInfo ICX_POR_CTX_SQL_PKG.DescriptorInfo;
392: vDescInfoTab ICX_POR_CTX_SQL_PKG.DescriptorInfoTab;
393: vSearchableDescCount PLS_INTEGER := 0;
394: vSQLTab ICX_POR_CTX_SQL_PKG.SQLTab;
395: BEGIN
396:
397: vTableName := 'ICX_CAT_EXT_ITEMS_TLP';
398:
592: vUpdateItemsNonTLSQL1 VARCHAR2(32767) := null;
593: vUpdateItemsNonTLSQL2 VARCHAR2(32767) := null;
594: vTranslateItemsSQL1 VARCHAR2(32767) := null;
595: vTranslateItemsSQL2 VARCHAR2(32767) := null;
596: vDescInfo ICX_POR_CTX_SQL_PKG.DescriptorInfo;
597: vDescInfoTab ICX_POR_CTX_SQL_PKG.DescriptorInfoTab;
598: vSQLTab ICX_POR_CTX_SQL_PKG.SQLTab;
599: i pls_integer;
600: CURSOR non_price_root_descriptors_cr(p_category_id NUMBER) IS
593: vUpdateItemsNonTLSQL2 VARCHAR2(32767) := null;
594: vTranslateItemsSQL1 VARCHAR2(32767) := null;
595: vTranslateItemsSQL2 VARCHAR2(32767) := null;
596: vDescInfo ICX_POR_CTX_SQL_PKG.DescriptorInfo;
597: vDescInfoTab ICX_POR_CTX_SQL_PKG.DescriptorInfoTab;
598: vSQLTab ICX_POR_CTX_SQL_PKG.SQLTab;
599: i pls_integer;
600: CURSOR non_price_root_descriptors_cr(p_category_id NUMBER) IS
601: select rt_descriptor_id,
594: vTranslateItemsSQL1 VARCHAR2(32767) := null;
595: vTranslateItemsSQL2 VARCHAR2(32767) := null;
596: vDescInfo ICX_POR_CTX_SQL_PKG.DescriptorInfo;
597: vDescInfoTab ICX_POR_CTX_SQL_PKG.DescriptorInfoTab;
598: vSQLTab ICX_POR_CTX_SQL_PKG.SQLTab;
599: i pls_integer;
600: CURSOR non_price_root_descriptors_cr(p_category_id NUMBER) IS
601: select rt_descriptor_id,
602: type,
744: ' AND rownum = 1 ' ;
745:
746: -- For Add CTX SQL we want to use rowid where clause
747: xErrLoc := 400;
748: ICX_POR_CTX_SQL_PKG.build_ctx_sql(0, vDescInfoTab,
749: ICX_POR_CTX_SQL_PKG.ROWID_WHERE_CLAUSE, null,
750: ICX_POR_CTX_SQL_PKG.DEFAULT_MAX_LENGTH, gAddRootCtxSQL,
751: vSQLTab);
752:
745:
746: -- For Add CTX SQL we want to use rowid where clause
747: xErrLoc := 400;
748: ICX_POR_CTX_SQL_PKG.build_ctx_sql(0, vDescInfoTab,
749: ICX_POR_CTX_SQL_PKG.ROWID_WHERE_CLAUSE, null,
750: ICX_POR_CTX_SQL_PKG.DEFAULT_MAX_LENGTH, gAddRootCtxSQL,
751: vSQLTab);
752:
753: -- For Update CTX SQL we need to use itemid where clause
746: -- For Add CTX SQL we want to use rowid where clause
747: xErrLoc := 400;
748: ICX_POR_CTX_SQL_PKG.build_ctx_sql(0, vDescInfoTab,
749: ICX_POR_CTX_SQL_PKG.ROWID_WHERE_CLAUSE, null,
750: ICX_POR_CTX_SQL_PKG.DEFAULT_MAX_LENGTH, gAddRootCtxSQL,
751: vSQLTab);
752:
753: -- For Update CTX SQL we need to use itemid where clause
754: xErrLoc := 500;
751: vSQLTab);
752:
753: -- For Update CTX SQL we need to use itemid where clause
754: xErrLoc := 500;
755: ICX_POR_CTX_SQL_PKG.build_ctx_sql(0, vDescInfoTab,
756: ICX_POR_CTX_SQL_PKG.ITEMID_WHERE_CLAUSE, null,
757: ICX_POR_CTX_SQL_PKG.DEFAULT_MAX_LENGTH, vSQLTab,
758: gUpdateRootCtxSQL);
759:
752:
753: -- For Update CTX SQL we need to use itemid where clause
754: xErrLoc := 500;
755: ICX_POR_CTX_SQL_PKG.build_ctx_sql(0, vDescInfoTab,
756: ICX_POR_CTX_SQL_PKG.ITEMID_WHERE_CLAUSE, null,
757: ICX_POR_CTX_SQL_PKG.DEFAULT_MAX_LENGTH, vSQLTab,
758: gUpdateRootCtxSQL);
759:
760: EXCEPTION
753: -- For Update CTX SQL we need to use itemid where clause
754: xErrLoc := 500;
755: ICX_POR_CTX_SQL_PKG.build_ctx_sql(0, vDescInfoTab,
756: ICX_POR_CTX_SQL_PKG.ITEMID_WHERE_CLAUSE, null,
757: ICX_POR_CTX_SQL_PKG.DEFAULT_MAX_LENGTH, vSQLTab,
758: gUpdateRootCtxSQL);
759:
760: EXCEPTION
761: WHEN OTHERS THEN