25:
26: s VARCHAR2(2000) := p_cols;
27: p INTEGER;
28: i INTEGER := 1;
29: val dbms_sql.varchar2s;
30:
31: BEGIN
32: val(1) := '';
33: val(2) := '';
330: PROCEDURE EXEC_SQL (STRING IN VARCHAR2) IS
331: CUR INTEGER;
332: RET INTEGER;
333: BEGIN
334: CUR := DBMS_SQL.OPEN_CURSOR;
335: DBMS_SQL.PARSE(CUR, STRING, DBMS_SQL.NATIVE);
336: RET := DBMS_SQL.EXECUTE(CUR);
337: DBMS_SQL.CLOSE_CURSOR(CUR);
338:
331: CUR INTEGER;
332: RET INTEGER;
333: BEGIN
334: CUR := DBMS_SQL.OPEN_CURSOR;
335: DBMS_SQL.PARSE(CUR, STRING, DBMS_SQL.NATIVE);
336: RET := DBMS_SQL.EXECUTE(CUR);
337: DBMS_SQL.CLOSE_CURSOR(CUR);
338:
339: exception when others then
332: RET INTEGER;
333: BEGIN
334: CUR := DBMS_SQL.OPEN_CURSOR;
335: DBMS_SQL.PARSE(CUR, STRING, DBMS_SQL.NATIVE);
336: RET := DBMS_SQL.EXECUTE(CUR);
337: DBMS_SQL.CLOSE_CURSOR(CUR);
338:
339: exception when others then
340: IF dbms_sql.is_open(cur) THEN
333: BEGIN
334: CUR := DBMS_SQL.OPEN_CURSOR;
335: DBMS_SQL.PARSE(CUR, STRING, DBMS_SQL.NATIVE);
336: RET := DBMS_SQL.EXECUTE(CUR);
337: DBMS_SQL.CLOSE_CURSOR(CUR);
338:
339: exception when others then
340: IF dbms_sql.is_open(cur) THEN
341: dbms_sql.close_cursor(cur);
336: RET := DBMS_SQL.EXECUTE(CUR);
337: DBMS_SQL.CLOSE_CURSOR(CUR);
338:
339: exception when others then
340: IF dbms_sql.is_open(cur) THEN
341: dbms_sql.close_cursor(cur);
342: END IF;
343: raise;
344: END EXEC_SQL;
337: DBMS_SQL.CLOSE_CURSOR(CUR);
338:
339: exception when others then
340: IF dbms_sql.is_open(cur) THEN
341: dbms_sql.close_cursor(cur);
342: END IF;
343: raise;
344: END EXEC_SQL;
345: