What are the various types of queries
?
Answer: The types of queries are:
Normal Queries
Sub Queries
Co-related queries
Nested queries
Compound queries
What is a transaction ?
Answer: A transaction is a set of SQL
statements between any two COMMIT and ROLLBACK statements.
What is implicit cursor and how is it
used by Oracle ?
Answer: An implicit cursor is a cursor
which is internally created by Oracle.It is created by Oracle for each
individual SQL.
Which of the following is not a schema
object : Indexes, tables, public synonyms, triggers and packages ?
Answer: Public synonyms
What is PL/SQL?
Answer: PL/SQL is Oracle's Procedural
Language extension to SQL.The language includes object oriented programming
techniques such as encapsulation, function overloading, information hiding (all
but inheritance), and so, brings state-of-the-art programming to the Oracle
database server and a variety of Oracle tools.
Is there a PL/SQL Engine in SQL*Plus?
Answer: No.Unlike Oracle Forms,
SQL*Plus does not have a PL/SQL engine.Thus, all your PL/SQL are send directly
to the database engine for execution.This makes it much more efficient as SQL
statements are not stripped off and send to the database individually.
Is there a limit on the size of a
PL/SQL block?
Answer: Currently, the maximum
parsed/compiled size of a PL/SQL block is 64K and the maximum code size is
100K.You can run the following select statement to query the size of an
existing package or procedure. SQL> select * from dba_object_size where name
= 'procedure_name'
Can one read/write files from PL/SQL?
Answer: Included in Oracle 7.3 is a
UTL_FILE package that can read and write files.The directory you intend writing
to has to be in your INIT.ORA file (see UTL_FILE_DIR=...parameter).
Before Oracle 7.3 the only means of
writing a file was to use DBMS_OUTPUT with the SQL*Plus SPOOL command.
DECLARE
fileHandler UTL_FILE.FILE_TYPE;
BEGIN
fileHandler :=
UTL_FILE.FOPEN('/home/oracle/tmp', 'myoutput','W');
UTL_FILE.PUTF(fileHandler, 'Value of
func1 is %sn', func1(1));
UTL_FILE.FCLOSE(fileHandler);
END;
Can you use a DDL in a procedure ? How
?
Answer: From PL/SQL V2.1 one can use
the DBMS_SQL package to execute dynamic SQL statements.
Eg: CREATE OR REPLACE PROCEDURE DYNSQL
AS
cur integer;
rc integer;
BEGIN
cur := DBMS_SQL.OPEN_CURSOR;
DBMS_SQL.PARSE(cur,'CREATE TABLE X (Y
DATE)',
DBMS_SQL.NATIVE);
rc := DBMS_SQL.EXECUTE(cur);
DBMS_SQL.CLOSE_CURSOR(cur);
END;
What are the various types of
Exceptions ?
Answer: User defined and Predefined
Exceptions.
Can we define exceptions twice in same
block ?
Answer: No.
What is the difference between a
procedure and a function ?
Answer: Functions return a single
variable by value whereas procedures do not return any variable by value.Rather
they return multiple variables by passing variables by reference through their
OUT parameter.
Can you have two functions with the
same name in a PL/SQL block ?
Answer: Yes.
Can you have two stored functions with
the same name ?
Answer: Yes.
Can you call a stored function in the
constraint of a table ?
Answer: No.
What are the various types of
parameter modes in a procedure ?
Answer: IN, OUT AND INOUT.
What is Over Loading and what are its
restrictions ?
Answer: OverLoading means an object
performing different functions depending upon the no.of parameters or the data
type of the parameters passed to it.
Can functions be overloaded ?
Answer: Yes.
Can 2 functions have same name &
input parameters but differ only by return datatype
Answer: No.
What are the constructs of a
procedure, function or a package ?
Answer: The constructs of a procedure,
function or a package are :
variables and constants
cursors
exceptions
Why Create or Replace and not Drop and
recreate procedures ?
Answer: So that Grants are not
dropped.
Can you pass parameters in packages ?
How ?
Answer: Yes.You can pass parameters to
procedures or functions in a package.
What are the parts of a database
trigger ?
Answer: The parts of a trigger are:
A triggering event or statement
A trigger restriction
A trigger action
What are the various types of database
triggers ?
Answer: There are 12 types of
triggers, they are combination of :
Insert, Delete and Update Triggers.
Before and After Triggers.
Row and Statement Triggers.
What is the advantage of a stored
procedure over a database trigger ?
Answer: We have control over the
firing of a stored procedure but we have no control over the firing of a
trigger.
What is the maximum no.of statements
that can be specified in a trigger statement ?
Answer: One.
Can views be specified in a trigger
statement ?
Answer: No
What are the values of :new and :old
in Insert/Delete/Update Triggers ?
Answer: INSERT : new = new value, old
= NULL
DELETE : new = NULL, old = old value
UPDATE : new = new value, old = old
value
What are cascading triggers? What is
the maximum no of cascading triggers at a time?
Answer: When a statement in a trigger
body causes another trigger to be fired, the triggers are said to be
cascading.Max = 32.
What are mutating triggers ?
Answer: A trigger giving a SELECT on
the table on which the trigger is written.
What are constraining triggers ?
Answer: A trigger giving an
Insert/Updat e on a table having referential integrity constraint on the
triggering table.
Describe Oracle database's physical
and logical structure ?
Answer:
Physical : Data files, Redo Log files,
Control file.
Logical : Tables, Views, Tablespaces,
etc.
Can you increase the size of a
tablespace ? How ?
Answer: Yes, by adding datafiles to
it.
Can you increase the size of datafiles
? How ?
Answer: No (for Oracle 7.0)
Yes (for Oracle 7.3 by using the
Resize clause )
What is the use of Control files ?
Answer: Contains pointers to locations
of various data files, redo log files, etc.
What is the use of Data Dictionary ?
Answer: It Used by Oracle to store
information about various physical and logical Oracle structures e.g.Tables,
Tablespaces, datafiles, etc
What are the advantages of clusters ?
Answer: Access time reduced for joins.
What are the disadvantages of clusters
?
Answer: The time for Insert increases.
Can Long/Long RAW be clustered ?
Answer: No.
Can null keys be entered in cluster
index, normal index ?
Answer: Yes.
Can Check constraint be used for self
referential integrity ? How ?
Answer: Yes.In the CHECK condition for
a column of a table, we can reference some other column of the same table and
thus enforce self referential integrity.
What are the min.extents allocated to
a rollback extent ?
Answer: Two
What are the states of a rollback
segment ? What is the difference between partly available and needs recovery ?
Answer: The various states of a
rollback segment are :
ONLINE
OFFLINE
PARTLY AVAILABLE
NEEDS RECOVERY
INVALID.
What is the difference between unique
key and primary key ?
Answer: Unique key can be null;
Primary key cannot be null.
An insert statement followed by a
create table statement followed by rollback ? Will the rows be inserted ?
Answer: No.
Can you define multiple savepoints ?
Answer: Yes.
Can you Rollback to any savepoint ?
Answer: Yes.
What is the maximum no.of columns a
table can have ?
Answer: 254.
What is the significance of the &
and && operators in PL SQL ?
Answer: The & operator means that
the PL SQL block requires user input for a variable.The && operator
means that the value of this variable should be the same as inputted by the
user previously for this same variable
Can you pass a parameter to a cursor ?
Answer: Explicit cursors can take
parameters, as the example below shows.A cursor parameter can appear in a query
wherever a constant can appear.
CURSOR c1 (median IN NUMBER) IS
SELECT job, ename FROM emp WHERE sal
> median;
What are the various types of RollBack
Segments ?
Answer: The types of Rollback sagments
are as follows :
Public Available to all instances
Private Available to specific instance
Can you use %RowCount as a parameter
to a cursor ?
Answer: Yes
Is the query below allowed :
Select sal, ename Into x From emp
Where ename = 'KING' (Where x is a record of Number(4) and Char(15))
Answer: Yes
Is the assignment given below allowed
:
ABC = PQR (Where ABC and PQR are
records)
Answer: Yes
Is this for loop allowed : For x in
&Start..&End Loop
Answer: Yes
How many rows will the following SQL
return : Select * from emp Where rownum < 10;
Answer: 9 rows
How many rows will the following SQL
return : Select * from emp Where rownum = 10;
Answer: No rows
Which symbol preceeds the path to the
table in the remote database ?
Answer: @
Are views automatically updated when
base tables are updated ?
Answer: Yes
Can a trigger written for a view ?
Answer: No
If all the values from a cursor have
been fetched and another fetch is issued, the output will be : error, last
record or first record ?
Answer: Last Record
A table has the following data : [[5,
Null, 10]].What will the average function return ?
Answer: 7.5
Is Sysdate a system variable or a
system function?
Answer: System Function
Consider a sequence whose currval is 1
and gets incremented by 1 by using the nextval reference we get the next number
2.Suppose at this point we issue an rollback and again issue a nextval.What
will the output be ?
Answer: 3
Definition of relational DataBase by
Dr.Codd (IBM)?
Answer: A Relational Database is a
database where all data visible to the user is organized strictly as tables of
data values and where all database operations work on these tables.
What is Multi Threaded Server (MTA) ?
Answer: In a Single Threaded
Architecture (or a dedicated server configuration) the database manager creates
a separate process for each database user.But in MTA the database manager can
assign multiple users (multiple user processes) to a single dispatcher (server
process), a controlling process that queues request for work thus reducing the
databases memory requirement and resources.
What is Functional Dependency?
Answer: Given a relation R, attribute
Y of R is functionally dependent on attribute X of R if and only if each
X-value has associated with it precisely one -Y value in R
What is Auditing ?
Answer: The database has the ability
to audit all actions that take place within it. a) Login attempts, b) Object
Accesss, c) Database Action Result of Greatest(1,NULL) or Least(1,NULL) NULL
While designing in client/server what
are the 2 imp.things to be considered ?
Answer: Network Overhead (traffic),
Speed and Load of client server
What are the disadvantages of SQL ?
Answer: Disadvantages of SQL are :
Cannot drop a field
Cannot rename a field
Cannot manage memory
Procedural Language option not
provided
Index on view or index on index not
provided
View updation problem
When to create indexes ?
Answer: To be created when table is
queried for less than 2% or 4% to 25% of the table rows.
How can you avoid indexes ?
Answer: To make index access path
unavailable Use FULL hint to optimizer for full table scan Use INDEX or
AND-EQUAL hint to optimizer to use one index or set to indexes instead of
another. Use an expression in the Where Clause of the SQL.
What is the result of the following
SQL : Select 1 from dual UNION Select 'A' from dual;
Answer: Error
Can database trigger written on
synonym of a table and if it can be then what would be the effect if original
table is accessed.
Answer: Yes, database trigger would
fire.
Can you alter synonym of view or view
?
Answer: No
Can you create index on view
Answer: No.
What is the difference between a view
and a synonym ?
Answer: Synonym is just a second name
of table used for multiple link of database.View can be created with many
tables, and with virtual columns and with conditions.But synonym can be on
view.
What's the
length of SQL integer ?
Answer: 32
bit length
What is the
difference between foreign key and reference key ?
Answer:
Foreign key is the key i.e.attribute which refers to another table primary key.
Reference key is the primary key of table referred by another table.
Can dual
table be deleted, dropped or altered or updated or inserted ?
Answer: Yes
If content of
dual is updated to some value computation takes place or not ?
Answer: Yes
If any other
table same as dual is created would it act similar to dual?
Answer: Yes
For which
relational operators in where clause, index is not used ?
Answer:
<> , like '%...' is NOT functions, field +constant, field||''
Assume that
there are multiple databases running on one machine.How can you switch from one
to another ?
Answer:
Changing the ORACLE_SID
What are the
advantages of Oracle ?
Answer:
Portability : Oracle is ported to more platforms than any of its competitors,
running on more than 100 hardware platforms and 20 networking protocols. Market
Presence : Oracle is by far the largest RDBMS vendor and spends more on R &
D than most of its competitors earn in total revenue.This market clout means
that you are unlikely to be left in the lurch by Oracle and there are always
lots of third party interfaces available. Backup and Recovery : Oracle provides
industrial strength support for on-line backup and recovery and good software
fault tolerence to disk failure.You can also do point-in-time recovery.
Performance : Speed of a 'tuned' Oracle Database and application is quite good,
even with large databases.Oracle can manage > 100GB databases. Multiple
database support : Oracle has a superior ability to manage multiple databases
within the same transaction using a two-phase commit protocol.
What is a
forward declaration ? What is its use ?
Answer:
PL/SQL requires that you declare an identifier before using it.Therefore, you
must declare a subprogram before calling it.This declaration at the start of a
subprogram is called forward declaration.A forward declaration consists of a
subprogram specification terminated by a semicolon.
What are
actual and formal parameters ?
Answer:
Actual Parameters : Subprograms pass information using parameters.The variables
or expressions referenced in the parameter list of a subprogram call are actual
parameters.For example, the following procedure call lists two actual
parameters named emp_num and amount:
Eg.raise_salary(emp_num,
amount);Formal Parameters : The variables declared in a subprogram
specification and referenced in the subprogram body are formal parameters.For
example, the following procedure declares two formal parameters named emp_id
and increase:
Eg.PROCEDURE
raise_salary (emp_id INTEGER, increase REAL) IS current_salary REAL;
What are the
types of Notation ?
Answer:
Position, Named, Mixed and Restrictions.
What all
important parameters of the init.ora are supposed to be increased if you want
to increase the SGA size ?
Answer: In
our case, db_block_buffers was changed from 60 to 1000 (std values are 60, 550
& 3500) shared_pool_size was changed from 3.5MB to 9MB (std values are 3.5,
5 & 9MB) open_cursors was changed from 200 to 300 (std values are 200 &
300) db_block_size was changed from 2048 (2K) to 4096 (4K) {at the time of
database creation}. The initial SGA was around 4MB when the server RAM was 32MB
and The new SGA was around 13MB when the server RAM was increased to 128MB.
1. What is PL/SQL ?
PL/SQL
is a procedural language which has interactive SQL, as well as procedural
programming language constructs like conditional branching and iteration.
2. Differentiate between %
ROWTYPE and TYPE RECORD.
% ROWTYPE is used when a query
returns an entire row of a table or view.
TYPE RECORD, on the other hand, is
used when a query returns column of different tables or views.
Eg. TYPE r_emp is RECORD (sno smp.smpno%type,sname
smp sname %type)
e_rec smp ROWTYPE
Cursor
c1 is select smpno,dept from smp;
e_rec c1 %ROWTYPE
3. Explain uses of cursor.
Cursor
is a named private area in SQL from which information can be accessed. They are
required to process each row individually for queries which return multiple
rows.
4. Show code of a cursor for
loop.
Cursor
declares %ROWTYPE as loop index implicitly. It then opens a cursor, gets rows
of values from the active set in fields of the record and shuts when all
records are processed.
Eg.
FOR smp_rec IN C1 LOOP
totalsal=totalsal+smp_recsal;
ENDLOOP;
5. Explain the uses of database trigger.
A
PL/SQL program unit associated with a particular database table is called a
database trigger. It is used for :
1)Audit
data modifications.
2)Log
events transparently.
3)Enforce
complex business rules.
4)Maintain
replica tables
5)Derive
column values
6)Implement
Complex security authorizations
6. What are the two types of
exceptions.
Error
handling part of PL/SQL block is called Exception. They have two types :
user_defined and predefined.
7. Show some predefined
exceptions.
DUP_VAL_ON_INDEX
ZERO_DIVIDE
NO_DATA_FOUND
TOO_MANY_ROWS
CURSOR_ALREADY_OPEN
INVALID_NUMBER
INVALID_CURSOR
PROGRAM_ERROR
TIMEOUT
_ON_RESOURCE
STORAGE_ERROR
LOGON_DENIED
VALUE_ERROR
etc.
8. Explain
Raise_application_error.
It
is a procedure of package DBMS_STANDARD that allows issuing of user_defined
error messages from database trigger or stored sub-program.
9.Show how functions and
procedures are called in a PL/SQL block.
Function
is called as a part of an expression.
total:=calculate_sal(‘b644’)
Procedure
is called as a statement in PL/SQL.
calculate_bonus(‘b644’);
10. Explain two virtual tables
available at the time of database trigger execution.
Table
columns are referred as THEN.column_name and NOW.column_name.
For
INSERT related triggers, NOW.column_name values are available only.
For
DELETE related triggers, THEN.column_name values are available only.
For
UPDATE related triggers, both Table columns are available.
11. What are the rules to be
applied to NULLs whilst doing comparisons?
1)
NULL is never TRUE or FALSE
2)
NULL cannot be equal or unequal to other values
3)
If a value in an expression is NULL, then the expression itself evaluates to
NULL except for concatenation operator (||)
12. How is a process of PL/SQL
compiled?
Compilation
process includes syntax check, bind and p-code generation processes.
Syntax
checking checks the PL/SQL codes for compilation errors. When all errors are
corrected, a storage address is assigned to the variables that hold data. It is
called Binding. P-code is a list of instructions for the PL/SQL engine. P-code
is stored in the database for named blocks and is used the next time it is
executed.
13. Differentiate between
Syntax and runtime errors.
A
syntax error can be easily detected by a PL/SQL compiler. For eg, incorrect
spelling.
A
runtime error is handled with the help of exception-handling section in an
PL/SQL block. For eg, SELECT INTO statement, which does not return any rows.
14. Explain Commit, Rollback
and Savepoint.
For
a COMMIT statement, the following is true:
·
Other users can see the data changes made by
the transaction.
·
The locks acquired by the transaction are
released.
·
The work done by the transaction becomes
permanent.
A
ROLLBACK statement gets issued when the transaction ends, and the following is
true.
·
The work done in a transition is undone as if
it was never issued.
·
All locks acquired by transaction are
released.
It
undoes all the work done by the user in a transaction. With SAVEPOINT, only
part of transaction can be undone.
15. Define Implicit and Explicit
Cursors.
A
cursor is implicit by default. The user cannot control or process the
information in this cursor.
If
a query returns multiple rows of data, the program defines an explicit cursor.
This allows the application to process each row sequentially as the cursor
returns it.
16. Explain mutating table
error.
It
occurs when a trigger tries to update a row that it is currently using. It is
fixed by using views or temporary tables, so database selects one and updates
the other.
17. When is a declare statement
required?
DECLARE
statement is used by PL/SQL anonymous blocks such as with stand alone,
non-stored procedures. If it is used, it must come first in a stand alone file.
18. How many triggers can be
applied to a table?
A
maximum of 12 triggers can be applied to one table.
19. What is the importance of
SQLCODE and SQLERRM?
SQLCODE
returns the value of the number of error for the last encountered error whereas
SQLERRM returns the message for the last error.
20. If a cursor is open, how
can we find in a PL/SQL Block?
the
%ISOPEN cursor status variable can be used.
21. Show the two PL/SQL cursor
exceptions.
Cursor_Already_Open
Invaid_cursor
22. What operators deal with
NULL?
NVL
converts NULL to another specified value.
var:=NVL(var2,’Hi’);
IS
NULL and IS NOT NULL can be used to check specifically to see whether the value
of a variable is NULL or not.
23. Does SQL*Plus also have a
PL/SQL Engine?
No,
SQL*Plus does not have a PL/SQL Engine embedded in it. Thus, all PL/SQL code is
sent directly to database engine. It is much more efficient as each statement
is not individually stripped off.
24. What packages are available
to PL/SQL developers?
DBMS_
series of packages, such as, DBMS_PIPE, DBMS_DDL, DBMS_LOCK, DBMS_ALERT,
DBMS_OUTPUT, DBMS_JOB, DBMS_UTILITY, DBMS_SQL, DBMS_TRANSACTION, UTL_FILE.
25. Explain 3 basic parts of a
trigger.
·
A triggering statement or event.
·
A restriction
·
An action
1. What
is PL/SQL?
PL/SQL is a procedural language that
has both interactive SQL and procedural programming language constructs such as
iteration, conditional branching.
2. What
is the basic structure of PL/SQL?
PL/SQL uses block structure as its
basic structure. Anonymous blocks or nested blocks can be used in PL/SQL.
3. What
are the components of a PL/SQL block?
A set of related declarations and
procedural statements is called block.
4. What
are the components of a PL/SQL Block?
Declarative part, Executable part and
Execption part.
5. What
are the datatypes a available in PL/SQL?
Some scalar data types such as
NUMBER, VARCHAR2, DATE, CHAR, LONG,
BOOLEAN.
Some composite data types such as
RECORD & TABLE.
6. What
are % TYPE and % ROWTYPE? What are the advantages of using these over
datatypes?
% TYPE provides the data type of a
variable or a database column to that variable.
% ROWTYPE provides the record type
that represents a entire row of a table or view or columns selected in the
cursor.
The advantages are: I. need not know
about variable's data type
ii. If the database definition of a
column in a table changes, the data type of a variable changes accordingly.
7. What
is difference between % ROWTYPE and TYPE RECORD ?
% ROWTYPE is to be used whenever query
returns a entire row of a table or view.
TYPE rec RECORD is to be used whenever
query returns columns of different table or views and variables.
E.g. TYPE r_emp is RECORD (eno
emp.empno% type,ename emp ename %type );
e_rec emp% ROWTYPE
Cursor c1 is select empno,deptno from
emp;
e_rec c1 %ROWTYPE.
8. What
is PL/SQL table?
Objects of type TABLE are called
"PL/SQL tables", which are modelled as (but not the same as) database
tables, PL/SQL tables use a primary PL/SQL tables can have one column and a
primary key.
9. What
is a cursor? Why Cursor is required?
Cursor is a named private SQL area
from where information can be accessed.
Cursors are required to process rows
individually for queries returning multiple rows.
10. Explain
the two types of Cursors?
There
are two types of cursors, Implict Cursor and Explicit Cursor.
PL/SQL uses Implict Cursors for
queries.
User defined cursors are called
Explicit Cursors. They can be declared and used.
11. What
are the PL/SQL Statements used in cursor processing?
DECLARE
CURSOR cursor name, OPEN cursor name, FETCH cursor name INTO <variable
list> or Record types, CLOSE cursor name.
12. What
are the cursor attributes used in PL/SQL?
%ISOPEN - to check whether cursor is open or
not
% ROWCOUNT - number of rows
featched/updated/deleted.
% FOUND - to check whether cursor has
fetched any row. True if rows are featched.
% NOT FOUND - to check whether cursor
has featched any row. True if no rows are featched.
These attributes are proceded with SQL
for Implict Cursors and with Cursor name for Explict Cursors.
13. What
is a cursor for loop?
Cursor
for loop implicitly declares %ROWTYPE as loop index,opens a cursor, fetches
rows of values from active set into fields in the record and closes when all
the records have been processed.
eg. FOR emp_rec IN C1 LOOP
salary_total := salary_total +emp_rec
sal;
END LOOP;
14. What
will happen after commit statement ?
Cursor
C1 is
Select empno,
ename from emp;
Begin
open C1; loop
Fetch C1 into
eno.ename;
Exit When
C1 %notfound;-----
commit;
end loop;
end;
The cursor having query as SELECT ....
FOR UPDATE gets closed after COMMIT/ROLLBACK.
The cursor having query as SELECT....
does not get closed even after COMMIT/ROLLBACK.
15. Explain
the usage of WHERE CURRENT OF clause in cursors ?
WHERE CURRENT OF clause in an
UPDATE,DELETE statement refers to the latest row fetched from a cursor.
16. What
is a database trigger ? Name some usages of database trigger ?
Database trigger is stored PL/SQL
program unit associated with a specific database table. Usages are Audit data
modificateions, Log events transparently, Enforce complex business rules Derive
column values automatically, Implement complex security authorizations.
Maintain replicate tables.
17. How
many types of database triggers can be specified on a table? What are they?
Insert Update Delete
Before Row o.k. o.k. o.k.
After Row o.k. o.k. o.k.
Before Statement o.k. o.k. o.k.
After Statement o.k. o.k. o.k.
If FOR EACH ROW clause is specified,
then the trigger for each Row affected by the statement.
If WHEN clause is specified, the
trigger fires according to the retruned boolean value.
18. Is
it possible to use Transaction control Statements such a ROLLBACK or COMMIT in
Database Trigger? Why?
It is not possible. As triggers are
defined for each table, if you use COMMIT of ROLLBACK in a trigger, it affects
logical transaction processing.
19. What
are two virtual tables available during database trigger execution?
The
table columns are referred as OLD.column_name and NEW.column_name.
For triggers related to INSERT only
NEW.column_name values only available.
For triggers related to UPDATE only
OLD.column_name NEW.column_name values only available.
For triggers related to DELETE only
OLD.column_name values only available.
20. What
happens if a procedure that updates a column of table X is called in a database
trigger of the same table?
Mutation of table occurs.
21. Write
the order of precedence for validation of a column in a table ?
I. done using Database triggers.
ii. done using Integarity Constraints.
22. What
is an Exception? What are types of Exception?
Exception is the error handling part
of PL/SQL block. The types are Predefined and user_defined. Some of Predefined
execptions are.
CURSOR_ALREADY_OPEN
DUP_VAL_ON_INDEX
NO_DATA_FOUND
TOO_MANY_ROWS
INVALID_CURSOR
INVALID_NUMBER
LOGON_DENIED
NOT_LOGGED_ON
PROGRAM-ERROR
STORAGE_ERROR
TIMEOUT_ON_RESOURCE
VALUE_ERROR
ZERO_DIVIDE
OTHERS.
23. What
is Pragma EXECPTION_INIT? Explain the usage?
The
PRAGMA EXECPTION_INIT tells the complier to associate an exception with an
oracle error. To get an error message of a specific oracle error.
e.g. PRAGMA EXCEPTION_INIT (exception
name, oracle error number)
24. What
is Raise_application_error?
Raise_application_error
is a procedure of package DBMS_STANDARD which allows to issue an user_defined
error messages from stored sub-program or database trigger.
25. What
are the return values of functions SQLCODE and SQLERRM?
SQLCODE returns the latest code of the
error that has occured.
SQLERRM returns the relevant error
message of the SQLCODE.
26. Where
the Pre_defined_exceptions are stored?
In the standard package.
Procedures, Functions & Packages;
27. What
is a stored procedure?
A stored procedure is a sequence of
statements that perform specific function.
30. What
is difference between a PROCEDURE & FUNCTION?
A FUNCTION is alway returns a value
using the return statement.
A PROCEDURE may return one or more
values through parameters or may not return at all.
31. What
are advantages of Stored Procedures?
Extensibility,Modularity, Reusability,
Maintainability and one time compilation.
32. What
are the modes of parameters that can be passed to a procedure?
IN,OUT,IN-OUT parameters.
33. What
are the two parts of a procedure?
Procedure Specification and Procedure
Body.
34. Give
the structure of the procedure?
PROCEDURE
name (parameter list.....)
is
local variable declarations
BEGIN
Executable statements.
Exception.
exception handlers
end;
35. Give
the structure of the function?
FUNCTION
name (argument list .....) Return datatype is
local variable declarations
Begin
executable statements
Exception
execution handlers
End;
36. Explain
how procedures and functions are called in a PL/SQL block ?
Function
is called as part of an expression.
sal := calculate_sal ('a822');
procedure is called as a PL/SQL
statement
calculate_bonus ('A822');
37. What
is Overloading of procedures?
The
Same procedure name is repeated with parameters of different datatypes and
parameters in different positions, varying number of parameters is called
overloading of procedures.
e.g. DBMS_OUTPUT put_line
38. What
is a package? What are the advantages of packages?
Package
is a database object that groups logically related procedures.
The advantages of packages are
Modularity, Easier Applicaton Design, and Information.
Hiding,. Reusability and Better
Performance.
39. What
are two parts of package?
The
two parts of package are PACKAGE SPECIFICATION & PACKAGE BODY.
Package Specification contains
declarations that are global to the packages and local to the schema.
Package Body contains actual
procedures and local declaration of the procedures and cursor declarations.
40. What
is difference between a Cursor declared in a procedure and Cursor declared in a
package specification?
A
cursor declared in a package specification is global and can be accessed by
other procedures or procedures in a package.
A cursor declared in a procedure is
local to the procedure that can not be accessed by other procedures.
41. How
packaged procedures and functions are called from the following ?
a. Stored procedure or anonymous block
b. an application program such a PRC
*C, PRO* COBOL
c. SQL *PLUS
a.
PACKAGE NAME.PROCEDURE NAME (parameters);
variable := PACKAGE NAME.FUNCTION NAME
(arguments);
EXEC SQL EXECUTE
b.
BEGIN
PACKAGE NAME.PROCEDURE NAME
(parameters)
variable := PACKAGE NAME.FUNCTION NAME
(arguments);
END;
END EXEC;
c. EXECUTE PACKAGE NAME.PROCEDURE if
the procedures does not have any out/in-out parameters. A function can not be
called.
42. Name
the tables where characteristics of Package, procedure and functions are
stored?
User_objects, User_Source and
User_error.