interaction between ALTER SESSION and autonomous transactions. : Session variable « SQL Plus « Oracle PL / SQL

Oracle PL / SQL
1. Aggregate Functions
2. Analytical Functions
3. Char Functions
4. Constraints
5. Conversion Functions
6. Cursor
7. Data Type
8. Date Timezone
9. Hierarchical Query
10. Index
11. Insert Delete Update
12. Large Objects
13. Numeric Math Functions
14. Object Oriented Database
15. PL SQL
16. Regular Expressions
17. Report Column Page
18. Result Set
19. Select Query
20. Sequence
21. SQL Plus
22. Stored Procedure Function
23. Subquery
24. System Packages
25. System Tables Views
26. Table
27. Table Joins
28. Trigger
29. User Previliege
30. View
31. XML
Java
Java Tutorial
Java Source Code / Java Documentation
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
C# / C Sharp
C# / CSharp Tutorial
ASP.Net
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
PHP
Python
SQL Server / T-SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
Oracle PL / SQL » SQL Plus » Session variable 
interaction between ALTER SESSION and autonomous transactions.
 
SQL>
SQL>
SQL> CREATE TABLE MyTable (
  2    num_col    NUMBER,
  3    char_col   VARCHAR2(60)
  4    );

Table created.

SQL>
SQL> CREATE OR REPLACE PROCEDURE InsertDate1(p_Msg IN VARCHAR2AS
  2    PRAGMA AUTONOMOUS_TRANSACTION;
  3  BEGIN
  4    INSERT INTO MyTable(num_col, char_col)
  5      VALUES (400, p_Msg || ': ' || SYSDATE);
  6    COMMIT;
  7  END InsertDate1;
  8  /

Procedure created.

SQL> show errors
No errors.
SQL>
SQL> CREATE OR REPLACE PROCEDURE InsertDate2(p_Msg IN VARCHAR2AS
  2    PRAGMA AUTONOMOUS_TRANSACTION;
  3  BEGIN
  4    EXECUTE IMMEDIATE
  5      'ALTER SESSION SET NLS_DATE_FORMAT =
  6        ''MM/DD/YYYY HH24:MI:SS''';
  7
  8    INSERT INTO MyTable(num_col, char_col)
  9      VALUES (400, p_Msg || ': ' || SYSDATE);
 10    COMMIT;
 11  END InsertDate2;
 12  /

Procedure created.

SQL> show errors
No errors.
SQL>
SQL>
SQL> DELETE FROM MyTable;

rows deleted.

SQL>
SQL> ALTER SESSION SET NLS_DATE_FORMAT = 'DD-MON-YYYY HH24:MI:SS';

Session altered.

SQL>
SQL> BEGIN
  2    InsertDate1('First insert');
  3    InsertDate2('Second insert');
  4    InsertDate1('Third insert');
  5  END;
  6  /
BEGIN
*
ERROR at line 1:
ORA-00034: cannot COMMIT in current PL/SQL session
ORA-06512: at "JAVA2S.INSERTDATE1", line 6
ORA-06512: at line 2


SQL>
SQL> SELECT char_col
  2    FROM MyTable
  3    WHERE num_col = 400;

no rows selected

SQL>
SQL> ALTER SESSION DISABLE COMMIT IN PROCEDURE;

Session altered.

SQL>
SQL> BEGIN
  2    InsertDate1('With COMMIT IN PROCEDURE disabled');
  3    COMMIT;
  4  END;
  5  /
BEGIN
*
ERROR at line 1:
ORA-00034: cannot COMMIT in current PL/SQL session
ORA-06512: at "JAVA2S.INSERTDATE1", line 6
ORA-06512: at line 2


SQL>
SQL>
SQL> drop table MyTable;

Table dropped.

SQL>
SQL>

 
Related examples in the same category
1. alter the session with the ALTER SESSION statement and set the session's time zone forward
2. alter session set nls_date_format = 'dd-MON-yyyy hh24:mi:ss';
3. alter session set OPTIMIZER_MODE = RULE
4. Adjust your session time zone to -08:00, display the contents of your time table.
5. alter session set cursor_sharing = force
6. alter session set use_stored_outlines
7. Event-based call and exception tracing
8. event-based call and exception tracing.
9. SQL trace
10. uses dynamic SQL to issue an ALTER SESSION statement.
11. ALTER SESSION SET QUERY_REWRITE_ENABLED
12. alter session set sql_trace=true
13. sql_trace a stored procedure
14. Set the following session parameters to enable query rewrite:
15. If your session time zone is not US/Central (-06:00), alter your session to Central time:
16. alter session set nls_date_format = 'DD-MON-YYYY HH24:MI:SS'
17. Alter time_zone
18. sessiontimezone, current_timestamp
19. demonstrates the use of DBMS_SQL to execute an ALTER SESSION statement.
w___ww___.__j___a___v__a___2__s__.c___om_ | Contact Us
Copyright 2003 - 08 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.