PL SQL

TABLES are like Arrays, used for temporary storage. The declaration of TABLE involves 2 steps: Declare the table structure using TYPE statement and then declare the actual table.

By calling the standard fnd_profile procedure.

External tables can be used to load flat files into the database. Steps: First create a directory say ext_dir and place the flat file (file.csv) in it and grant read/write access to it. Then create the table as below: create table erp_ext_table ( i Number, n Varchar2(20), m Varchar2(20) ) organization external ( type oracle_loader default directory ext_dir access parameters ( records delimited by newline fields terminated by , missing field values are null ) location (file.csv) ) reject limit unlimited;

The RANK() and DENSE_RANK() functions can be used to determine the LAST N or BOTTOM N rows.

Declare ... Excep_name exception; procedure Excep_name is begin raise some_exc; end Excep_name; Begin .... end;

Updates done wouldn't be Rolled Back as CREATE statement which is a DDL would issue a COMMIT after the creation of the table.

When Trace option is Enabled, the .trc file is created in Udump folder which is not in readable format. Tkprof utility is used to convert this .trc file into a readable format. syntax: tkprof trcfilename outputfilename

select text from dba_source where name = 'Procedurename'

TRUNCATE will completely erase the data where as in DELETE you have the option to delete only few rows. TRUNCATE is DDL command where as DELETE is DML command

Yes but by defining an autonomous transaction.

Yes only INSTEAD OF trigger can be used to modify a view. CREATE OR REPLACE TRIGGER trigger_name INSTEAD OF INSERT ON view name begin ... end;

A ref cursor is a variable, defined as a cursor type, which will point to a cursor result. The advantage that a ref cursor has over a plain cursor is that is can be passed as a variable to a procedure or a function. Ref Cursors are of 2 types: Weak and Strong. In the case of Strong type, the data type of the returned cursor result is defined whereas in Weak type, it is not defined. Eg:type erp_cursor is ref cursor; -- weak type erp_cursor is ref cursor returning erp%rowtype; --strong declare 2 type erp_cursor is ref cursor; 3 c1 erp_cursor; 4 r_c1 articles%rowtype; 5 r2_c1 scripts%rowtype; 6 7 begin 8 open c1 for select * from articles; 9 fetch c1 into r_c1; 10 close c1; 11 open c1 for select * from scripts; 12 fetch c1 into r2_c1; 13 close c1; 14 end;

Yes

.log .bad .discard

System defined and user defined Exceptions

Function has to return a value where procedure may or maynot return values. Function can be used in SQL statements and procedures can not.

Dynamic SQL allows you to construct a query, a DELETE statement, a CREATE TABLE statement, or even a PL/SQL block as a string and then execute it at runtime.

FND_REQUEST.SUBMIT_REQUEST()

Materialized view will not be refreshed everytime you query the view so to have good performance when data is not changed so rapidly we use Materialized views rather than normal views which always fetches data from tables everytime you run a query on it.

The RAISE_APPLICATION_ERROR is a procedure defined by Oracle that allows to raise an exception and associate an error number and message with the procedure.

Triggers are simply stored procedures that are ran automatically by the database whenever some event happens. The general structure of triggers is: CREATE [OR REPLACE] TRIGGER trigger_name BEFORE (or AFTER) INSERT OR UPDATE [OF COLUMNS] OR DELETE ON tablename [FOR EACH ROW [WHEN (condition)]] BEGIN ... END;

An autonomous transaction is an independent transaction that is initiated by another transaction (the parent transaction). An autonomous transaction can modify data and commit or rollback independent of the state of the parent transaction.

Explicit Cursors, Implicit Cursors, Ref Cursors

TRUNCATE commits after deleting entire table i.e., cannot be rolled back. Database triggers do not fire on TRUNCATE

ROWID is a pseudo column attached to each row of a table. It is 18 characters long, blockno, rownumber are the components of ROWID

To protect some of the columns of a table from other users. - To hide complexity of a query. - To hide complexity of calculations.

SQLCODE returns the value of the error number for the last error encountered. The SQLERRM returns the actual error message for the last error encountered. They can be used in exception handling to report, or, store in an error log table, the error that occurred in the code. These are especially useful for the WHEN OTHERS exception.

The tkprof tool is a tuning tool used to determine cpu and execution times for SQL statements. You use it by first setting timed_statistics to true in the initialization file and then turning on tracing for either the entire database via the sql_trace parameter or for the session using the ALTER SESSION command. Once the trace file is generated you run the tkprof tool against the trace file and then look at the output from the tkprof tool. This can also be used to generate explain plan output.

Global temporary tables are session specific, meaning the users in other sessions cannot see or manipulate the data in the temporary table you have created. Only you can access or insert or delete or perform anything with the data in the temporary table in your session and the other users cannot use or access this. Once you end your session, the data in the temporary table will be purged.

admin

  2 Responses to “PL SQL FAQ”

  1. 1. Trace: For checking the performance of any concurrent program/form/report.
    Tuning: To improve the performance.

    First generate the trace file and make it in readable format using the tkprof utility and then tune the query.

    2. We can use FND_PROFILE.SAVE(,,,,,NULL);

    3. Table datatype is collections in plsql. We can use it for perforamnce improvement.

    TYPE IS TABLE OF %ROWTYPE INDEX BY BINARY INTEGER

    5. External tables are the files in oracle in which we can store the large data.

    6. Yes, they can. If the row is not selected using the clause ‘FOR UPDATE’.

    7. using the RANK and DENSE RANK() functions.

  2. – “Mutating” means “changing”. A mutating table is a table that is currently being modified by an update, delete, or insert statement. When a trigger tries to reference a table that is in state of flux (being changed), it is considered “mutating”, and raises an error since Oracle should never return inconsistent data

    – The statements written after CREATE TABLE. DDL statements can’t be rolled back.

    – ROW LEVEL Triggers, Statement level triggers

    – TRUNCATE will move the watermark and will release the memory where as DELETE will not release the memory.

 Leave a Reply

*

*


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

© 2011 erpSchools Suffusion theme by Sayontan Sinha