Mega Code Archive

 
Categories / Oracle PLSQL / PL SQL
 

Calling an autonomous function from SQL

SQL> CREATE TABLE MyTable (   2    num_col    NUMBER,   3    char_col   VARCHAR2(60)   4    ); Table created. SQL> SQL> CREATE OR REPLACE FUNCTION LogParam(p1 IN NUMBER)   2    RETURN NUMBER AS   3    PRAGMA AUTONOMOUS_TRANSACTION;   4  BEGIN   5    INSERT INTO MyTable (num_col, char_col)   6      VALUES (p1, 'Logged!');   7    COMMIT;   8    RETURN p1;   9  END LogParam;  10  / Function created. SQL> SQL> SELECT LogParam(1) FROM dual; SELECT LogParam(1) FROM dual        * ERROR at line 1: ORA-00034: cannot COMMIT in current PL/SQL session ORA-06512: at "RNTSOFT.LOGPARAM", line 7 SQL> SQL> SELECT num_col   2    FROM MyTable   3    WHERE char_col = 'Logged!'; no rows selected SQL> SQL> drop table MyTable; Table dropped. SQL> SQL>