60:
61: BEGIN
62: BEGIN
63: main_query := 'SELECT count(*) from ' || source_view;
64: cursor_id := DBMS_SQL.open_cursor;
65: DBMS_SQL.Parse(cursor_id, main_query, DBMS_SQL.v7);
66: DBMS_SQL.Define_Column(cursor_id, 1, dummy);
67: exec_id := dbms_sql.execute(cursor_id);
68: DBMS_SQL.CLOSE_CURSOR(CURSOR_ID);
61: BEGIN
62: BEGIN
63: main_query := 'SELECT count(*) from ' || source_view;
64: cursor_id := DBMS_SQL.open_cursor;
65: DBMS_SQL.Parse(cursor_id, main_query, DBMS_SQL.v7);
66: DBMS_SQL.Define_Column(cursor_id, 1, dummy);
67: exec_id := dbms_sql.execute(cursor_id);
68: DBMS_SQL.CLOSE_CURSOR(CURSOR_ID);
69: EXCEPTION
62: BEGIN
63: main_query := 'SELECT count(*) from ' || source_view;
64: cursor_id := DBMS_SQL.open_cursor;
65: DBMS_SQL.Parse(cursor_id, main_query, DBMS_SQL.v7);
66: DBMS_SQL.Define_Column(cursor_id, 1, dummy);
67: exec_id := dbms_sql.execute(cursor_id);
68: DBMS_SQL.CLOSE_CURSOR(CURSOR_ID);
69: EXCEPTION
70: WHEN OTHERS THEN
63: main_query := 'SELECT count(*) from ' || source_view;
64: cursor_id := DBMS_SQL.open_cursor;
65: DBMS_SQL.Parse(cursor_id, main_query, DBMS_SQL.v7);
66: DBMS_SQL.Define_Column(cursor_id, 1, dummy);
67: exec_id := dbms_sql.execute(cursor_id);
68: DBMS_SQL.CLOSE_CURSOR(CURSOR_ID);
69: EXCEPTION
70: WHEN OTHERS THEN
71: IF DBMS_SQL.is_open(cursor_id) THEN
64: cursor_id := DBMS_SQL.open_cursor;
65: DBMS_SQL.Parse(cursor_id, main_query, DBMS_SQL.v7);
66: DBMS_SQL.Define_Column(cursor_id, 1, dummy);
67: exec_id := dbms_sql.execute(cursor_id);
68: DBMS_SQL.CLOSE_CURSOR(CURSOR_ID);
69: EXCEPTION
70: WHEN OTHERS THEN
71: IF DBMS_SQL.is_open(cursor_id) THEN
72: DBMS_SQL.close_cursor(cursor_id);
67: exec_id := dbms_sql.execute(cursor_id);
68: DBMS_SQL.CLOSE_CURSOR(CURSOR_ID);
69: EXCEPTION
70: WHEN OTHERS THEN
71: IF DBMS_SQL.is_open(cursor_id) THEN
72: DBMS_SQL.close_cursor(cursor_id);
73: END IF;
74: return (-1);
75: END;
68: DBMS_SQL.CLOSE_CURSOR(CURSOR_ID);
69: EXCEPTION
70: WHEN OTHERS THEN
71: IF DBMS_SQL.is_open(cursor_id) THEN
72: DBMS_SQL.close_cursor(cursor_id);
73: END IF;
74: return (-1);
75: END;
76:
108: --
109: -- Execute the dynamic SQL statement and prepare the forecast values into
110: -- amount_table, which will be returned to the local database
111: --
112: cursor_id := DBMS_SQL.open_cursor;
113:
114: DBMS_SQL.Parse(cursor_id, main_query, DBMS_SQL.v7);
115:
116: DBMS_SQL.Define_Column(cursor_id, 1, forecast_period_temp_id);
110: -- amount_table, which will be returned to the local database
111: --
112: cursor_id := DBMS_SQL.open_cursor;
113:
114: DBMS_SQL.Parse(cursor_id, main_query, DBMS_SQL.v7);
115:
116: DBMS_SQL.Define_Column(cursor_id, 1, forecast_period_temp_id);
117: DBMS_SQL.Define_Column(cursor_id, 2, currency, 15);
118: DBMS_SQL.Define_Column(cursor_id, 3, forecast_amount);
112: cursor_id := DBMS_SQL.open_cursor;
113:
114: DBMS_SQL.Parse(cursor_id, main_query, DBMS_SQL.v7);
115:
116: DBMS_SQL.Define_Column(cursor_id, 1, forecast_period_temp_id);
117: DBMS_SQL.Define_Column(cursor_id, 2, currency, 15);
118: DBMS_SQL.Define_Column(cursor_id, 3, forecast_amount);
119:
120: exec_id := dbms_sql.execute(cursor_id);
113:
114: DBMS_SQL.Parse(cursor_id, main_query, DBMS_SQL.v7);
115:
116: DBMS_SQL.Define_Column(cursor_id, 1, forecast_period_temp_id);
117: DBMS_SQL.Define_Column(cursor_id, 2, currency, 15);
118: DBMS_SQL.Define_Column(cursor_id, 3, forecast_amount);
119:
120: exec_id := dbms_sql.execute(cursor_id);
121: i := 0;
114: DBMS_SQL.Parse(cursor_id, main_query, DBMS_SQL.v7);
115:
116: DBMS_SQL.Define_Column(cursor_id, 1, forecast_period_temp_id);
117: DBMS_SQL.Define_Column(cursor_id, 2, currency, 15);
118: DBMS_SQL.Define_Column(cursor_id, 3, forecast_amount);
119:
120: exec_id := dbms_sql.execute(cursor_id);
121: i := 0;
122: LOOP
116: DBMS_SQL.Define_Column(cursor_id, 1, forecast_period_temp_id);
117: DBMS_SQL.Define_Column(cursor_id, 2, currency, 15);
118: DBMS_SQL.Define_Column(cursor_id, 3, forecast_amount);
119:
120: exec_id := dbms_sql.execute(cursor_id);
121: i := 0;
122: LOOP
123: IF (DBMS_SQL.FETCH_ROWS(cursor_id) >0 ) THEN
124: DBMS_SQL.COLUMN_VALUE(cursor_id, 1, forecast_period_temp_id);
119:
120: exec_id := dbms_sql.execute(cursor_id);
121: i := 0;
122: LOOP
123: IF (DBMS_SQL.FETCH_ROWS(cursor_id) >0 ) THEN
124: DBMS_SQL.COLUMN_VALUE(cursor_id, 1, forecast_period_temp_id);
125: DBMS_SQL.COLUMN_VALUE(cursor_id, 2, currency);
126: DBMS_SQL.COLUMN_VALUE(cursor_id, 3, forecast_amount);
127:
120: exec_id := dbms_sql.execute(cursor_id);
121: i := 0;
122: LOOP
123: IF (DBMS_SQL.FETCH_ROWS(cursor_id) >0 ) THEN
124: DBMS_SQL.COLUMN_VALUE(cursor_id, 1, forecast_period_temp_id);
125: DBMS_SQL.COLUMN_VALUE(cursor_id, 2, currency);
126: DBMS_SQL.COLUMN_VALUE(cursor_id, 3, forecast_amount);
127:
128: OPEN C_cur(currency);
121: i := 0;
122: LOOP
123: IF (DBMS_SQL.FETCH_ROWS(cursor_id) >0 ) THEN
124: DBMS_SQL.COLUMN_VALUE(cursor_id, 1, forecast_period_temp_id);
125: DBMS_SQL.COLUMN_VALUE(cursor_id, 2, currency);
126: DBMS_SQL.COLUMN_VALUE(cursor_id, 3, forecast_amount);
127:
128: OPEN C_cur(currency);
129: FETCH C_cur INTO l_emu;
122: LOOP
123: IF (DBMS_SQL.FETCH_ROWS(cursor_id) >0 ) THEN
124: DBMS_SQL.COLUMN_VALUE(cursor_id, 1, forecast_period_temp_id);
125: DBMS_SQL.COLUMN_VALUE(cursor_id, 2, currency);
126: DBMS_SQL.COLUMN_VALUE(cursor_id, 3, forecast_amount);
127:
128: OPEN C_cur(currency);
129: FETCH C_cur INTO l_emu;
130: CLOSE C_cur;
159: ELSE
160: EXIT;
161: END IF;
162: END LOOP;
163: DBMS_SQL.CLOSE_CURSOR(CURSOR_ID);
164: EXCEPTION
165: WHEN OTHERS THEN
166: IF DBMS_SQL.is_open(cursor_id) THEN
167: DBMS_SQL.close_cursor(cursor_id);
162: END LOOP;
163: DBMS_SQL.CLOSE_CURSOR(CURSOR_ID);
164: EXCEPTION
165: WHEN OTHERS THEN
166: IF DBMS_SQL.is_open(cursor_id) THEN
167: DBMS_SQL.close_cursor(cursor_id);
168: END IF;
169: return (-2);
170: END;
163: DBMS_SQL.CLOSE_CURSOR(CURSOR_ID);
164: EXCEPTION
165: WHEN OTHERS THEN
166: IF DBMS_SQL.is_open(cursor_id) THEN
167: DBMS_SQL.close_cursor(cursor_id);
168: END IF;
169: return (-2);
170: END;
171:
172: return (0);
173:
174: EXCEPTION
175: WHEN OTHERS THEN
176: IF DBMS_SQL.is_open(cursor_id) THEN
177: DBMS_SQL.close_cursor(cursor_id);
178: END IF;
179: return (-3);
180: END Populate_Remote_Amounts;
173:
174: EXCEPTION
175: WHEN OTHERS THEN
176: IF DBMS_SQL.is_open(cursor_id) THEN
177: DBMS_SQL.close_cursor(cursor_id);
178: END IF;
179: return (-3);
180: END Populate_Remote_Amounts;
181: