246: , p_pk3_name in VARCHAR2 DEFAULT NULL
247: , p_pk3_num_value in NUMBER DEFAULT NULL
248: , p_pk3_char_value in VARCHAR2 DEFAULT NULL
249: , p_pk3_date_value in DATE DEFAULT NULL
250: , l_tab_resource_id out NOCOPY dbms_sql.Number_Table
251: , l_tab_access_id out NOCOPY dbms_sql.Number_Table
252: )
253: IS
254: l_stmt VARCHAR2(2000);
247: , p_pk3_num_value in NUMBER DEFAULT NULL
248: , p_pk3_char_value in VARCHAR2 DEFAULT NULL
249: , p_pk3_date_value in DATE DEFAULT NULL
250: , l_tab_resource_id out NOCOPY dbms_sql.Number_Table
251: , l_tab_access_id out NOCOPY dbms_sql.Number_Table
252: )
253: IS
254: l_stmt VARCHAR2(2000);
255: l_cursor INTEGER;
334: , JTM_HOOK_UTIL_PKG.g_debug_level_full
335: , 'jtm_message_log_pkg');
336: END IF;
337:
338: l_cursor := dbms_sql.open_cursor;
339: dbms_sql.parse( l_cursor, l_stmt, dbms_sql.v7);
340: dbms_sql.bind_variable( l_cursor, 'P1', l_pk1_value);
341: IF p_pk2_name IS NOT NULL THEN
342: dbms_sql.bind_variable( l_cursor, 'P2', l_pk2_value );
335: , 'jtm_message_log_pkg');
336: END IF;
337:
338: l_cursor := dbms_sql.open_cursor;
339: dbms_sql.parse( l_cursor, l_stmt, dbms_sql.v7);
340: dbms_sql.bind_variable( l_cursor, 'P1', l_pk1_value);
341: IF p_pk2_name IS NOT NULL THEN
342: dbms_sql.bind_variable( l_cursor, 'P2', l_pk2_value );
343: IF p_pk3_name IS NOT NULL THEN
336: END IF;
337:
338: l_cursor := dbms_sql.open_cursor;
339: dbms_sql.parse( l_cursor, l_stmt, dbms_sql.v7);
340: dbms_sql.bind_variable( l_cursor, 'P1', l_pk1_value);
341: IF p_pk2_name IS NOT NULL THEN
342: dbms_sql.bind_variable( l_cursor, 'P2', l_pk2_value );
343: IF p_pk3_name IS NOT NULL THEN
344: dbms_sql.bind_variable( l_cursor, 'P3', l_pk3_value );
338: l_cursor := dbms_sql.open_cursor;
339: dbms_sql.parse( l_cursor, l_stmt, dbms_sql.v7);
340: dbms_sql.bind_variable( l_cursor, 'P1', l_pk1_value);
341: IF p_pk2_name IS NOT NULL THEN
342: dbms_sql.bind_variable( l_cursor, 'P2', l_pk2_value );
343: IF p_pk3_name IS NOT NULL THEN
344: dbms_sql.bind_variable( l_cursor, 'P3', l_pk3_value );
345: END IF;
346: END IF;
340: dbms_sql.bind_variable( l_cursor, 'P1', l_pk1_value);
341: IF p_pk2_name IS NOT NULL THEN
342: dbms_sql.bind_variable( l_cursor, 'P2', l_pk2_value );
343: IF p_pk3_name IS NOT NULL THEN
344: dbms_sql.bind_variable( l_cursor, 'P3', l_pk3_value );
345: END IF;
346: END IF;
347: l_index := 1;
348: dbms_sql.define_array( l_cursor, 1, l_tab_resource_id, 10, l_index);
344: dbms_sql.bind_variable( l_cursor, 'P3', l_pk3_value );
345: END IF;
346: END IF;
347: l_index := 1;
348: dbms_sql.define_array( l_cursor, 1, l_tab_resource_id, 10, l_index);
349: dbms_sql.define_array( l_cursor, 2, l_tab_access_id, 10, l_index);
350: l_count := dbms_sql.execute( l_cursor );
351: LOOP
352: l_count := dbms_sql.fetch_rows(l_cursor);
345: END IF;
346: END IF;
347: l_index := 1;
348: dbms_sql.define_array( l_cursor, 1, l_tab_resource_id, 10, l_index);
349: dbms_sql.define_array( l_cursor, 2, l_tab_access_id, 10, l_index);
350: l_count := dbms_sql.execute( l_cursor );
351: LOOP
352: l_count := dbms_sql.fetch_rows(l_cursor);
353:
346: END IF;
347: l_index := 1;
348: dbms_sql.define_array( l_cursor, 1, l_tab_resource_id, 10, l_index);
349: dbms_sql.define_array( l_cursor, 2, l_tab_access_id, 10, l_index);
350: l_count := dbms_sql.execute( l_cursor );
351: LOOP
352: l_count := dbms_sql.fetch_rows(l_cursor);
353:
354: dbms_sql.column_value( l_cursor, '1', l_tab_resource_id);
348: dbms_sql.define_array( l_cursor, 1, l_tab_resource_id, 10, l_index);
349: dbms_sql.define_array( l_cursor, 2, l_tab_access_id, 10, l_index);
350: l_count := dbms_sql.execute( l_cursor );
351: LOOP
352: l_count := dbms_sql.fetch_rows(l_cursor);
353:
354: dbms_sql.column_value( l_cursor, '1', l_tab_resource_id);
355: dbms_sql.column_value( l_cursor, '2', l_tab_access_id);
356:
350: l_count := dbms_sql.execute( l_cursor );
351: LOOP
352: l_count := dbms_sql.fetch_rows(l_cursor);
353:
354: dbms_sql.column_value( l_cursor, '1', l_tab_resource_id);
355: dbms_sql.column_value( l_cursor, '2', l_tab_access_id);
356:
357: EXIT WHEN l_count <> 10;
358: END LOOP;
351: LOOP
352: l_count := dbms_sql.fetch_rows(l_cursor);
353:
354: dbms_sql.column_value( l_cursor, '1', l_tab_resource_id);
355: dbms_sql.column_value( l_cursor, '2', l_tab_access_id);
356:
357: EXIT WHEN l_count <> 10;
358: END LOOP;
359: dbms_sql.close_cursor( l_cursor );
355: dbms_sql.column_value( l_cursor, '2', l_tab_access_id);
356:
357: EXIT WHEN l_count <> 10;
358: END LOOP;
359: dbms_sql.close_cursor( l_cursor );
360: END Get_Resource_Acc_List;
361:
362: /***
363: Procedure that inserts a record into any ACC table
575: IS
576: l_stmt VARCHAR2(4000);
577: l_cursor INTEGER;
578: l_count INTEGER;
579: l_tab_mobile_user_id dbms_sql.Number_Table;
580: l_tab_access_id dbms_sql.Number_Table;
581: l_pk1_value VARCHAR2(4000);
582: l_pk2_value VARCHAR2(4000);
583: l_pk3_value VARCHAR2(4000);
576: l_stmt VARCHAR2(4000);
577: l_cursor INTEGER;
578: l_count INTEGER;
579: l_tab_mobile_user_id dbms_sql.Number_Table;
580: l_tab_access_id dbms_sql.Number_Table;
581: l_pk1_value VARCHAR2(4000);
582: l_pk2_value VARCHAR2(4000);
583: l_pk3_value VARCHAR2(4000);
584: l_pk1_string VARCHAR2(4000);
634: l_stmt := l_stmt ||' AND ' || p_pk3_name || ' = ' || l_pk3_string;
635: END IF;
636: END IF;
637:
638: l_cursor := dbms_sql.open_cursor;
639:
640: /*** was resource_id provided? ***/
641: IF p_resource_id IS NOT NULL THEN
642: /*** yes -> add p_operator filter on mobile_user_id to WHERE clause ***/
640: /*** was resource_id provided? ***/
641: IF p_resource_id IS NOT NULL THEN
642: /*** yes -> add p_operator filter on mobile_user_id to WHERE clause ***/
643: l_stmt := l_stmt || ' AND RESOURCE_ID ' || l_operator || ' :P4 ';
644: dbms_sql.parse( l_cursor, l_stmt, dbms_sql.v7);
645: dbms_sql.bind_variable( l_cursor, 'P4', p_resource_id );
646: ELSE
647: /*** no -> delete all ACC records ***/
648: dbms_sql.parse( l_cursor, l_stmt, dbms_sql.v7);
641: IF p_resource_id IS NOT NULL THEN
642: /*** yes -> add p_operator filter on mobile_user_id to WHERE clause ***/
643: l_stmt := l_stmt || ' AND RESOURCE_ID ' || l_operator || ' :P4 ';
644: dbms_sql.parse( l_cursor, l_stmt, dbms_sql.v7);
645: dbms_sql.bind_variable( l_cursor, 'P4', p_resource_id );
646: ELSE
647: /*** no -> delete all ACC records ***/
648: dbms_sql.parse( l_cursor, l_stmt, dbms_sql.v7);
649: END IF;
644: dbms_sql.parse( l_cursor, l_stmt, dbms_sql.v7);
645: dbms_sql.bind_variable( l_cursor, 'P4', p_resource_id );
646: ELSE
647: /*** no -> delete all ACC records ***/
648: dbms_sql.parse( l_cursor, l_stmt, dbms_sql.v7);
649: END IF;
650:
651: dbms_sql.bind_variable( l_cursor, 'P1', l_pk1_value );
652: IF p_pk2_name IS NOT NULL THEN
647: /*** no -> delete all ACC records ***/
648: dbms_sql.parse( l_cursor, l_stmt, dbms_sql.v7);
649: END IF;
650:
651: dbms_sql.bind_variable( l_cursor, 'P1', l_pk1_value );
652: IF p_pk2_name IS NOT NULL THEN
653: dbms_sql.bind_variable( l_cursor, 'P2', l_pk2_value );
654: IF p_pk3_name IS NOT NULL THEN
655: dbms_sql.bind_variable( l_cursor, 'P3', l_pk3_value );
649: END IF;
650:
651: dbms_sql.bind_variable( l_cursor, 'P1', l_pk1_value );
652: IF p_pk2_name IS NOT NULL THEN
653: dbms_sql.bind_variable( l_cursor, 'P2', l_pk2_value );
654: IF p_pk3_name IS NOT NULL THEN
655: dbms_sql.bind_variable( l_cursor, 'P3', l_pk3_value );
656: END IF;
657: END IF;
651: dbms_sql.bind_variable( l_cursor, 'P1', l_pk1_value );
652: IF p_pk2_name IS NOT NULL THEN
653: dbms_sql.bind_variable( l_cursor, 'P2', l_pk2_value );
654: IF p_pk3_name IS NOT NULL THEN
655: dbms_sql.bind_variable( l_cursor, 'P3', l_pk3_value );
656: END IF;
657: END IF;
658:
659: l_index := 1;
656: END IF;
657: END IF;
658:
659: l_index := 1;
660: dbms_sql.define_array( l_cursor, 1, l_tab_mobile_user_id, 10, l_index);
661: dbms_sql.define_array( l_cursor, 2, l_tab_access_id, 10, l_index);
662:
663:
664: IF Get_Debug_Level >= JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_SQL THEN
657: END IF;
658:
659: l_index := 1;
660: dbms_sql.define_array( l_cursor, 1, l_tab_mobile_user_id, 10, l_index);
661: dbms_sql.define_array( l_cursor, 2, l_tab_access_id, 10, l_index);
662:
663:
664: IF Get_Debug_Level >= JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_SQL THEN
665: jtm_message_log_pkg.Log_Msg
674: , JTM_HOOK_UTIL_PKG.g_debug_level_full
675: , 'jtm_message_log_pkg');
676: END IF;
677:
678: l_count := dbms_sql.execute( l_cursor );
679: LOOP
680: l_count := dbms_sql.fetch_rows(l_cursor);
681:
682: dbms_sql.column_value( l_cursor, '1', l_tab_mobile_user_id);
676: END IF;
677:
678: l_count := dbms_sql.execute( l_cursor );
679: LOOP
680: l_count := dbms_sql.fetch_rows(l_cursor);
681:
682: dbms_sql.column_value( l_cursor, '1', l_tab_mobile_user_id);
683: dbms_sql.column_value( l_cursor, '2', l_tab_access_id);
684:
678: l_count := dbms_sql.execute( l_cursor );
679: LOOP
680: l_count := dbms_sql.fetch_rows(l_cursor);
681:
682: dbms_sql.column_value( l_cursor, '1', l_tab_mobile_user_id);
683: dbms_sql.column_value( l_cursor, '2', l_tab_access_id);
684:
685: EXIT WHEN l_count <> 10;
686: END LOOP;
679: LOOP
680: l_count := dbms_sql.fetch_rows(l_cursor);
681:
682: dbms_sql.column_value( l_cursor, '1', l_tab_mobile_user_id);
683: dbms_sql.column_value( l_cursor, '2', l_tab_access_id);
684:
685: EXIT WHEN l_count <> 10;
686: END LOOP;
687: dbms_sql.close_cursor( l_cursor );
683: dbms_sql.column_value( l_cursor, '2', l_tab_access_id);
684:
685: EXIT WHEN l_count <> 10;
686: END LOOP;
687: dbms_sql.close_cursor( l_cursor );
688:
689: /*** were any records deleted? ***/
690: IF l_tab_mobile_user_id.COUNT > 0 THEN
691: /*** yes -> loop over arrays containing mobile_user_id and access_id and notify oLite ***/
780: END IF;
781:
782: EXCEPTION WHEN OTHERS THEN
783: IF l_cursor <> 0 THEN
784: dbms_sql.close_cursor( l_cursor );
785: END IF;
786: RAISE;
787: END Delete_Acc;
788: