209:
210: -------------------------------------------------------------------
211: -- CREATE DYNAMIC SQL CURSOR AND EXECUTE
212: -------------------------------------------------------------------
213: l_sqlCursor := DBMS_SQL.open_cursor;
214: IF l_debug_level > 0 THEN
215: oe_debug_pub.add( 'FETCH_ATTRIBUTE_VALUES:CURSOR OPEN OK' ) ;
216: END IF;
217:
214: IF l_debug_level > 0 THEN
215: oe_debug_pub.add( 'FETCH_ATTRIBUTE_VALUES:CURSOR OPEN OK' ) ;
216: END IF;
217:
218: DBMS_SQL.parse(l_sqlCursor, l_entity_sql, DBMS_SQL.NATIVE);
219:
220: DBMS_SQL.bind_variable(l_sqlCursor, 'p_pk1_value',p_pk1_value );
221: if (l_pk2_column IS NOT NULL) then
222: DBMS_SQL.bind_variable(l_sqlCursor, 'p_pk2_value',p_pk2_value );
216: END IF;
217:
218: DBMS_SQL.parse(l_sqlCursor, l_entity_sql, DBMS_SQL.NATIVE);
219:
220: DBMS_SQL.bind_variable(l_sqlCursor, 'p_pk1_value',p_pk1_value );
221: if (l_pk2_column IS NOT NULL) then
222: DBMS_SQL.bind_variable(l_sqlCursor, 'p_pk2_value',p_pk2_value );
223: end if;
224: if (l_pk3_column IS NOT NULL) then
218: DBMS_SQL.parse(l_sqlCursor, l_entity_sql, DBMS_SQL.NATIVE);
219:
220: DBMS_SQL.bind_variable(l_sqlCursor, 'p_pk1_value',p_pk1_value );
221: if (l_pk2_column IS NOT NULL) then
222: DBMS_SQL.bind_variable(l_sqlCursor, 'p_pk2_value',p_pk2_value );
223: end if;
224: if (l_pk3_column IS NOT NULL) then
225: DBMS_SQL.bind_variable(l_sqlCursor, 'p_pk3_value',p_pk3_value );
226: end if;
221: if (l_pk2_column IS NOT NULL) then
222: DBMS_SQL.bind_variable(l_sqlCursor, 'p_pk2_value',p_pk2_value );
223: end if;
224: if (l_pk3_column IS NOT NULL) then
225: DBMS_SQL.bind_variable(l_sqlCursor, 'p_pk3_value',p_pk3_value );
226: end if;
227: if (l_pk4_column IS NOT NULL) then
228: DBMS_SQL.bind_variable(l_sqlCursor, 'p_pk4_value',p_pk4_value );
229: end if;
224: if (l_pk3_column IS NOT NULL) then
225: DBMS_SQL.bind_variable(l_sqlCursor, 'p_pk3_value',p_pk3_value );
226: end if;
227: if (l_pk4_column IS NOT NULL) then
228: DBMS_SQL.bind_variable(l_sqlCursor, 'p_pk4_value',p_pk4_value );
229: end if;
230: if (l_pk5_column IS NOT NULL) then
231: DBMS_SQL.bind_variable(l_sqlCursor, 'p_pk5_value',p_pk5_value );
232: end if;
227: if (l_pk4_column IS NOT NULL) then
228: DBMS_SQL.bind_variable(l_sqlCursor, 'p_pk4_value',p_pk4_value );
229: end if;
230: if (l_pk5_column IS NOT NULL) then
231: DBMS_SQL.bind_variable(l_sqlCursor, 'p_pk5_value',p_pk5_value );
232: end if;
233:
234: for l_index in 1..l_attribute_tbl.COUNT loop
235: IF l_debug_level > 0 THEN
234: for l_index in 1..l_attribute_tbl.COUNT loop
235: IF l_debug_level > 0 THEN
236: oe_debug_pub.add( 'DEFINING COLUMN FOR ATTRIBUTE: '|| L_ATTRIBUTE_TBL ( L_INDEX ) .ATTRIBUTE_CODE ) ;
237: END IF;
238: DBMS_SQL.define_column(l_sqlCursor, l_index, l_attribute_tbl(l_index).value, 50);
239: end loop;
240:
241: l_dummy := DBMS_SQL.execute(l_sqlCursor);
242: IF l_debug_level > 0 THEN
237: END IF;
238: DBMS_SQL.define_column(l_sqlCursor, l_index, l_attribute_tbl(l_index).value, 50);
239: end loop;
240:
241: l_dummy := DBMS_SQL.execute(l_sqlCursor);
242: IF l_debug_level > 0 THEN
243: oe_debug_pub.add( 'FETCH_ATTRIBUTE_VALUES:EXECUTE OK' ) ;
244: END IF;
245:
247: -------------------------------------------------------------------
248: -- FETCH VALUES FROM SQL CURSOR INTO l_attribute_tbl
249: -------------------------------------------------------------------
250:
251: if (DBMS_SQL.fetch_rows(l_sqlCursor) <> 0) then
252: IF l_debug_level > 0 THEN
253: oe_debug_pub.add( 'FETCH_ATTRIBUTE_VALUES:FETCH_ROWS OK' ) ;
254: END IF;
255: for l_index in 1..l_attribute_tbl.COUNT loop
252: IF l_debug_level > 0 THEN
253: oe_debug_pub.add( 'FETCH_ATTRIBUTE_VALUES:FETCH_ROWS OK' ) ;
254: END IF;
255: for l_index in 1..l_attribute_tbl.COUNT loop
256: DBMS_SQL.column_value(l_sqlcursor, l_index, l_attribute_tbl(l_index).value);
257: IF l_debug_level > 0 THEN
258: oe_debug_pub.add( 'ATTRIBUTE VALUE: '||L_ATTRIBUTE_TBL ( L_INDEX ) .VALUE ) ;
259: END IF;
260: end loop;
260: end loop;
261: else
262: raise no_data_found;
263: end if;
264: DBMS_SQL.close_cursor(l_sqlCursor);
265:
266: IF l_debug_level > 0 THEN
267: oe_debug_pub.add( 'EXIT FETCH_ATTRIBUTE_VALUES' , 1 ) ;
268: END IF;
385:
386: -------------------------------------------------------------------
387: -- CREATE DYNAMIC SQL CURSOR AND EXECUTE
388: -------------------------------------------------------------------
389: l_sqlCursor := DBMS_SQL.open_cursor;
390: IF l_debug_level > 0 THEN
391: oe_debug_pub.add( 'FETCH_DOCUMENTS:CURSOR OPEN OK' ) ;
392: END IF;
393:
390: IF l_debug_level > 0 THEN
391: oe_debug_pub.add( 'FETCH_DOCUMENTS:CURSOR OPEN OK' ) ;
392: END IF;
393:
394: DBMS_SQL.parse(l_sqlCursor, l_rule_sql, DBMS_SQL.NATIVE);
395:
396: DBMS_SQL.bind_variable(l_sqlCursor, 'p_database_object_name',p_database_object_name);
397: for l_index in 1..p_attribute_tbl.COUNT loop
398: DBMS_SQL.bind_variable(l_sqlCursor, 'p_attribute_code'||l_index,p_attribute_tbl(l_index).attribute_code );
392: END IF;
393:
394: DBMS_SQL.parse(l_sqlCursor, l_rule_sql, DBMS_SQL.NATIVE);
395:
396: DBMS_SQL.bind_variable(l_sqlCursor, 'p_database_object_name',p_database_object_name);
397: for l_index in 1..p_attribute_tbl.COUNT loop
398: DBMS_SQL.bind_variable(l_sqlCursor, 'p_attribute_code'||l_index,p_attribute_tbl(l_index).attribute_code );
399: DBMS_SQL.bind_variable(l_sqlCursor, 'p_attribute_value'||l_index,p_attribute_tbl(l_index).value );
400: end loop;
394: DBMS_SQL.parse(l_sqlCursor, l_rule_sql, DBMS_SQL.NATIVE);
395:
396: DBMS_SQL.bind_variable(l_sqlCursor, 'p_database_object_name',p_database_object_name);
397: for l_index in 1..p_attribute_tbl.COUNT loop
398: DBMS_SQL.bind_variable(l_sqlCursor, 'p_attribute_code'||l_index,p_attribute_tbl(l_index).attribute_code );
399: DBMS_SQL.bind_variable(l_sqlCursor, 'p_attribute_value'||l_index,p_attribute_tbl(l_index).value );
400: end loop;
401:
402: DBMS_SQL.define_column(l_sqlCursor, 1, l_document_id);
395:
396: DBMS_SQL.bind_variable(l_sqlCursor, 'p_database_object_name',p_database_object_name);
397: for l_index in 1..p_attribute_tbl.COUNT loop
398: DBMS_SQL.bind_variable(l_sqlCursor, 'p_attribute_code'||l_index,p_attribute_tbl(l_index).attribute_code );
399: DBMS_SQL.bind_variable(l_sqlCursor, 'p_attribute_value'||l_index,p_attribute_tbl(l_index).value );
400: end loop;
401:
402: DBMS_SQL.define_column(l_sqlCursor, 1, l_document_id);
403:
398: DBMS_SQL.bind_variable(l_sqlCursor, 'p_attribute_code'||l_index,p_attribute_tbl(l_index).attribute_code );
399: DBMS_SQL.bind_variable(l_sqlCursor, 'p_attribute_value'||l_index,p_attribute_tbl(l_index).value );
400: end loop;
401:
402: DBMS_SQL.define_column(l_sqlCursor, 1, l_document_id);
403:
404: l_dummy := DBMS_SQL.execute(l_sqlCursor);
405: IF l_debug_level > 0 THEN
406: oe_debug_pub.add( 'FETCH_DOCUMENTS:EXECUTE OK' ) ;
400: end loop;
401:
402: DBMS_SQL.define_column(l_sqlCursor, 1, l_document_id);
403:
404: l_dummy := DBMS_SQL.execute(l_sqlCursor);
405: IF l_debug_level > 0 THEN
406: oe_debug_pub.add( 'FETCH_DOCUMENTS:EXECUTE OK' ) ;
407: END IF;
408:
411: -- FETCH VALUES FROM SQL CURSOR INTO l_document_tbl
412: -------------------------------------------------------------------
413:
414: l_index := 1;
415: while (DBMS_SQL.fetch_rows(l_sqlCursor)<> 0) loop
416: IF l_debug_level > 0 THEN
417: oe_debug_pub.add( 'FETCH_DOCUMENTS:FETCH_ROWS OK' ) ;
418: END IF;
419: DBMS_SQL.column_value(l_sqlcursor, 1, l_document_id);
415: while (DBMS_SQL.fetch_rows(l_sqlCursor)<> 0) loop
416: IF l_debug_level > 0 THEN
417: oe_debug_pub.add( 'FETCH_DOCUMENTS:FETCH_ROWS OK' ) ;
418: END IF;
419: DBMS_SQL.column_value(l_sqlcursor, 1, l_document_id);
420: IF l_debug_level > 0 THEN
421: oe_debug_pub.add( 'DOCUMENT ID:'||L_DOCUMENT_ID ) ;
422: END IF;
423: l_document_tbl(l_index).document_id := l_document_id;
422: END IF;
423: l_document_tbl(l_index).document_id := l_document_id;
424: l_index := l_index+1;
425: end loop;
426: DBMS_SQL.close_cursor(l_sqlCursor);
427:
428: IF l_debug_level > 0 THEN
429: oe_debug_pub.add( 'EXIT FETCH_DOCUMENTS' , 1 ) ;
430: END IF;