207: qry := qry || 'where OWNER = :owner_name and OBJECT_NAME = :proc_name ';
208: qry := qry || 'and ARGUMENT_NAME = :arg_name';
209: end if;
210:
211: curs := sys.dbms_sql.open_cursor;
212:
213: --sys.dbms_sql.parse(curs, qry, 1);
214: sys.dbms_sys_sql.parse_as_user(curs, qry, 1);
215:
209: end if;
210:
211: curs := sys.dbms_sql.open_cursor;
212:
213: --sys.dbms_sql.parse(curs, qry, 1);
214: sys.dbms_sys_sql.parse_as_user(curs, qry, 1);
215:
216: if (package_name IS NOT NULL) then
217: DBMS_SQL.BIND_VARIABLE(curs, ':package_name', package_name);
213: --sys.dbms_sql.parse(curs, qry, 1);
214: sys.dbms_sys_sql.parse_as_user(curs, qry, 1);
215:
216: if (package_name IS NOT NULL) then
217: DBMS_SQL.BIND_VARIABLE(curs, ':package_name', package_name);
218: end if;
219:
220: DBMS_SQL.BIND_VARIABLE(curs, ':proc_name', proc_name);
221: DBMS_SQL.BIND_VARIABLE(curs, ':owner_name', owner_name);
216: if (package_name IS NOT NULL) then
217: DBMS_SQL.BIND_VARIABLE(curs, ':package_name', package_name);
218: end if;
219:
220: DBMS_SQL.BIND_VARIABLE(curs, ':proc_name', proc_name);
221: DBMS_SQL.BIND_VARIABLE(curs, ':owner_name', owner_name);
222: DBMS_SQL.BIND_VARIABLE(curs, ':arg_name', arg_name);
223:
224: sys.dbms_sql.define_column(curs, 1, datatype, 30);
217: DBMS_SQL.BIND_VARIABLE(curs, ':package_name', package_name);
218: end if;
219:
220: DBMS_SQL.BIND_VARIABLE(curs, ':proc_name', proc_name);
221: DBMS_SQL.BIND_VARIABLE(curs, ':owner_name', owner_name);
222: DBMS_SQL.BIND_VARIABLE(curs, ':arg_name', arg_name);
223:
224: sys.dbms_sql.define_column(curs, 1, datatype, 30);
225: ignore := sys.dbms_sql.execute(curs);
218: end if;
219:
220: DBMS_SQL.BIND_VARIABLE(curs, ':proc_name', proc_name);
221: DBMS_SQL.BIND_VARIABLE(curs, ':owner_name', owner_name);
222: DBMS_SQL.BIND_VARIABLE(curs, ':arg_name', arg_name);
223:
224: sys.dbms_sql.define_column(curs, 1, datatype, 30);
225: ignore := sys.dbms_sql.execute(curs);
226: if (sys.dbms_sql.fetch_rows(curs) > 0) then
220: DBMS_SQL.BIND_VARIABLE(curs, ':proc_name', proc_name);
221: DBMS_SQL.BIND_VARIABLE(curs, ':owner_name', owner_name);
222: DBMS_SQL.BIND_VARIABLE(curs, ':arg_name', arg_name);
223:
224: sys.dbms_sql.define_column(curs, 1, datatype, 30);
225: ignore := sys.dbms_sql.execute(curs);
226: if (sys.dbms_sql.fetch_rows(curs) > 0) then
227: sys.dbms_sql.Column_value(curs, 1, datatype);
228: end if;
221: DBMS_SQL.BIND_VARIABLE(curs, ':owner_name', owner_name);
222: DBMS_SQL.BIND_VARIABLE(curs, ':arg_name', arg_name);
223:
224: sys.dbms_sql.define_column(curs, 1, datatype, 30);
225: ignore := sys.dbms_sql.execute(curs);
226: if (sys.dbms_sql.fetch_rows(curs) > 0) then
227: sys.dbms_sql.Column_value(curs, 1, datatype);
228: end if;
229: sys.dbms_sql.close_cursor(curs);
222: DBMS_SQL.BIND_VARIABLE(curs, ':arg_name', arg_name);
223:
224: sys.dbms_sql.define_column(curs, 1, datatype, 30);
225: ignore := sys.dbms_sql.execute(curs);
226: if (sys.dbms_sql.fetch_rows(curs) > 0) then
227: sys.dbms_sql.Column_value(curs, 1, datatype);
228: end if;
229: sys.dbms_sql.close_cursor(curs);
230: curs := 0;
223:
224: sys.dbms_sql.define_column(curs, 1, datatype, 30);
225: ignore := sys.dbms_sql.execute(curs);
226: if (sys.dbms_sql.fetch_rows(curs) > 0) then
227: sys.dbms_sql.Column_value(curs, 1, datatype);
228: end if;
229: sys.dbms_sql.close_cursor(curs);
230: curs := 0;
231: if (datatype = 'PL/SQL TABLE') then
225: ignore := sys.dbms_sql.execute(curs);
226: if (sys.dbms_sql.fetch_rows(curs) > 0) then
227: sys.dbms_sql.Column_value(curs, 1, datatype);
228: end if;
229: sys.dbms_sql.close_cursor(curs);
230: curs := 0;
231: if (datatype = 'PL/SQL TABLE') then
232:
233: qry := 'select DATA_TYPE, TYPE_NAME, TYPE_SUBNAME from ALL_ARGUMENTS ';
241: end if;
242:
243: qry := qry || ' and ARGUMENT_NAME = :arg_name';
244:
245: curs := sys.dbms_sql.open_cursor;
246:
247: --sys.dbms_sql.parse(curs, qry, 1);
248: sys.dbms_sys_sql.parse_as_user(curs, qry, 1);
249:
243: qry := qry || ' and ARGUMENT_NAME = :arg_name';
244:
245: curs := sys.dbms_sql.open_cursor;
246:
247: --sys.dbms_sql.parse(curs, qry, 1);
248: sys.dbms_sys_sql.parse_as_user(curs, qry, 1);
249:
250: sys.dbms_sql.define_column(curs, 1, datatype, 30);
251: sys.dbms_sql.define_column(curs, 2, typename, 30);
246:
247: --sys.dbms_sql.parse(curs, qry, 1);
248: sys.dbms_sys_sql.parse_as_user(curs, qry, 1);
249:
250: sys.dbms_sql.define_column(curs, 1, datatype, 30);
251: sys.dbms_sql.define_column(curs, 2, typename, 30);
252: sys.dbms_sql.define_column(curs, 3, typesubname, 30);
253:
254: if (package_name IS NOT NULL) then
247: --sys.dbms_sql.parse(curs, qry, 1);
248: sys.dbms_sys_sql.parse_as_user(curs, qry, 1);
249:
250: sys.dbms_sql.define_column(curs, 1, datatype, 30);
251: sys.dbms_sql.define_column(curs, 2, typename, 30);
252: sys.dbms_sql.define_column(curs, 3, typesubname, 30);
253:
254: if (package_name IS NOT NULL) then
255: DBMS_SQL.BIND_VARIABLE(curs, ':package_name', package_name);
248: sys.dbms_sys_sql.parse_as_user(curs, qry, 1);
249:
250: sys.dbms_sql.define_column(curs, 1, datatype, 30);
251: sys.dbms_sql.define_column(curs, 2, typename, 30);
252: sys.dbms_sql.define_column(curs, 3, typesubname, 30);
253:
254: if (package_name IS NOT NULL) then
255: DBMS_SQL.BIND_VARIABLE(curs, ':package_name', package_name);
256: end if;
251: sys.dbms_sql.define_column(curs, 2, typename, 30);
252: sys.dbms_sql.define_column(curs, 3, typesubname, 30);
253:
254: if (package_name IS NOT NULL) then
255: DBMS_SQL.BIND_VARIABLE(curs, ':package_name', package_name);
256: end if;
257:
258: DBMS_SQL.BIND_VARIABLE(curs, ':proc_name', proc_name);
259: DBMS_SQL.BIND_VARIABLE(curs, ':owner_name', owner_name);
254: if (package_name IS NOT NULL) then
255: DBMS_SQL.BIND_VARIABLE(curs, ':package_name', package_name);
256: end if;
257:
258: DBMS_SQL.BIND_VARIABLE(curs, ':proc_name', proc_name);
259: DBMS_SQL.BIND_VARIABLE(curs, ':owner_name', owner_name);
260: DBMS_SQL.BIND_VARIABLE(curs, ':arg_name', arg_name);
261:
262: ignore := sys.dbms_sql.execute(curs);
255: DBMS_SQL.BIND_VARIABLE(curs, ':package_name', package_name);
256: end if;
257:
258: DBMS_SQL.BIND_VARIABLE(curs, ':proc_name', proc_name);
259: DBMS_SQL.BIND_VARIABLE(curs, ':owner_name', owner_name);
260: DBMS_SQL.BIND_VARIABLE(curs, ':arg_name', arg_name);
261:
262: ignore := sys.dbms_sql.execute(curs);
263:
256: end if;
257:
258: DBMS_SQL.BIND_VARIABLE(curs, ':proc_name', proc_name);
259: DBMS_SQL.BIND_VARIABLE(curs, ':owner_name', owner_name);
260: DBMS_SQL.BIND_VARIABLE(curs, ':arg_name', arg_name);
261:
262: ignore := sys.dbms_sql.execute(curs);
263:
264: if (sys.dbms_sql.fetch_rows(curs) > 0) then
258: DBMS_SQL.BIND_VARIABLE(curs, ':proc_name', proc_name);
259: DBMS_SQL.BIND_VARIABLE(curs, ':owner_name', owner_name);
260: DBMS_SQL.BIND_VARIABLE(curs, ':arg_name', arg_name);
261:
262: ignore := sys.dbms_sql.execute(curs);
263:
264: if (sys.dbms_sql.fetch_rows(curs) > 0) then
265: sys.dbms_sql.Column_value(curs, 1, datatype);
266: sys.dbms_sql.Column_value(curs, 2, typename);
260: DBMS_SQL.BIND_VARIABLE(curs, ':arg_name', arg_name);
261:
262: ignore := sys.dbms_sql.execute(curs);
263:
264: if (sys.dbms_sql.fetch_rows(curs) > 0) then
265: sys.dbms_sql.Column_value(curs, 1, datatype);
266: sys.dbms_sql.Column_value(curs, 2, typename);
267: sys.dbms_sql.Column_value(curs, 3, typesubname);
268: arg_type_name := typename || '.' || typesubname;
261:
262: ignore := sys.dbms_sql.execute(curs);
263:
264: if (sys.dbms_sql.fetch_rows(curs) > 0) then
265: sys.dbms_sql.Column_value(curs, 1, datatype);
266: sys.dbms_sql.Column_value(curs, 2, typename);
267: sys.dbms_sql.Column_value(curs, 3, typesubname);
268: arg_type_name := typename || '.' || typesubname;
269: end if;
262: ignore := sys.dbms_sql.execute(curs);
263:
264: if (sys.dbms_sql.fetch_rows(curs) > 0) then
265: sys.dbms_sql.Column_value(curs, 1, datatype);
266: sys.dbms_sql.Column_value(curs, 2, typename);
267: sys.dbms_sql.Column_value(curs, 3, typesubname);
268: arg_type_name := typename || '.' || typesubname;
269: end if;
270: sys.dbms_sql.close_cursor(curs);
263:
264: if (sys.dbms_sql.fetch_rows(curs) > 0) then
265: sys.dbms_sql.Column_value(curs, 1, datatype);
266: sys.dbms_sql.Column_value(curs, 2, typename);
267: sys.dbms_sql.Column_value(curs, 3, typesubname);
268: arg_type_name := typename || '.' || typesubname;
269: end if;
270: sys.dbms_sql.close_cursor(curs);
271:
266: sys.dbms_sql.Column_value(curs, 2, typename);
267: sys.dbms_sql.Column_value(curs, 3, typesubname);
268: arg_type_name := typename || '.' || typesubname;
269: end if;
270: sys.dbms_sql.close_cursor(curs);
271:
272: else
273: arg_type_name := datatype;
274: end if;
276:
277: exception
278: when others then
279: if (curs > 0) then
280: sys.dbms_sql.close_cursor(curs);
281: end if;
282: arg_type_name := '';
283: end;
284: