1119:
1120: l_sql_stmt VARCHAR2(2000);
1121: l_where_clause VARCHAR2(2000);
1122: l_bind_count NUMBER;
1123: l_bind_values DBMS_SQL.VARCHAR2_TABLE;
1124: l_desc_table DBMS_SQL.Desc_Tab;
1125: l_cursor_id NUMBER;
1126: l_dummy NUMBER;
1127: l_value_char VARCHAR2(4000);
1120: l_sql_stmt VARCHAR2(2000);
1121: l_where_clause VARCHAR2(2000);
1122: l_bind_count NUMBER;
1123: l_bind_values DBMS_SQL.VARCHAR2_TABLE;
1124: l_desc_table DBMS_SQL.Desc_Tab;
1125: l_cursor_id NUMBER;
1126: l_dummy NUMBER;
1127: l_value_char VARCHAR2(4000);
1128: l_column_count NUMBER;
1175: l_query_column_cl := csd1.query_column1_name;
1176: END IF;
1177:
1178: l_sql_stmt := 'SELECT '||l_query_column_cl|| ' FROM ' || csd1.query_object_name || ' WHERE ' || l_where_clause ;
1179: l_cursor_id := DBMS_SQL.Open_Cursor;
1180: DBMS_SQL.Parse(l_cursor_id, l_sql_stmt, DBMS_SQL.Native);
1181: DBMS_SQL.Describe_Columns(l_cursor_id, l_column_count, l_desc_table);
1182: FOR i IN 1..l_column_count
1183: LOOP
1176: END IF;
1177:
1178: l_sql_stmt := 'SELECT '||l_query_column_cl|| ' FROM ' || csd1.query_object_name || ' WHERE ' || l_where_clause ;
1179: l_cursor_id := DBMS_SQL.Open_Cursor;
1180: DBMS_SQL.Parse(l_cursor_id, l_sql_stmt, DBMS_SQL.Native);
1181: DBMS_SQL.Describe_Columns(l_cursor_id, l_column_count, l_desc_table);
1182: FOR i IN 1..l_column_count
1183: LOOP
1184: DBMS_SQL.Define_Column(l_cursor_id, i, l_value_char, 1000);
1177:
1178: l_sql_stmt := 'SELECT '||l_query_column_cl|| ' FROM ' || csd1.query_object_name || ' WHERE ' || l_where_clause ;
1179: l_cursor_id := DBMS_SQL.Open_Cursor;
1180: DBMS_SQL.Parse(l_cursor_id, l_sql_stmt, DBMS_SQL.Native);
1181: DBMS_SQL.Describe_Columns(l_cursor_id, l_column_count, l_desc_table);
1182: FOR i IN 1..l_column_count
1183: LOOP
1184: DBMS_SQL.Define_Column(l_cursor_id, i, l_value_char, 1000);
1185: END LOOP;
1180: DBMS_SQL.Parse(l_cursor_id, l_sql_stmt, DBMS_SQL.Native);
1181: DBMS_SQL.Describe_Columns(l_cursor_id, l_column_count, l_desc_table);
1182: FOR i IN 1..l_column_count
1183: LOOP
1184: DBMS_SQL.Define_Column(l_cursor_id, i, l_value_char, 1000);
1185: END LOOP;
1186: FOR l_bind_index IN 1..l_bind_count
1187: LOOP
1188: DBMS_SQL.BIND_VARIABLE(l_cursor_id, ':'||l_bind_index, l_bind_values(l_bind_index));
1184: DBMS_SQL.Define_Column(l_cursor_id, i, l_value_char, 1000);
1185: END LOOP;
1186: FOR l_bind_index IN 1..l_bind_count
1187: LOOP
1188: DBMS_SQL.BIND_VARIABLE(l_cursor_id, ':'||l_bind_index, l_bind_values(l_bind_index));
1189: END LOOP;
1190: l_dummy := DBMS_SQL.Execute(l_cursor_id);
1191: IF (DBMS_SQL.Fetch_Rows(l_cursor_id) > 0)
1192: THEN
1186: FOR l_bind_index IN 1..l_bind_count
1187: LOOP
1188: DBMS_SQL.BIND_VARIABLE(l_cursor_id, ':'||l_bind_index, l_bind_values(l_bind_index));
1189: END LOOP;
1190: l_dummy := DBMS_SQL.Execute(l_cursor_id);
1191: IF (DBMS_SQL.Fetch_Rows(l_cursor_id) > 0)
1192: THEN
1193: dbms_sql.column_value(l_cursor_id, 1, l_subject_name1);
1194: IF l_concat_subject IS NOT NULL
1187: LOOP
1188: DBMS_SQL.BIND_VARIABLE(l_cursor_id, ':'||l_bind_index, l_bind_values(l_bind_index));
1189: END LOOP;
1190: l_dummy := DBMS_SQL.Execute(l_cursor_id);
1191: IF (DBMS_SQL.Fetch_Rows(l_cursor_id) > 0)
1192: THEN
1193: dbms_sql.column_value(l_cursor_id, 1, l_subject_name1);
1194: IF l_concat_subject IS NOT NULL
1195: THEN
1189: END LOOP;
1190: l_dummy := DBMS_SQL.Execute(l_cursor_id);
1191: IF (DBMS_SQL.Fetch_Rows(l_cursor_id) > 0)
1192: THEN
1193: dbms_sql.column_value(l_cursor_id, 1, l_subject_name1);
1194: IF l_concat_subject IS NOT NULL
1195: THEN
1196: l_concat_subject := l_concat_subject || ' > ';
1197: END IF;
1197: END IF;
1198: l_concat_subject := l_concat_subject || l_subject_name1;
1199: END IF;
1200: END IF;
1201: dbms_sql.close_cursor(l_cursor_id);
1202: END LOOP;
1203: RETURN l_concat_subject;
1204: EXCEPTION
1205: WHEN OTHERS THEN
1202: END LOOP;
1203: RETURN l_concat_subject;
1204: EXCEPTION
1205: WHEN OTHERS THEN
1206: IF dbms_sql.is_open(l_cursor_id)
1207: THEN
1208: dbms_sql.close_cursor(l_cursor_id);
1209: END IF;
1210: RAISE;
1204: EXCEPTION
1205: WHEN OTHERS THEN
1206: IF dbms_sql.is_open(l_cursor_id)
1207: THEN
1208: dbms_sql.close_cursor(l_cursor_id);
1209: END IF;
1210: RAISE;
1211: END Get_Concatenated_Subjects;
1212: