1360:
1361: sqls := 'lock table ' || combtbl.application_table_name;
1362: sqls := sqls || ' in row share mode';
1363:
1364: fnd_dsql.init;
1365: fnd_dsql.add_text(sqls);
1366: if(FND_FLEX_SERVER1.x_dsql_execute < 0) THEN
1367: GOTO return_false;
1368: end if;
1361: sqls := 'lock table ' || combtbl.application_table_name;
1362: sqls := sqls || ' in row share mode';
1363:
1364: fnd_dsql.init;
1365: fnd_dsql.add_text(sqls);
1366: if(FND_FLEX_SERVER1.x_dsql_execute < 0) THEN
1367: GOTO return_false;
1368: end if;
1369:
1408: ccid := ccid_inp;
1409: else
1410: sqls := 'select to_char(' || combtbl.application_table_name;
1411: sqls := sqls || '_S.NEXTVAL) from dual';
1412: fnd_dsql.init;
1413: fnd_dsql.add_text(sqls);
1414: if(FND_FLEX_SERVER1.x_dsql_select_one(ccid_string) <> 1) THEN
1415: GOTO return_false;
1416: end if;
1409: else
1410: sqls := 'select to_char(' || combtbl.application_table_name;
1411: sqls := sqls || '_S.NEXTVAL) from dual';
1412: fnd_dsql.init;
1413: fnd_dsql.add_text(sqls);
1414: if(FND_FLEX_SERVER1.x_dsql_select_one(ccid_string) <> 1) THEN
1415: GOTO return_false;
1416: end if;
1417: ccid := to_number(ccid_string);
1436: if(NOT maintmode) then
1437:
1438: -- Build a SQL statement to do the insert.
1439: --
1440: fnd_dsql.init;
1441: sqls := 'insert into ' || combtbl.application_table_name || ' (';
1442: sqls := sqls || combtbl.unique_id_column_name;
1443: if(combtbl.set_defining_column_name is not null) then
1444: sqls := sqls || ', ' || combtbl.set_defining_column_name;
1456: end loop;
1457: sqls := sqls || ') values (';
1458:
1459: -- So far the table name and the column names.
1460: fnd_dsql.add_text(sqls);
1461:
1462: fnd_dsql.add_bind(ccid);
1463:
1464: if(combtbl.set_defining_column_name is not null) THEN
1458:
1459: -- So far the table name and the column names.
1460: fnd_dsql.add_text(sqls);
1461:
1462: fnd_dsql.add_bind(ccid);
1463:
1464: if(combtbl.set_defining_column_name is not null) THEN
1465: fnd_dsql.add_text(',');
1466: fnd_dsql.add_bind(structnum);
1461:
1462: fnd_dsql.add_bind(ccid);
1463:
1464: if(combtbl.set_defining_column_name is not null) THEN
1465: fnd_dsql.add_text(',');
1466: fnd_dsql.add_bind(structnum);
1467: end if;
1468:
1469: fnd_dsql.add_text(',');
1462: fnd_dsql.add_bind(ccid);
1463:
1464: if(combtbl.set_defining_column_name is not null) THEN
1465: fnd_dsql.add_text(',');
1466: fnd_dsql.add_bind(structnum);
1467: end if;
1468:
1469: fnd_dsql.add_text(',');
1470: fnd_dsql.add_bind(dvalues.enabled_flag);
1465: fnd_dsql.add_text(',');
1466: fnd_dsql.add_bind(structnum);
1467: end if;
1468:
1469: fnd_dsql.add_text(',');
1470: fnd_dsql.add_bind(dvalues.enabled_flag);
1471:
1472: fnd_dsql.add_text(',');
1473: fnd_dsql.add_bind(dvalues.summary_flag);
1466: fnd_dsql.add_bind(structnum);
1467: end if;
1468:
1469: fnd_dsql.add_text(',');
1470: fnd_dsql.add_bind(dvalues.enabled_flag);
1471:
1472: fnd_dsql.add_text(',');
1473: fnd_dsql.add_bind(dvalues.summary_flag);
1474:
1468:
1469: fnd_dsql.add_text(',');
1470: fnd_dsql.add_bind(dvalues.enabled_flag);
1471:
1472: fnd_dsql.add_text(',');
1473: fnd_dsql.add_bind(dvalues.summary_flag);
1474:
1475: fnd_dsql.add_text(',');
1476: fnd_dsql.add_bind(dvalues.start_valid);
1469: fnd_dsql.add_text(',');
1470: fnd_dsql.add_bind(dvalues.enabled_flag);
1471:
1472: fnd_dsql.add_text(',');
1473: fnd_dsql.add_bind(dvalues.summary_flag);
1474:
1475: fnd_dsql.add_text(',');
1476: fnd_dsql.add_bind(dvalues.start_valid);
1477:
1471:
1472: fnd_dsql.add_text(',');
1473: fnd_dsql.add_bind(dvalues.summary_flag);
1474:
1475: fnd_dsql.add_text(',');
1476: fnd_dsql.add_bind(dvalues.start_valid);
1477:
1478: fnd_dsql.add_text(',');
1479: fnd_dsql.add_bind(dvalues.end_valid);
1472: fnd_dsql.add_text(',');
1473: fnd_dsql.add_bind(dvalues.summary_flag);
1474:
1475: fnd_dsql.add_text(',');
1476: fnd_dsql.add_bind(dvalues.start_valid);
1477:
1478: fnd_dsql.add_text(',');
1479: fnd_dsql.add_bind(dvalues.end_valid);
1480:
1474:
1475: fnd_dsql.add_text(',');
1476: fnd_dsql.add_bind(dvalues.start_valid);
1477:
1478: fnd_dsql.add_text(',');
1479: fnd_dsql.add_bind(dvalues.end_valid);
1480:
1481: fnd_dsql.add_text(',sysdate,');
1482: fnd_dsql.add_bind(user_id);
1475: fnd_dsql.add_text(',');
1476: fnd_dsql.add_bind(dvalues.start_valid);
1477:
1478: fnd_dsql.add_text(',');
1479: fnd_dsql.add_bind(dvalues.end_valid);
1480:
1481: fnd_dsql.add_text(',sysdate,');
1482: fnd_dsql.add_bind(user_id);
1483:
1477:
1478: fnd_dsql.add_text(',');
1479: fnd_dsql.add_bind(dvalues.end_valid);
1480:
1481: fnd_dsql.add_text(',sysdate,');
1482: fnd_dsql.add_bind(user_id);
1483:
1484: for i in 1..dquals.nquals LOOP
1485: fnd_dsql.add_text(',');
1478: fnd_dsql.add_text(',');
1479: fnd_dsql.add_bind(dvalues.end_valid);
1480:
1481: fnd_dsql.add_text(',sysdate,');
1482: fnd_dsql.add_bind(user_id);
1483:
1484: for i in 1..dquals.nquals LOOP
1485: fnd_dsql.add_text(',');
1486: fnd_dsql.add_bind(dquals.sq_values(i));
1481: fnd_dsql.add_text(',sysdate,');
1482: fnd_dsql.add_bind(user_id);
1483:
1484: for i in 1..dquals.nquals LOOP
1485: fnd_dsql.add_text(',');
1486: fnd_dsql.add_bind(dquals.sq_values(i));
1487: end loop;
1488:
1489: for i in 1..nsegs loop
1482: fnd_dsql.add_bind(user_id);
1483:
1484: for i in 1..dquals.nquals LOOP
1485: fnd_dsql.add_text(',');
1486: fnd_dsql.add_bind(dquals.sq_values(i));
1487: end loop;
1488:
1489: for i in 1..nsegs loop
1490: if(segids(i) is not null) THEN
1487: end loop;
1488:
1489: for i in 1..nsegs loop
1490: if(segids(i) is not null) THEN
1491: fnd_dsql.add_text(',');
1492: --
1493: -- This will call fnd_dsql.add_bind
1494: --
1495: fnd_flex_server1.x_compare_clause
1489: for i in 1..nsegs loop
1490: if(segids(i) is not null) THEN
1491: fnd_dsql.add_text(',');
1492: --
1493: -- This will call fnd_dsql.add_bind
1494: --
1495: fnd_flex_server1.x_compare_clause
1496: (combtypes(i),
1497: combcols(i), segids(i), FND_FLEX_SERVER1.VC_ID,
1497: combcols(i), segids(i), FND_FLEX_SERVER1.VC_ID,
1498: segfmts.vs_format(i), segfmts.vs_maxsize(i));
1499: end if;
1500: end loop;
1501: fnd_dsql.add_text(')');
1502:
1503: --
1504: -- Finally do the insert
1505: --
2406: IF (l_awc IS NULL) THEN
2407: RETURN(TRUE);
2408: END IF;
2409:
2410: fnd_dsql.add_text(' and (');
2411:
2412: l_pos2 := 0;
2413: l_pos1 := Instr(l_awc, '''', l_pos2 + 1, 1);
2414: WHILE (l_pos1 > 0) LOOP
2414: WHILE (l_pos1 > 0) LOOP
2415: --
2416: -- Copy upto single quote.
2417: --
2418: fnd_dsql.add_text(Substr(l_awc, l_pos2 + 1, (l_pos1 - l_pos2) - 1));
2419:
2420: --
2421: -- Find the closing quote. Handle single quote escaping.
2422: --
2433: fnd_message.set_token('CLAUSE', Substr(l_awc, 1, 1000));
2434: RETURN(FALSE);
2435: END IF;
2436:
2437: fnd_dsql.add_bind(REPLACE(Substr(l_awc, l_pos1 + 1, (l_pos2-l_pos1)- 1),
2438: '''''', ''''));
2439:
2440: l_pos1 := Instr(l_awc, '''', l_pos2 + 1, 1);
2441: END LOOP;
2439:
2440: l_pos1 := Instr(l_awc, '''', l_pos2 + 1, 1);
2441: END LOOP;
2442:
2443: fnd_dsql.add_text(Substr(l_awc, l_pos2 + 1, l_awc_len - l_pos2));
2444: fnd_dsql.add_text(')');
2445:
2446: RETURN(TRUE);
2447: EXCEPTION
2440: l_pos1 := Instr(l_awc, '''', l_pos2 + 1, 1);
2441: END LOOP;
2442:
2443: fnd_dsql.add_text(Substr(l_awc, l_pos2 + 1, l_awc_len - l_pos2));
2444: fnd_dsql.add_text(')');
2445:
2446: RETURN(TRUE);
2447: EXCEPTION
2448: WHEN OTHERS THEN
2492:
2493: -- Build SQL statement to select ccid, enabled information, segment columns,
2494: -- qualifiers, and extra cols in that order.
2495: --
2496: fnd_dsql.init;
2497:
2498: sqls := 'select to_char(' || combtbl.unique_id_column_name || '), ';
2499: sqls := sqls || 'nvl(ENABLED_FLAG, ''Y''), nvl(SUMMARY_FLAG, ''N''), ';
2500: sqls := sqls || 'to_char(START_DATE_ACTIVE, ''' ||
2522: end if;
2523:
2524: sqls := sqls || ' = ';
2525:
2526: fnd_dsql.add_text(sqls);
2527: fnd_dsql.add_bind(structnum);
2528:
2529: -- If CCID input select by CCID, otherwise select by segment ids.
2530: --
2523:
2524: sqls := sqls || ' = ';
2525:
2526: fnd_dsql.add_text(sqls);
2527: fnd_dsql.add_bind(structnum);
2528:
2529: -- If CCID input select by CCID, otherwise select by segment ids.
2530: --
2531: if(ccid is not null) THEN
2528:
2529: -- If CCID input select by CCID, otherwise select by segment ids.
2530: --
2531: if(ccid is not null) THEN
2532: fnd_dsql.add_text(' and ' || combtbl.unique_id_column_name || ' = ');
2533: fnd_dsql.add_bind(ccid);
2534: ELSE
2535: for i in 1..nsegs LOOP
2536: fnd_dsql.add_text(' and (' || combcols(i));
2529: -- If CCID input select by CCID, otherwise select by segment ids.
2530: --
2531: if(ccid is not null) THEN
2532: fnd_dsql.add_text(' and ' || combtbl.unique_id_column_name || ' = ');
2533: fnd_dsql.add_bind(ccid);
2534: ELSE
2535: for i in 1..nsegs LOOP
2536: fnd_dsql.add_text(' and (' || combcols(i));
2537: if(segids(i) is null) THEN
2532: fnd_dsql.add_text(' and ' || combtbl.unique_id_column_name || ' = ');
2533: fnd_dsql.add_bind(ccid);
2534: ELSE
2535: for i in 1..nsegs LOOP
2536: fnd_dsql.add_text(' and (' || combcols(i));
2537: if(segids(i) is null) THEN
2538: fnd_dsql.add_text(' is null)');
2539: else
2540: fnd_dsql.add_text(' = ');
2534: ELSE
2535: for i in 1..nsegs LOOP
2536: fnd_dsql.add_text(' and (' || combcols(i));
2537: if(segids(i) is null) THEN
2538: fnd_dsql.add_text(' is null)');
2539: else
2540: fnd_dsql.add_text(' = ');
2541: --
2542: -- This will call fnd_dsql.add_bind
2536: fnd_dsql.add_text(' and (' || combcols(i));
2537: if(segids(i) is null) THEN
2538: fnd_dsql.add_text(' is null)');
2539: else
2540: fnd_dsql.add_text(' = ');
2541: --
2542: -- This will call fnd_dsql.add_bind
2543: --
2544: fnd_flex_server1.x_compare_clause
2538: fnd_dsql.add_text(' is null)');
2539: else
2540: fnd_dsql.add_text(' = ');
2541: --
2542: -- This will call fnd_dsql.add_bind
2543: --
2544: fnd_flex_server1.x_compare_clause
2545: (combtypes(i),
2546: combcols(i), segids(i), FND_FLEX_SERVER1.VC_ID,
2545: (combtypes(i),
2546: combcols(i), segids(i), FND_FLEX_SERVER1.VC_ID,
2547: segfmts.vs_format(i), segfmts.vs_maxsize(i));
2548:
2549: fnd_dsql.add_text(')');
2550: end if;
2551: end loop;
2552: if(where_cl is not null) THEN
2553: --
2562: -- Do the lookup
2563: --
2564:
2565: --
2566: -- This will use the sql string stored in fnd_dsql package.
2567: --
2568: nrecords := fnd_flex_server1.x_dsql_select(nsegs + nquals + nxcols + 5,
2569: colvals);
2570:
2728:
2729: sqls := 'lock table ' || combtbl.application_table_name;
2730: sqls := sqls || ' in row share mode';
2731:
2732: fnd_dsql.init;
2733: fnd_dsql.add_text(sqls);
2734: if(FND_FLEX_SERVER1.x_dsql_execute < 0) then
2735: return(FALSE);
2736: end if;
2729: sqls := 'lock table ' || combtbl.application_table_name;
2730: sqls := sqls || ' in row share mode';
2731:
2732: fnd_dsql.init;
2733: fnd_dsql.add_text(sqls);
2734: if(FND_FLEX_SERVER1.x_dsql_execute < 0) then
2735: return(FALSE);
2736: end if;
2737:
2774: ccid := ccid_inp;
2775: else
2776: sqls := 'select to_char(' || combtbl.application_table_name;
2777: sqls := sqls || '_S.NEXTVAL) from dual';
2778: fnd_dsql.init;
2779: fnd_dsql.add_text(sqls);
2780: if(FND_FLEX_SERVER1.x_dsql_select_one(ccid_string) <> 1) then
2781: return(FALSE);
2782: end if;
2775: else
2776: sqls := 'select to_char(' || combtbl.application_table_name;
2777: sqls := sqls || '_S.NEXTVAL) from dual';
2778: fnd_dsql.init;
2779: fnd_dsql.add_text(sqls);
2780: if(FND_FLEX_SERVER1.x_dsql_select_one(ccid_string) <> 1) then
2781: return(FALSE);
2782: end if;
2783: ccid := to_number(ccid_string);
2802: if(NOT maintmode) then
2803:
2804: -- Build a SQL statement to do the insert.
2805: --
2806: fnd_dsql.init;
2807: sqls := 'insert into ' || combtbl.application_table_name || ' (';
2808: sqls := sqls || combtbl.unique_id_column_name;
2809: if(combtbl.set_defining_column_name is not null) then
2810: sqls := sqls || ', ' || combtbl.set_defining_column_name;
2822: end loop;
2823: sqls := sqls || ') values (';
2824:
2825: -- So far the table name and the column names.
2826: fnd_dsql.add_text(sqls);
2827:
2828: fnd_dsql.add_bind(ccid);
2829:
2830: if(combtbl.set_defining_column_name is not null) THEN
2824:
2825: -- So far the table name and the column names.
2826: fnd_dsql.add_text(sqls);
2827:
2828: fnd_dsql.add_bind(ccid);
2829:
2830: if(combtbl.set_defining_column_name is not null) THEN
2831: fnd_dsql.add_text(',');
2832: fnd_dsql.add_bind(structnum);
2827:
2828: fnd_dsql.add_bind(ccid);
2829:
2830: if(combtbl.set_defining_column_name is not null) THEN
2831: fnd_dsql.add_text(',');
2832: fnd_dsql.add_bind(structnum);
2833: end if;
2834:
2835: fnd_dsql.add_text(',');
2828: fnd_dsql.add_bind(ccid);
2829:
2830: if(combtbl.set_defining_column_name is not null) THEN
2831: fnd_dsql.add_text(',');
2832: fnd_dsql.add_bind(structnum);
2833: end if;
2834:
2835: fnd_dsql.add_text(',');
2836: fnd_dsql.add_bind(dvalues.enabled_flag);
2831: fnd_dsql.add_text(',');
2832: fnd_dsql.add_bind(structnum);
2833: end if;
2834:
2835: fnd_dsql.add_text(',');
2836: fnd_dsql.add_bind(dvalues.enabled_flag);
2837:
2838: fnd_dsql.add_text(',');
2839: fnd_dsql.add_bind(dvalues.summary_flag);
2832: fnd_dsql.add_bind(structnum);
2833: end if;
2834:
2835: fnd_dsql.add_text(',');
2836: fnd_dsql.add_bind(dvalues.enabled_flag);
2837:
2838: fnd_dsql.add_text(',');
2839: fnd_dsql.add_bind(dvalues.summary_flag);
2840:
2834:
2835: fnd_dsql.add_text(',');
2836: fnd_dsql.add_bind(dvalues.enabled_flag);
2837:
2838: fnd_dsql.add_text(',');
2839: fnd_dsql.add_bind(dvalues.summary_flag);
2840:
2841: fnd_dsql.add_text(',');
2842: fnd_dsql.add_bind(dvalues.start_valid);
2835: fnd_dsql.add_text(',');
2836: fnd_dsql.add_bind(dvalues.enabled_flag);
2837:
2838: fnd_dsql.add_text(',');
2839: fnd_dsql.add_bind(dvalues.summary_flag);
2840:
2841: fnd_dsql.add_text(',');
2842: fnd_dsql.add_bind(dvalues.start_valid);
2843:
2837:
2838: fnd_dsql.add_text(',');
2839: fnd_dsql.add_bind(dvalues.summary_flag);
2840:
2841: fnd_dsql.add_text(',');
2842: fnd_dsql.add_bind(dvalues.start_valid);
2843:
2844: fnd_dsql.add_text(',');
2845: fnd_dsql.add_bind(dvalues.end_valid);
2838: fnd_dsql.add_text(',');
2839: fnd_dsql.add_bind(dvalues.summary_flag);
2840:
2841: fnd_dsql.add_text(',');
2842: fnd_dsql.add_bind(dvalues.start_valid);
2843:
2844: fnd_dsql.add_text(',');
2845: fnd_dsql.add_bind(dvalues.end_valid);
2846:
2840:
2841: fnd_dsql.add_text(',');
2842: fnd_dsql.add_bind(dvalues.start_valid);
2843:
2844: fnd_dsql.add_text(',');
2845: fnd_dsql.add_bind(dvalues.end_valid);
2846:
2847: fnd_dsql.add_text(',sysdate,');
2848: fnd_dsql.add_bind(user_id);
2841: fnd_dsql.add_text(',');
2842: fnd_dsql.add_bind(dvalues.start_valid);
2843:
2844: fnd_dsql.add_text(',');
2845: fnd_dsql.add_bind(dvalues.end_valid);
2846:
2847: fnd_dsql.add_text(',sysdate,');
2848: fnd_dsql.add_bind(user_id);
2849:
2843:
2844: fnd_dsql.add_text(',');
2845: fnd_dsql.add_bind(dvalues.end_valid);
2846:
2847: fnd_dsql.add_text(',sysdate,');
2848: fnd_dsql.add_bind(user_id);
2849:
2850: for i in 1..dquals.nquals LOOP
2851: fnd_dsql.add_text(',');
2844: fnd_dsql.add_text(',');
2845: fnd_dsql.add_bind(dvalues.end_valid);
2846:
2847: fnd_dsql.add_text(',sysdate,');
2848: fnd_dsql.add_bind(user_id);
2849:
2850: for i in 1..dquals.nquals LOOP
2851: fnd_dsql.add_text(',');
2852: fnd_dsql.add_bind(dquals.sq_values(i));
2847: fnd_dsql.add_text(',sysdate,');
2848: fnd_dsql.add_bind(user_id);
2849:
2850: for i in 1..dquals.nquals LOOP
2851: fnd_dsql.add_text(',');
2852: fnd_dsql.add_bind(dquals.sq_values(i));
2853: end loop;
2854:
2855: for i in 1..nsegs loop
2848: fnd_dsql.add_bind(user_id);
2849:
2850: for i in 1..dquals.nquals LOOP
2851: fnd_dsql.add_text(',');
2852: fnd_dsql.add_bind(dquals.sq_values(i));
2853: end loop;
2854:
2855: for i in 1..nsegs loop
2856: if(segids(i) is not null) THEN
2853: end loop;
2854:
2855: for i in 1..nsegs loop
2856: if(segids(i) is not null) THEN
2857: fnd_dsql.add_text(',');
2858: --
2859: -- This will call fnd_dsql.add_bind
2860: --
2861: fnd_flex_server1.x_compare_clause
2855: for i in 1..nsegs loop
2856: if(segids(i) is not null) THEN
2857: fnd_dsql.add_text(',');
2858: --
2859: -- This will call fnd_dsql.add_bind
2860: --
2861: fnd_flex_server1.x_compare_clause
2862: (combtypes(i),
2863: combcols(i), segids(i), FND_FLEX_SERVER1.VC_ID,
2863: combcols(i), segids(i), FND_FLEX_SERVER1.VC_ID,
2864: segfmts.vs_format(i), segfmts.vs_maxsize(i));
2865: end if;
2866: end loop;
2867: fnd_dsql.add_text(')');
2868:
2869: --
2870: -- Finally do the insert
2871: --