how to - fnd applicatons.pdf

Upload: julioyc

Post on 08-Aug-2018

229 views

Category:

Documents


0 download

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)