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) := '';
321: PROCEDURE EXEC_SQL (STRING IN VARCHAR2) IS
322: CUR INTEGER;
323: RET INTEGER;
324: BEGIN
325: CUR := DBMS_SQL.OPEN_CURSOR;
326: DBMS_SQL.PARSE(CUR, STRING, DBMS_SQL.NATIVE);
327: RET := DBMS_SQL.EXECUTE(CUR);
328: DBMS_SQL.CLOSE_CURSOR(CUR);
329:
322: CUR INTEGER;
323: RET INTEGER;
324: BEGIN
325: CUR := DBMS_SQL.OPEN_CURSOR;
326: DBMS_SQL.PARSE(CUR, STRING, DBMS_SQL.NATIVE);
327: RET := DBMS_SQL.EXECUTE(CUR);
328: DBMS_SQL.CLOSE_CURSOR(CUR);
329:
330: exception when others then
323: RET INTEGER;
324: BEGIN
325: CUR := DBMS_SQL.OPEN_CURSOR;
326: DBMS_SQL.PARSE(CUR, STRING, DBMS_SQL.NATIVE);
327: RET := DBMS_SQL.EXECUTE(CUR);
328: DBMS_SQL.CLOSE_CURSOR(CUR);
329:
330: exception when others then
331: IF dbms_sql.is_open(cur) THEN
324: BEGIN
325: CUR := DBMS_SQL.OPEN_CURSOR;
326: DBMS_SQL.PARSE(CUR, STRING, DBMS_SQL.NATIVE);
327: RET := DBMS_SQL.EXECUTE(CUR);
328: DBMS_SQL.CLOSE_CURSOR(CUR);
329:
330: exception when others then
331: IF dbms_sql.is_open(cur) THEN
332: dbms_sql.close_cursor(cur);
327: RET := DBMS_SQL.EXECUTE(CUR);
328: DBMS_SQL.CLOSE_CURSOR(CUR);
329:
330: exception when others then
331: IF dbms_sql.is_open(cur) THEN
332: dbms_sql.close_cursor(cur);
333: END IF;
334: raise;
335: END EXEC_SQL;
328: DBMS_SQL.CLOSE_CURSOR(CUR);
329:
330: exception when others then
331: IF dbms_sql.is_open(cur) THEN
332: dbms_sql.close_cursor(cur);
333: END IF;
334: raise;
335: END EXEC_SQL;
336: