81: v_ret_varchar:=p_expenditure_type;
82: ELSE
83:
84:
85: v_CursorID := DBMS_SQL.OPEN_CURSOR;
86: -- --dbms_output.put_line('After open in DQ');
87:
88: IF l_bind_var = 'l_person_id' THEN
89: p_bind_var := p_person_id;
113: END IF;
114:
115: -- Parse the query.
116: ----dbms_output.put_line('Before parse statement');
117: dbms_sql.parse(v_CursorID, l_dyn_sql_stmt, DBMS_SQL.V7);
118: ----dbms_output.put_line('After parse statement');
119:
120: -- Bind the input variable.
121: --v_CursorId:=v_cursor(l_lookup_id);
119:
120: -- Bind the input variable.
121: --v_CursorId:=v_cursor(l_lookup_id);
122: if l_date_tracked then
123: dbms_sql.bind_variable(v_CursorID, ':VAR1', p_bind_var);
124: dbms_sql.bind_variable(v_CursorID, ':EFFDATE', p_payroll_date);
125: else
126: dbms_sql.bind_variable(v_CursorID, ':VAR1', p_bind_var);
127: end if;
120: -- Bind the input variable.
121: --v_CursorId:=v_cursor(l_lookup_id);
122: if l_date_tracked then
123: dbms_sql.bind_variable(v_CursorID, ':VAR1', p_bind_var);
124: dbms_sql.bind_variable(v_CursorID, ':EFFDATE', p_payroll_date);
125: else
126: dbms_sql.bind_variable(v_CursorID, ':VAR1', p_bind_var);
127: end if;
128:
122: if l_date_tracked then
123: dbms_sql.bind_variable(v_CursorID, ':VAR1', p_bind_var);
124: dbms_sql.bind_variable(v_CursorID, ':EFFDATE', p_payroll_date);
125: else
126: dbms_sql.bind_variable(v_CursorID, ':VAR1', p_bind_var);
127: end if;
128:
129: -- Define the output variable depending on datatype.
130: if l_data_type = 'VARCHAR2' then
127: end if;
128:
129: -- Define the output variable depending on datatype.
130: if l_data_type = 'VARCHAR2' then
131: dbms_sql.define_column(v_CursorID, 1, v_ret_varchar, 500);
132: elsif l_data_type = 'NUMBER' then
133: dbms_sql.define_column(v_CursorID, 1, v_ret_number);
134: elsif l_data_type = 'DATE' then
135: dbms_sql.define_column(v_CursorID, 1, v_ret_date);
129: -- Define the output variable depending on datatype.
130: if l_data_type = 'VARCHAR2' then
131: dbms_sql.define_column(v_CursorID, 1, v_ret_varchar, 500);
132: elsif l_data_type = 'NUMBER' then
133: dbms_sql.define_column(v_CursorID, 1, v_ret_number);
134: elsif l_data_type = 'DATE' then
135: dbms_sql.define_column(v_CursorID, 1, v_ret_date);
136: end if;
137:
131: dbms_sql.define_column(v_CursorID, 1, v_ret_varchar, 500);
132: elsif l_data_type = 'NUMBER' then
133: dbms_sql.define_column(v_CursorID, 1, v_ret_number);
134: elsif l_data_type = 'DATE' then
135: dbms_sql.define_column(v_CursorID, 1, v_ret_date);
136: end if;
137:
138: -- Execute the statement. We don't care about the return
139: -- value, but we do need to declare a variable for it.
136: end if;
137:
138: -- Execute the statement. We don't care about the return
139: -- value, but we do need to declare a variable for it.
140: v_Dummy := dbms_sql.execute(v_CursorID);
141: ----dbms_output.put_line('After execute in DQ');
142:
143: -- Fetch the row into the buffer. We only expect one row and
144: -- will not loop through to get multiple rows.
141: ----dbms_output.put_line('After execute in DQ');
142:
143: -- Fetch the row into the buffer. We only expect one row and
144: -- will not loop through to get multiple rows.
145: IF dbms_sql.fetch_rows(v_CursorID) = 0 THEN
146: BEGIN
147: RAISE NO_ROWS_FOUND;
148: EXCEPTION
149: WHEN NO_ROWS_FOUND THEN
146: BEGIN
147: RAISE NO_ROWS_FOUND;
148: EXCEPTION
149: WHEN NO_ROWS_FOUND THEN
150: dbms_sql.close_cursor(v_CursorID);
151: l_no_rows:=TRUE;
152: END;
153:
154: /* Added for Exception Handling if no rows are returned . */
161: ELSE
162: -- Retrieve the rows from the buffer into PL/SQL variables.
163: -- The correct call depends on the datatype.
164: IF l_data_type = 'VARCHAR2' THEN
165: dbms_sql.column_value(v_CursorID, 1, v_ret_varchar);
166: ELSIF l_data_type = 'NUMBER' THEN
167: dbms_sql.column_value(v_CursorID, 1, v_ret_number);
168: ELSIF l_data_type = 'DATE' THEN
169: dbms_sql.column_value(v_CursorID, 1, v_ret_date);
163: -- The correct call depends on the datatype.
164: IF l_data_type = 'VARCHAR2' THEN
165: dbms_sql.column_value(v_CursorID, 1, v_ret_varchar);
166: ELSIF l_data_type = 'NUMBER' THEN
167: dbms_sql.column_value(v_CursorID, 1, v_ret_number);
168: ELSIF l_data_type = 'DATE' THEN
169: dbms_sql.column_value(v_CursorID, 1, v_ret_date);
170: END IF;
171: dbms_sql.close_cursor(v_CursorID);
165: dbms_sql.column_value(v_CursorID, 1, v_ret_varchar);
166: ELSIF l_data_type = 'NUMBER' THEN
167: dbms_sql.column_value(v_CursorID, 1, v_ret_number);
168: ELSIF l_data_type = 'DATE' THEN
169: dbms_sql.column_value(v_CursorID, 1, v_ret_date);
170: END IF;
171: dbms_sql.close_cursor(v_CursorID);
172:
173:
167: dbms_sql.column_value(v_CursorID, 1, v_ret_number);
168: ELSIF l_data_type = 'DATE' THEN
169: dbms_sql.column_value(v_CursorID, 1, v_ret_date);
170: END IF;
171: dbms_sql.close_cursor(v_CursorID);
172:
173:
174: END IF;
175:
196: -- WHEN NO_ROWS_FOUND THEN
197: -- p_return_status := fnd_api.g_ret_sts_success;
198: WHEN OTHERS THEN
199: -- Close the cursor.
200: dbms_sql.close_cursor(v_CursorID);
201: close lookups_c;
202: g_error_api_path := 'DynamicQuery:WHEN OTHERS:'||g_error_api_path;
203: p_return_status := fnd_api.g_ret_sts_unexp_error;
204: END DynamicQuery;
218: v_return_value BOOLEAN;
219: new_sql_string varchar2(1000);
220: BEGIN
221:
222: v_CursorID := DBMS_SQL.OPEN_CURSOR;
223: new_sql_string :='SELECT 1 from dual where '||x_string;
224: dbms_sql.parse(v_CursorID, new_sql_string, DBMS_SQL.V7);
225: dbms_sql.define_column(v_CursorID, 1, v_ret_number);
226: v_Dummy := dbms_sql.execute(v_CursorID);
220: BEGIN
221:
222: v_CursorID := DBMS_SQL.OPEN_CURSOR;
223: new_sql_string :='SELECT 1 from dual where '||x_string;
224: dbms_sql.parse(v_CursorID, new_sql_string, DBMS_SQL.V7);
225: dbms_sql.define_column(v_CursorID, 1, v_ret_number);
226: v_Dummy := dbms_sql.execute(v_CursorID);
227:
228: IF dbms_sql.fetch_rows(v_CursorID) = 0 THEN
221:
222: v_CursorID := DBMS_SQL.OPEN_CURSOR;
223: new_sql_string :='SELECT 1 from dual where '||x_string;
224: dbms_sql.parse(v_CursorID, new_sql_string, DBMS_SQL.V7);
225: dbms_sql.define_column(v_CursorID, 1, v_ret_number);
226: v_Dummy := dbms_sql.execute(v_CursorID);
227:
228: IF dbms_sql.fetch_rows(v_CursorID) = 0 THEN
229: v_return_value := FALSE;
222: v_CursorID := DBMS_SQL.OPEN_CURSOR;
223: new_sql_string :='SELECT 1 from dual where '||x_string;
224: dbms_sql.parse(v_CursorID, new_sql_string, DBMS_SQL.V7);
225: dbms_sql.define_column(v_CursorID, 1, v_ret_number);
226: v_Dummy := dbms_sql.execute(v_CursorID);
227:
228: IF dbms_sql.fetch_rows(v_CursorID) = 0 THEN
229: v_return_value := FALSE;
230: ELSE
224: dbms_sql.parse(v_CursorID, new_sql_string, DBMS_SQL.V7);
225: dbms_sql.define_column(v_CursorID, 1, v_ret_number);
226: v_Dummy := dbms_sql.execute(v_CursorID);
227:
228: IF dbms_sql.fetch_rows(v_CursorID) = 0 THEN
229: v_return_value := FALSE;
230: ELSE
231: v_return_value := TRUE ;
232: END IF;
230: ELSE
231: v_return_value := TRUE ;
232: END IF;
233:
234: dbms_sql.close_cursor(v_CursorID);
235: return v_return_value;
236: EXCEPTION when others then
237:
238: /* when rule is invalid */