48: --
49: -- Execute compile command in a sub-block so we can trap and handle errors
50: --
51: begin
52: c := dbms_sql.open_cursor;
53:
54: dbms_sql.parse(c, statement, dbms_sql.native);
55: rows_processed := dbms_sql.execute(c);
56: dbms_sql.close_cursor(c);
50: --
51: begin
52: c := dbms_sql.open_cursor;
53:
54: dbms_sql.parse(c, statement, dbms_sql.native);
55: rows_processed := dbms_sql.execute(c);
56: dbms_sql.close_cursor(c);
57:
58: exception
51: begin
52: c := dbms_sql.open_cursor;
53:
54: dbms_sql.parse(c, statement, dbms_sql.native);
55: rows_processed := dbms_sql.execute(c);
56: dbms_sql.close_cursor(c);
57:
58: exception
59: when success_with_comp_error then
52: c := dbms_sql.open_cursor;
53:
54: dbms_sql.parse(c, statement, dbms_sql.native);
55: rows_processed := dbms_sql.execute(c);
56: dbms_sql.close_cursor(c);
57:
58: exception
59: when success_with_comp_error then
60: --
60: --
61: -- Trap and ignore ORA-24344: success with compilation error
62: -- This only happens on ORACLE 8
63: --
64: dbms_sql.close_cursor(c);
65: when others then
66: dbms_sql.close_cursor(c);
67: raise_application_error(-20000, SQLERRM || ' [Statement is: '||
68: statement||']');
62: -- This only happens on ORACLE 8
63: --
64: dbms_sql.close_cursor(c);
65: when others then
66: dbms_sql.close_cursor(c);
67: raise_application_error(-20000, SQLERRM || ' [Statement is: '||
68: statement||']');
69: end;
70: