how to - fnd applicatons.pdf
TRANSCRIPT
-
8/22/2019 How To - FND Applicatons.pdf
1/21
Compartir Informar sobre mal uso Siguiente blog Crear un blog Acceder
Tuesday
Oracle PL/SQL(Advanced)
Topics
Sub Programs (Procedure and Functions)
Stored Packages
Database Triggers
PL/SQL File I/O
Collections
Autonomous Transactions
SQL Loader
Sub Programs in PL/SQL
Subprograms are named PL/SQL blocks that can take
Parameters and be invoked.
PL/SQL has two types of subprograms called procedure and
Function
PL/SQL Programs can be stored in the database as stored
Procedure and can be invoked whenever required.
Like Unnamed or anonymous PL/SQL block , subprograms
have a declarative part, an executable part, and an optional
Exception handling part.
Procedure
A procedure is a subprogram that perform a specific action
A procedure can be called from any PL/SQL program
Procedures can also be invoked from the SQL prompt
A procedure has two parts:
1 Specification.
2 Body.
Procedure specification begins with the key word Procedure
Followed by the procedure name and an optional list of
Arguments,
enclosed within parenthesis.Procedure that take no parameters
are
written without paranthesis
Page 1 of 21Oracle Financials: Oracle PL/SQL(Advanced)
24/05/2012http://asoracle.blogspot.com/2007/10/oracle-plsqladvanced.html
-
8/22/2019 How To - FND Applicatons.pdf
2/21
Procedure body begins with the Keyword IS or AS and ends
with an
END followed by an optional procedure name.
The Procedure body has three parts:1.Declarative part.
2.Executable part.
3.Exception Handling Part.
1.Declarative Part Contains local declaration.
2.Executable Part contains statements, which are placed
between
The keyword BEGIN and Exception (or END).
3Exception Handling Part contains exception handlers, whichare placed between the keyword Exception and End. This part is
optional.
Syntax
Create [ OR REPLACE] PROCEDURE
( [mode] ,.)
IS AS
[Local declaration]
BeginPL/SQL executable statements
[Exception
Exception handlers]
End [Procedure_Name];
Where mode indicates the type of the argument (Such as
IN,OUT or
IN OUT) and Pl/sql executable statements represents the PL/SQL
Code, enclosed within Begin and End.
The OR REPLACE option is used in case the user wants to modifya previously stored procedure or function.
Example: Procedure
The Employee Number and the amount to be incremented is
Passed as parameter
Create or Replace Procedure incr_proc (pempno number, amt
number) IS
vsalary NUMBER;Salary_miss Exception;
Begin
Page 2 of 21Oracle Financials: Oracle PL/SQL(Advanced)
24/05/2012http://asoracle.blogspot.com/2007/10/oracle-plsqladvanced.html
-
8/22/2019 How To - FND Applicatons.pdf
3/21
Select sal into vsalary from emp where empno= pempno;
If vsalary is NULL THEN
Raise salary_miss;
Else
Update emp set sal = sal + amt
Where empno= pempno;End if;
Exception
When salary_miss then
Dbms_output.put_line (pempno' has salary as Null');
When no_data_found then
Dbms_output.put_line(pempno' No such Employee Number');
End incr_proc;
/
Calling a Procedure
A procedure is called as a PL/SQL statement. A procedure
can be called from any PL/SQL program by giving their name
followed by the parameters.
To call the procedure named incr_proc from a block , the
command is
incr_proc (v_empno, v_amount);
v_empno : Local variable storing the employee Number to beincremented.
v_amount : Local variable storing the amount to be
incremented.
Procedure can also be invoked from the SQL prompt using the
EXECUTE command
SQL> EXECUTE incr_proc(,);
FunctionsA function is a subprogram that returns a value.
A function must have a RETURN clause.
Functions and procedures have a similar structure , except that
The function have a Return Clause.
Create [ OR Replace] Function
([mode],..)
RETURN datatype IS
[Local Declaration]
BEGINPL/SQL executable statements
[EXCEPTION
Page 3 of 21Oracle Financials: Oracle PL/SQL(Advanced)
24/05/2012http://asoracle.blogspot.com/2007/10/oracle-plsqladvanced.html
-
8/22/2019 How To - FND Applicatons.pdf
4/21
exception handler]
END [FUNCATION_NAME];
Like a Procedure , a function has two parts:
The Specification and the Body. The function specification begins with the Keyword FUNCTION
And ends with the RETURN Clause, which specifies the datatype
of the result value.
The function body is exactly same as procedure body.
Return Statement.
Return Statement immediately returns control to the caller
Environment. Execution then resumes with the statement
following the subprogram call.
A subprogram can contain several RETURN statements.Executing
Any of them terminates the subprogram immediately. The
Return
Statement used in functions must contain an expression, which is
Evaluated when the RETURN statement is executed . The
resulting
Value is assigned to the function identifier. Therefore a
function must contain
at least one RETURN statement. Note: RETURN statement can also be used in procedures. But
it should not
contain any expression. The statement simply returns control to
the caller
before normal End of the procedure is reached.
Example: Function
CREATE OR REPLACE FUNCTION review_func (pempno Number)RETURN Number IS
vIncr emp.sal%type;
vNet emp.sal%type;
vsal emp.sal%type;
vcomm emp.comm%type;
vempno emp.empno%type;
BEGIN
SELECT empno,sal ,nvl(comm,0) INTO vempno,vsal,vcomm
FROM empWHERE empno =pempno;
vNet:=vsal+vcomm;
Page 4 of 21Oracle Financials: Oracle PL/SQL(Advanced)
24/05/2012http://asoracle.blogspot.com/2007/10/oracle-plsqladvanced.html
-
8/22/2019 How To - FND Applicatons.pdf
5/21
If vsal3000 and
vsal
-
8/22/2019 How To - FND Applicatons.pdf
6/21
with any Subprograms. A procedure or function can change
the value of the
argument, which could be used for further processing.
Stored Packages A package is a database object that groups logically related
PL/SQL objects.
Packages encapsulate related procedures, functions,associated
cursors and variables together as logical unit in the database.
Packages are made of two components: The specifications and
the body.
The specification is the interface to applications and has
declarative statements.
The body of a package contains different procedures andfunctions.
Packages are groups of procedures, functions, variables and
SQL statements grouped into a single unit.
The entire package is loaded into the memory when a
procedure,
within the package is called for the first time. This reduces the
unnecessary disk I/O and network traffic.
Packages usually have two parts, a specification and a body.
Package specification
The specification is the interface to the applications, it
declares the
types, variables, constants, exceptions, cursors and
subprograms.
The specification holds public declarations, which are visible
to the
applications. The scope of these declarations is local to your database
schema and
global to the package.So, the declared objects are accessible
from
your application and from anywhere in the package.
The Package Body
The body fully defines cursors and subprograms, and so
implements
The body holds implementation details and privatedeclarations, which
are hidden from the application.
Page 6 of 21Oracle Financials: Oracle PL/SQL(Advanced)
24/05/2012http://asoracle.blogspot.com/2007/10/oracle-plsqladvanced.html
-
8/22/2019 How To - FND Applicatons.pdf
7/21
The scope of these declarations is local to the package body.
Unlike a package specification, the declarative part of a
package body
can contain subprogram bodies.
Main Advantages of Packages
Better Performance
Overloading
A package is created interactively with SQL*Plus
using the CREATE PACKAGE and CREATE PACKAGE BODY
commands.
The syntax is:
Package Specification Syntax
CREATE[OR REPLACE] PACKAGE as/*
DECLARATIONS OF GLOBAL VARIABLES AND CURSORS (IF ANY);
PROCEDURES AND FUNCTIONS;
*/
END [];
Package Body Syntax
CREATE [OR REPLACE] PACKAGE BODY AS/*
PRIVATE TYPE AND OBJECT DECLARATION,
SUBPROGRAM BODIES;
*/
[BEGIN
--ACTION STATEMENTS;]
END [PKG-NAME];
Example of Package
CREATE OR REPLACE PACKAGE EMP_PACK AS
PROCEDURE EMP_PROC (PEMPNO IN EMP.EMPNO%TYPE);
FUNCTION INCR_FUNC (PEID NUMBER, amt NUMBER)
RETURN NUMBER;
END EMP_PACK;
/
CREATE OR REPLACE PACKAGE BODY EMP_PACK
ASPROCEDURE EMP_PROC (PEMPNO IN EMP. EMPNO%TYPE)
IS
Page 7 of 21Oracle Financials: Oracle PL/SQL(Advanced)
24/05/2012http://asoracle.blogspot.com/2007/10/oracle-plsqladvanced.html
-
8/22/2019 How To - FND Applicatons.pdf
8/21
VTEMPNAME EMP.ENAME%TYPE;
VTESAL EMP.SAL%TYPE;
BEGIN
SELECT ENAME,SAL INTO VTEMPNAME,VTESAL FROM EMP WHERE
EMPNO=PEMPNO;DBMS_OUTPUT.PUT_LINE (PEMPNO VTEMPNAMEVTESAL);
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE (PEMPNO 'NOT FOUND');
END EMP_PROC;
FUNCTION INCR_FUNC (PEID NUMBER, amt NUMBER)
RETURN NUMBER IS
vsalary NUMBER;
salary_miss EXCEPTION;vtemp NUMBER;
BEGIN
SELECT sal INTO vsalary FROM emp WHERE empno=PEID;
IF vsalary IS NULL THEN
RAISE salary_miss;
/*If the vsalary is NULL an exception salary_miss is raised*/
ELSE
UPDATE emp set sal = sal+ amt where empno =PEID;vtemp:=vsalary + amt;
RETURN (vtemp);
END IF;
EXCEPTION
WHEN salary_miss THEN
dbms_output.put_line (PEID ' has salary as NULL');
/* If the employee number is not found the exception NO_DATA
FOUND
is raised*/WHEN NO_DATA_FOUND THEN
dbms_output.put_line (PEID 'No such number');
END INCR_FUNC;
END EMP_PACK;
/
Calling a Procedure and Function of a Package
Calling a Procedure of a Package
EXECUTE EMP_PACK.EMP_PROC(7499);
Page 8 of 21Oracle Financials: Oracle PL/SQL(Advanced)
24/05/2012http://asoracle.blogspot.com/2007/10/oracle-plsqladvanced.html
-
8/22/2019 How To - FND Applicatons.pdf
9/21
Calling a Function of a Package
DECLARE
vsalary NUMBER;
BEGIN
vsalary:=EMP_PACK.INCR_FUNC(7499,100);dbms_output.put_line (vsalary);
END;
/
Database Triggers
A database trigger is a stored PL/SQL Program unit
associated with a specific database table Unlike the stored procedures or functions
which have to be explicitly invoked, these triggers implicitly
gets fired (executed) Whenever the table is affected by any
SQL operation
Parts of Trigger
--Trigger event
--Trigger Constraints (Optional)
--Trigger action
Trigger Events A triggering event or statement is the sql
statement that
Causes a trigger to be fired. A triggering event can be
INSER,UPDATE or DELETE
statement for a specific table
Trigger Restriction
Trigger restriction specifies a Boolean expression that must be
True for a Triggerto fire. The Trigger action is not executed if the trigger
restriction evaluates to
FALSE. A trigger restriction is an option available for trigger
that are fired for each
row. Its function is to conditionally control the execution of the
trigger
A trigger restriction is specified using a WHEN clause.
Trigger Action
A trigger action is the procedure (PL/SQL block) that containthe SQL statements
and PLSQL Code to be executed when a triggering Statement is
Page 9 of 21Oracle Financials: Oracle PL/SQL(Advanced)
24/05/2012http://asoracle.blogspot.com/2007/10/oracle-plsqladvanced.html
-
8/22/2019 How To - FND Applicatons.pdf
10/21
issued and the
trigger restriction evaluates to True
Syntax
Create [or Replace] TRIGGER
BEFORE AFTER INSTEAD OFDELETE [OR] INSERT [OR] UPDATE [ OF [, ]]
ON
[REFERENCING [OLD [AS] ] [NEW [AS] ]]
[FOR EACH ROW [ WHEN ]]
BEGIN
---
/* PL/SQL Block */
----END;
Description of Syntax of Database Trigger
Before Option
Oracle Fires the trigger before modifying each row affected by
The triggering statement
After Option
Oracle fires the trigger after modifying each row affected
by the triggering statement
Instead of Option
Oracle fires the trigger for each row , to do something else
Instead of performing the action that executed the trigger.
WHEN Specifies the trigger restriction . This condition has to besatisfied to
fire trigger. The condition can be specified for the ROW
TRIGGER.
Statement Level Trigger:
Statement level trigger executes once for each transaction.
For example if a single Transaction inserted 1000 rows into the
EMP table, then a statement level trigger on that tablewould only be executed once.
Page 10 of 21Oracle Financials: Oracle PL/SQL(Advanced)
24/05/2012http://asoracle.blogspot.com/2007/10/oracle-plsqladvanced.html
-
8/22/2019 How To - FND Applicatons.pdf
11/21
Example:
To create a trigger for the EMP Table,
which makes the entry in the Ename column in Upper case
Create or replace trigger upper_trig1
Before insert or update of ename on emp for each rowBegin
:new.ename:=upper(:new.ename);
End;
/
RAISE_APPLICATION_ERROR
The raise application error is a built in Oracle Procedure which
lets user issue theuser defined error messages
Range varies from (-20000 to -20999)
CREATE OR REPLACE TRIGGER Test_Trig BEFORE INSERT on emp
FOR EACH ROW
BEGIN
IF inserting then
IF :NEW.sal=1500 then
RAISE_APPLICATION_ERROR(-20231,'Insertion Not Allowed');
END IF;END IF;
END;
/
Instead of Trigger tells oracle what to do instead of performing
the action that executed the trigger
Except instead of trigger , all trigger can be used only on
tables.
Instead of triggers can be used only on viewExample
View Create
create or replace view v_instead1 as
select empno,ename,emp.deptno,job,sal,dname,loc from
emp,dept
where emp.deptno= dept.deptno
Trigger Create
create or replace trigger Tv_instead1 instead of delete on
v_instead1 for each row begindelete from emp where deptno=:old.deptno;
delete from dept where deptno=:old.deptno;
Page 11 of 21Oracle Financials: Oracle PL/SQL(Advanced)
24/05/2012http://asoracle.blogspot.com/2007/10/oracle-plsqladvanced.html
-
8/22/2019 How To - FND Applicatons.pdf
12/21
Syntax and use of the UTL_FILE package Functions andProcedures:
1. FUNCTION FOPEN
FUNCTION FOPEN (LOCATION, FILENAME, OPEN_MODE)
RETURN UTL_FILE.FILE_TYPE;
LOCATION is the operating system-specific string that specifies
the
directory or area in which to open the file
FILENAME is the name of the file, including extension, without
anydirectory information.
OPEN_MODE is a string that specifies how the file is to be
opened.
Options allowed are R for Read, W for Write and A for
Append.
Function FOPEN returns a file handle that is used in
subsequent file
Operations.
Example:V_FILENAME:=UTL_FILE.FOPEN(P_FILEDIR, P_FILENAME, R);
end;
PL/SQL File I/O (Input/Output)
File I/O is done through the supplied package UTL_FILE.
The Oracle 8i Server adds file Input/Output capabilities toPL/SQL.
This is done through the supplied package UTL_FILE.
This package has some procedures and functions which add
power to
interact with a file.
The file I/O capabilities are similar to those of the standard
operating
system stream file I/O (OPEN,GET,PUT,CLOSE), similar to the C
programming file functions with some limitations. For example, you call the FOPEN function to return a file
handle,
which you then use in subsequent calls to GET_LINE or PUT to
perform stream I/O to a file.
After performing I/O on the file FCLOSE can be used to close
the file.
Page 12 of 21Oracle Financials: Oracle PL/SQL(Advanced)
24/05/2012http://asoracle.blogspot.com/2007/10/oracle-plsqladvanced.html
-
8/22/2019 How To - FND Applicatons.pdf
13/21
2. FUNCTION IS_OPEN
FUNCTION IS_OPEN (FILE)
RETURN BOOLEAN;
where
FILE is the value returned by FOPEN.Function IS_OPEN tests a file handle to determine if it identifies
an open
file.
Example:
BEGIN
IF UTL_FILE.IS_OPEN (P_FILE) THEN
.
.END IF;
END;
3. PROCEDURE FCLOSE
PROCEDURE FCLOSE (FILE)
where
FILE is the value returned by an FOPEN operation.
PROCEDURE FCLOSE closes the open file identified by FILE.
Example:
UTL_FILE.FCLOSE(V_FILEHANDLE);
4. PROCEDURE GET_LINE
PROCEDURE GET_LINE (FILE, BUFFER);
where
FILE is the value returned by an FOPEN operation.
BUFFER holds the read text.
5. PROCEDURE GET_LINE reads a line of text from the open file
identified by FILE and places the text in the output BUFFER.
Example:
UTL_FILE.GET_LINE (V_FILEHANDLE, V_NEWLINE);
6. PROCEDURE PUT_LINE
PROCEDURE PUT_LINE (FILE, BUFFER);
where
FILE is the value returned by an FOPEN operation.
Page 13 of 21Oracle Financials: Oracle PL/SQL(Advanced)
24/05/2012http://asoracle.blogspot.com/2007/10/oracle-plsqladvanced.html
-
8/22/2019 How To - FND Applicatons.pdf
14/21
BUFFER is the text to write.
PROCEDURE PUT_LINE writes text string BUFFER to the file
identified by FILE, then writes a line terminator
Example:
UTL_FILE.PUT_LINE (V_FILEHANDLE, ROLLNO NAME SUBJECT );
UTL_FILE.PUT_LINE (V_FILEHANDLE, --------- ----- ------ );The file will be written with the following format:
ROLLNO NAME SUBJECT
--------- ---- ------
Collections
Nested Tables
VARYING Arrays (VARRAY)
Nested Tables
A nested tables is useful for data models requiring referential
integrity
and is suitable for master-detail and one to many relationships.
A nested table is a database table which stores data in it, that
cannot be
A Nested Table can be included in a table definition as one of
the
columns. That is why, they are known as Nested Tables.
Nested Tables can be manipulated directly using SQL.
To create a nested table the syntax is as follows:
CREATE TYPE TABLE_NAME IS TABLE OF TABLE_TYPE [NOT
NULL];
where:
TABLE_NAME The name of new type
TABLE_TYPE The type of each element in a nested table. It can
be
built-in type, a user defined type or a reference to
object type.
Example:
CREATE TYPE BOOKS_TYPE AS OBJECT
(BOOK_NO NUMBER (4),
BOOK_TITLE VARCHAR (20),
AUTHOR VARCHAR2(20));
/
Type created.
Page 14 of 21Oracle Financials: Oracle PL/SQL(Advanced)
24/05/2012http://asoracle.blogspot.com/2007/10/oracle-plsqladvanced.html
-
8/22/2019 How To - FND Applicatons.pdf
15/21
CREATE TYPE BOOKS AS TABLE OF BOOKS_TYPE;
/
Type created.
Example:
CREATE TABLE STUDENT (STUDENT_NO NUMBER(4) NOT NULL,
STUDENT_NAME VARCHAR2(25),
BOOKS_ISSUED BOOKS )
NESTED TABLE BOOKS_ISSUED STORE AS BOOK_TABLE;
Table created.
Inserting Records
INSERT INTO STUDENT VALUES
(1001, 'AMIT KUMAR',
BOOKS (BOOKS_TYPE(3211, 'ORACLE 8 UNLEASHED', 'KAIT'),BOOKS_TYPE(3922, 'PL/SQL PROG','J J')));
accessed directly.
Update is used to modify the store table
The Operator allows nested tables to be manipulated using
DML when it is stored in a table
The table takes the sub query as argument and returns the
Nested table to be used in DML.
The Sub Query must return single nested columns
Example:
UPDATE THE (SELECT BOOKS_ISSUED FROM STUDENT WHERE
STUDENT_NO=1001)
SET BOOK_TITLE = 'ORACLE UNLEASHED'
WHERE BOOK_NO=3211;
Inserting records in nested Table
Example:
Insert into the (select books_issued from student where
student_no=1001)
values (books_type(5111, 'Visual Basic', 'Ken'));
Selecting a records from the Nested Table
Example:
select * FROM THE (SELECT BOOKS_ISSUED FROM STUDENT
WHERE
STUDENT_NO=1001) WHERE BOOK_NO=3211
/
Deleting a records from the Nested Table
Page 15 of 21Oracle Financials: Oracle PL/SQL(Advanced)
24/05/2012http://asoracle.blogspot.com/2007/10/oracle-plsqladvanced.html
-
8/22/2019 How To - FND Applicatons.pdf
16/21
For deleting a row from the nested table using the condition
from the
nested table
DELETE FROM THE (SELECT BOOKS_ISSUED FROM STUDENT
WHERE
STUDENT_NO=1001) WHERE BOOK_NO=3211;
VARRAYS
Varray is a datatype similar to an array in C or PASCAL.
Elements are
inserted into a VARRAY, starting at index 1 up to the maximum
length
declared in the VARRAY type.
A VARRAY has the following:
COUNT Current Number of elements
LIMIT Maximum number of elements the VARRAY can
contain. The LIMIT is user defined.
Each element of the array has the position indicated by an
index which
can range from one to the COUNT value.
A VARRAY can be stored in a database column. A VARRAY can
only
be manipulated as a whole. Individual elements of stored
VARRAYS
cannot be modified.
Creating VARRAYs
Example:
CREATE TYPE BOOKS_TYPE1 AS OBJECT
(BOOK_NO NUMBER (4),
BOOK_TITLE VARCHAR (20),
AUTHOR VARCHAR2(20));
/
Type created.
CREATE OR REPLACE TYPE BOOKS_ARRAY AS VARRAY(10)
OF BOOKS_TYPE1;
/
Type created.
CREATE TABLE STUDENTS1(
STUDENT_NO NUMBER(4),
Page 16 of 21Oracle Financials: Oracle PL/SQL(Advanced)
24/05/2012http://asoracle.blogspot.com/2007/10/oracle-plsqladvanced.html
-
8/22/2019 How To - FND Applicatons.pdf
17/21
BOOKS_ISSUED BOOKS_ARRAY);
Table created.
Inserting Rows
The values can be inserted in a VARRAY as a whole, we caninsert rows Into the table using
the constructor as follows:
INSERT INTO STUDENTS1
VALUES
(2355, BOOKS_ARRAY(
BOOKS_TYPE1(1020,'ORACLE BEGINNERS', 'ORACLE PRESS'),
BOOKS_TYPE1(1111,'TUNING ORACLE','CONEY')));
This row contains a VARRAY BOOKS_ARRAY having two elements
Updating Rows
The VARRAYs can be updated as a whole. Individual elements
cannot
be accessed.
UPDATE STUDENTS1
SET BOOKS_ISSUED=BOOKS_ARRAY(
BOOKS_TYPE1(1020,'ORACLE BEGINNERS','ORACLE PRESS'))
WHERE STUDENT_NO=2355;
The row for STUDENT_NO 2355, will have only one element inthe
VARRAY column.
To modify a stored VARRY, it has to be selected into a PLSQL
variable and then inserted back into the table .
The Technique is as below:
Note:
LIST_OF_BOOKS.COUNT gives the number of elements in the
VARRAYLIST_OF_BOOK.EXTEND appends one element ot the array i.e
increase the array limit by 1
Example
DECLARE
LIST_OF_BOOKS BOOKS_ARRAY;
BEGIN
SELECT BOOKS_ISSUED INTO LIST_OF_BOOKS
FROM STUDENTS1 WHERE STUDENT_NO=2355;
DBMS_OUTPUT.PUT_LINE('NO OF BOOKS ISSUED' TO_CHAR(LIST_OF_BOOKS.COUNT));
DBMS_OUTPUT.PUT_LINE('ARRAY LIMIT' LIST_OF_BOOKS.LIMIT);
Page 17 of 21Oracle Financials: Oracle PL/SQL(Advanced)
24/05/2012http://asoracle.blogspot.com/2007/10/oracle-plsqladvanced.html
-
8/22/2019 How To - FND Applicatons.pdf
18/21
LIST_OF_BOOKS.EXTEND;
LIST_OF_BOOKS(LIST_OF_BOOKS.COUNT):=BOOKS_TYPE
(2334,'DBA HANDBOOK','KEVIN');
UPDATE STUDENTS1 SET BOOKS_ISSUED=LIST_OF_BOOKS WHERE
STUDENT_NO=2355;
COMMIT;END;
/
Autonomous Transactions
An Autonomous Transaction (AT) is an independent transaction
started by another
Transaction, The main transaction (MT). At the time of
execution it lets you
suspend the main transaction, do SQL Operation, Commit, or
rollback those operation , then resume the main transaction. It
always
Executes with in an autonomous scope.
An autonomous Block is a routine marked with the
PRAGMA AUTONOMOUS_TRANSACTION
Example of Autonomous Transaction
Main Transaction
CREATE OR REPLACE Procedure PROC1_TRAN is
EMP_ID NUMBER:=7499;
BEGIN
UPDATE EMP SET SAL =SAL+100
WHERE EMPNO=EMP_ID;
PROC2_TRAN(EMP_ID);
DELETE FROM EMP
WHERE EMPNO=EMP_ID;
ROLLBACK;
END;
/
Autonomous Transaction
CREATE OR REPLACE Procedure PROC2_TRAN(P_EMP_ID
NUMBER) is
PRAGMA AUTONOMOUS_TRANSACTION;
DEPT_ID NUMBER;
BEGIN
SELECT DEPTNO INTO DEPT_ID FROM EMP WHERE
EMPNO=P_EMP_ID;
UPDATE DEPT SET DNAME='ACCOUNTING1'
Page 18 of 21Oracle Financials: Oracle PL/SQL(Advanced)
24/05/2012http://asoracle.blogspot.com/2007/10/oracle-plsqladvanced.html
-
8/22/2019 How To - FND Applicatons.pdf
19/21
WHERE DEPTNO=30;
COMMIT;
END;
/
SQL loader
This tool is used to move the data from Non oracle standard
source into the oracle
Database Using sql loader a user can
Load data from multiple data files
Two types on input have to be provided to SQL*Loader.
The data file containing the actual data
The control file containing the specification which drive the
sql*loader session
SQL Loader generates three files
The log file (Summary of the execution of the Load)
The bad File (Rejected by Oracle)
The discard File (Doesn't meet the condition)
Create a Data File EMPLOYEE.TXT with following contents :
3000,HARPREET,ENGG,10000
3001,PREET1, ,20000
Create a Control File TEST.CTL with following contents :
LOAD DATA
INFILE 'EMPLOYEE.TXT'
APPEND
INTO TABLE EMP
WHEN JOB != ' '
Fields Terminated By ","
(
EMPNO
,ENAME
,JOB
,SAL
)
Calling a Control File TEST.CTL which in turn refers to
EMPLOYEE.TXT file for Data are:
SQLLDR CONTROL=TEST.CTL
Page 19 of 21Oracle Financials: Oracle PL/SQL(Advanced)
24/05/2012http://asoracle.blogspot.com/2007/10/oracle-plsqladvanced.html
-
8/22/2019 How To - FND Applicatons.pdf
20/21
Posted by Ajeet Singh at 14:41
0 comments:
Post a Comment
Subscribe to: Post Comments (Atom)
Followers
Subscribe To
HomeNewer Post Older Post
Page 20 of 21Oracle Financials: Oracle PL/SQL(Advanced)
24/05/2012http://asoracle.blogspot.com/2007/10/oracle-plsqladvanced.html
-
8/22/2019 How To - FND Applicatons.pdf
21/21
Page 21 of 21Oracle Financials: Oracle PL/SQL(Advanced)