Monday 22 April 2013

ORACLE INTERVIEW QUESTIONS =>PART3



  1. What is data?
Data is a collection of raw, facts and figures that is use in different place we can store anything in database is called data.
  1. What is database?
Collection of organized data which can easily managed access, understand, and update.
  1. What is database management system?
Any programming environment used to create containers, to manage human data, can be conceptualized as a Data Management System
  1. What is table?
It is a set of elements that is consist of rows and columns in which we can store our data. In any table we define specified no, of columns and there are many no. of rows are available in table that is use for store the data row wise.
  1. What is column?
Column is a one element of table that is use logically vertical shape in table. We define specified no. of columns in one table then store data in it.
  1. What is row?
Rows are also second element of table that is use for store the data in table as a horizontally shape. We can enter many rows in one table. In database terms we can say one record to one row in table.
  1. What is primary key?
A primary is uniquely identifies a row of the table this key ensure two things one is that null value does not allow and duplicate value also not allowed in table. A table must always have one and only one primary key. Primary key value is normally employee code, Driving license code, NIC code etc.
  1. What is foreign key?
A foreign key is a references or a link between one table and another. The foreign key can be used to cross reference tables. A foreign has a link with parent table (that have primary key value). Suppose we have one table with primary key and w have second table that have foreign key and have a relation with parent table than we must enter the values in second table that is totally related with parent table.
  1. What is unique key?
Unique key does not accept duplicate values but accept null values in oracle. Unique key is very much related with primary key in primary key we cannot enter NULL value and also duplicate value. But on the other hand in unique key we can enter NULL value but not duplicate value. For example in employee database we set Driving license no. unique because one employee have unique license no. and some employees have not.
  1. What is the difference between primary key and unique key?
Unique key does not accept duplicate values but accept null values and primary key does not accept both two either NULL  or duplicate data.
  1. What is Null constraint?
The columns that have NULL constraint must fill with some data. A column in a table can be specified not null. It’s not possible to insert a null in such a column we cannot leave any column empty in tables that have NULL constraint. It should be fill with no matter with duplication of that.
  1. What is the maximum no. of column in oracle table?
The maximum no. of columns is 255.
  1. Is COMMIT statement can be use in database trigger?
We cannot use any transaction control statement (like commit, rollback, savepoint etc.) into the body of a trigger. But oracle provides a facility called Autonomous Transactions through which you can achieve this. You add that piece of the code, which contains commit, in some block and make that block as Autonomous Transaction and call or use that block into your trigger.

What is SQL statement?
SQL stands for Structured Query Language that is use for updating, deleting and inserting the  information from databases. SQL is an ANSI and ISO standard and is the de-facto standard database query language. Oracle database also support this language.
What are database triggers and how many types of triggers?
Database triggers are a set of code that run or fire automatically when the specific operation will performed like Insert, Update and Delete. They are store procedures that are auto configure and fire when certain events take place in database.
There are two types of triggers
1-      Tables level trigger
2-      Row level trigger
Table level trigger are fire at one time but row level trigger fire on every row or on any transaction in the table.
What are the means of values of: new and: old in the trigger?
These two: new and: old are use in database triggers. These are basically use for referencing the trigger value by using triggers. For example we want to update anything in table and this table have database trigger on After Update then we use these two keywords for updating the values again this table.
 What is the Mutating in the trigger?
The mutating will occur when in Oracle when the table that originally fired the triggering event is being accessed in the body of the trigger code, directly or implicitly in a procedure, or in a nested trigger called from the trigger body. This is because the table is in middle of a transaction, and referencing the same table again in the middle of the updating action causes the trigger to mutate.
 Can we write a trigger for view?
Yes we can write a trigger on view by using key word “instead of” but did not use Before or After option on trigger.
 Can we create a view on another view?
Yes we can create a view on another view.
What are the advantages of view?
1-      Restrict the data and column s of the base tables.
2-      Use complex quires easy and show the data of complex quires.
3-      Make different views according to requirement on many on table.
4-      We can hide business rules by using view.
What are function and how many types of functions?
Functions or user defined function are set of SQL/PLSQL code that are store in database and return the value. In function some data is manipulating by using some statement then return a specific value.
What is the difference between row level and Table level triggers?
Table level trigger are fire at one time but row level trigger fire on every row or on any transaction in the table.
What is the difference between Database triggers and Form level triggers?
Database trigger are written in database directly and fire on behalf of any transaction like Insert, Update and delete on table automatically. On the other hand we form level trigger are use in forms and fire on any level like item level, row level or on block level on requirement of application. Main difference in database trigger and form level triggers is that database trigger fire automatically and form level trigger fire on user or application requirement.
 What is the advantage of stored procedure over the database triggers?
Store procedure are compile one time and stay in database and wait for calling but on the other hand database trigger fire every time when we have to perfume any change in database.
 What are cascading of triggers?
Cascading of trigger means if we insert data in one table and that table have trigger on it then trigger fire. And in this trigger there is another table that we are using for insert the data in it and this table has also trigger on it then this trigger also fire. This is called cascading of triggers.
 What is Pseudo column?
Pseudo columns are database columns that are using for different purposes in oracle database like ROWNUM, ROWID, SYSDATE, UID, USER, ORA_ROWSCN, SYSTIMESTAMP,
 What is Dual and where it can be use?
Dual is a database table owner is sys and reside in data dictionary. It have only one column name DUMMY and one data X. It is normally use for select the values of Pseudo columns.
 Can we insert, update, delete, alter and drop DUAL table?
Yes we can Insert, update, delete alter and also drop Dual table in oracle.
 If we create a table with name DUAL it can be work same as DUAL?
Yes we create table with same name of DUAL and also it will work like same of dual table.
What are group functions and how many types of group function?
Group functions return the single result on based on many rows. Like count, sum, min, max, avg first, last these functions return one row result based on many rows.


What are cursors and how many types of cursors?
Cursor is a pointer variable in a memory and use for DML operations. Cursor basically is a private SQL memory area it is also use to improve the performance of the database.
There are two types of cursors.
1- Implicit cursor
2- Explicit cursor
Implicit cursor use oracles to manipulate the DML opperations and programmer have no control on this type of cursor. We use sql%notfound and sql%rowcount in implicit cursor. Explicit cursors are created by the programmer and programmer can control it by using these keywords Fetch, Open and close.
 Define Oracle cursor attributes.
There are five types of cursors attributes
1- %isopen      (Verify whether this cursor is open or not)
2- %found       (If cursor fetch the data then %found return true)
3- %notfound (If cursor fetches not data then %notfound return true)
4- %rowcount (It return no. of rows that are in cursor and also give position of record)
5- %bulk_rowcount (%bulk_rowcount is same like %rowcount but it is used in bulk)
How can we pass variable in cursors?
We can pass the variable in cursor by using parameter cursor. Just we give the variable in it like cursor C1 (my_variable number).
 What is the CASE statement and where we can use it?
CASE statement is just like IT-THEN-ELSE condition it is normally use when we are using some type of if else condition. When condition is founded true the case statement return the result and no further evaluating of data.
What is INDEX, when and where we can use it?
Index is using for performance tuning and also give us faster data retrieval of record from tables. Index can create on any column in table by default oracle B-Tree index.
Which operator that are not coming in Indexing?
NOT IN operator is not coming in indexing.
 How we can get limited rows in SQL?
We can get limited rows in oracle database by using ROWNUM or HAVING clause.
 What is the difference between Sub query and Co-related query?
One query contains more than one sub-query. The inner most query run first then second outer then third outer and so on. If we will not use relation on inner query to outer query then this query is called sub-query if we use relation then this query called Correlated query.
Example of Sub Query:
SELECT EMP_NAME, DEPTNO FROM EMP
WHERE EMP_NAME IN (SELECT EMP_NAME FROM DEPT)
Example of Correlated Query:
SELECT EMP_NAME, DEPTNO FROM EMP
WHERE EMP_NAME IN (SELECT EMP_NAME FROM DEPT WHERE EMP.DEPTNO = DEPT.DEPTNO)
 What is exception handling and how we can handle the exception in Oracle?
Exception is an error situation which arises during program execution. When an error occurs exception is raised normally execution is stopped and control transfers to exception handling part. Exception handlers are routines written to handle the exception. The exceptions can be internally defined User-defined exception. In oracle we can handle exception by using these statements.
EXCEPTION WHEN
DUP_VAL_ON_INDEX
NOT_LOGGED_ON
NO_DATA_FOUND
TOO_MANY_ROWS
VALUE_ERROR
 Can we define more than one exception in one block?
Yes we can define more than one exception in one block in oracle form builder like we will       use DUP_VAL_ON_INDEX and NO_DATA_FOUND simultaneously
 What is SQL sequence and what are their attributes?
Sequence is an Oracle object that is using for generating the sequence of number. IT=T is normally using for column that have primary key.
“CREATE SEQUENCE TRANS_ID_SEQ
START WITH 1
MAXVALUE 99999999
MINVALUE 1
NOCYCLE
NOCACHE
NOORDER”
 What is CYCLE AND NO CYCLE in sequence?
When we use “CYCLE” option in sequence and sequence reaches its MAXVALUE, it will start again from the MINVALUE. That is not good when we are using the sequence for primary key. In “NOCYCLE” option cursor did not start from minimum value again.
Can we design one view on another view?
Yes we can design one view on the other view.
 What are aggregate functions in Oracle?
Aggregate function are using in oracle with group by clause and with having clause. Avg, count, max, min, sum,
  How can we sort out our data in oracle?
We can sort out or data in oracle by using Order by clause. If we sort our data then we use this Order by Roll_Num AEC and fro descending order we will use Order by Roll_Num  Desc.
What is a PL/SQL package and what are the advantages of PL/SQL Packages?
A package is a collection of PL/SQL elements that are grouped together within a special BEGIN-END syntax.  A package is a schema object that groups logically related PL/SQL types, items, and subprograms.
Packages usually have two parts, a specification and a body, although sometimes the body is unnecessary. The specification (spec for short) is the interface to your applications; it declares the types, variables, constants, exceptions, cursors, and subprograms available for use. The body fully defines cursors and subprograms, and so implements the spec.
 What are the query and how many types of queries?
A database query is some type of syntax that is sent to database and get some data or information from the database. It is some type of communicator that is using for giving something and taking something from database.
  • Simple Query
  • Advanced Query
  • Saved Query
  • Cross-project Query
 What is the union, intersect and minus operation in oracle?
Create  table MY_A
(
My_ID number
)
Table A values: (1, 2, 3)
Create table MY_B
(
My_ID number
)
Table A values: (1, 2, 5)

For             UNION:
Select MY_ID from MY_A;
UNION
Select MY_ID from MY_B;
Result: 1, 2, 3,5

For             INTERSECT:
Select MY_ID from MY_A;
INTERSECT
Select MY_ID from MY_B;
Result: 1, 2

For             MINUS:
Select MY_ID from MY_A;
MINUS
Select MY_ID from MY_B;
Result: 3
 What is the difference between UNION and UNION ALL?
In UNION  if two rows will match then result come only of  two rows but if we use UNION ALL then result will be four rows.
Create  table MY_A
(
My_ID number
)
Table A values: (1, 2, 3)
Create table MY_B
(
My_ID number
)
Table B values: (1, 2, 5)
For             UNION:
Select MY_ID from MY_A;
UNION
Select MY_ID from MY_B;
Result: 1, 2, 3,5
For             UNION ALL:
Select MY_ID from MY_A;
UNION ALL
Select MY_ID from MY_B;
Result: 1,1, 2,2, 3,5

Explain in detail use of OCI in oracle?
OCI is an API that provides functions you can use to access the database server and control SQL execution. OCI supports the data types, calling conventions, syntax, and semantics of the C and C++ programming languages. You compile and link an OCI program much as you would any C or C++ program.
 Oracle function can take OUT parameter?
Yes we use OUT parameter in function.
 In form Parameter can we define default value?
Yes you can define initial value in form parameter.
 What is the difference between NO_DATA_FOUND and %NOTFOUND?
“NO_DATA_FOUND” is a system defined exception. It is generated when no record found in implicit cursor. “%NOTFOUND” is used in cursor. If cursor returns no row then %NOTFOUND returns true and if returns row then %NOTFOUND is false.
 Write a statement to find out the no. of rows in oracle?
Select count(*) from emp;
 Which function is use for display the numeric figure in words?
SELECT TO_CHAR(TO_DATE(123,'J'),'JSP') to_words FROM   dual;
What is the difference between WHERE clause and HAVING clause?
WHERE clause use in simple select statement on the other hand HAVING clause use in group function statement like.
Select emp_name from  WHEER dept_code=123;
Select emp_name from emp HAVING count(emp_cod) > 2;
 Write a difference between SUBSTR and INSTR function?
SUBSTR provide some portion of string like from one word to 5th word and INSTR gives us location   of that particular word.




ORACLE PL SQL INTERVIEW QUESTIONS =>PART2


Oracle PL / SQL Interview Question

  • What’s a PL/SQL table? Its purpose and Advantages?
    A PL/SQL table is one dimensional, indexed, unbounded sparsed collection of homogeneous
    Data.
    PLSQL tables are used to move data into and out of the database and between client side applications and stored sub-programs. They have attributes such as exits, prior, first, last, delete ,next . These attributes make PLSQL tables easier to use and applications easier to maintain.
    Advantages:
    1 PL\SQL tables give you the ability to hold multiple values in a structure in memory so that a PL\SQL block does not have to go to the database every time it needs to retrieve one of these values - it can retrieve it directly from the PL\SQL table in memory.
    2 Global temporary tables act as performance enhancers when compared to standard tables as they greatly reduce the disk IO.
    3 They also offer the ease-of-use of standard tables, since standard SQL can be used with them; no special array-processing syntax is required.
  • What is a Cursor? How many types of Cursor are there?
    A) Cursor is an identifier/name to a work area that we can interact with to access its information. A cursor points to the current row in the result set fetched. There are three types of cursors. They are
    1 Implicit cursors – created automatically by PL/SQL for all SQL Dml statements such as
    Insert Update, delete and Select
    2 Explicit cursors – Created explicitly. They create a storage area where the set of rows
    Returned by a query are placed.
    3 Dynamic Cursors – Ref Cursors( used for the runtime modification of the select querry).
    Declaring the cursor, Opening the cursor, Fetching data , Closing the cursor(Releasing the work area) are the steps involved when using explicit cursors.
  • What is the difference between Function and Procedure?
    1..Procedure is a sub program written to perform a set of actions and returns multiple valuesUsing out parameters or return no value at all.
    2..Function is a subprogram written to perform certain computations and return a single value.
  • What are the modes for passing parameters to Oracle?
    There are three modes for passing parameters to subprograms
    1.IN - An In-parameter lets you pass values to the subprogram being called. In the subprogram it acts like a constant and cannot be assigned a value.
    2. OUT – An out-parameter lets you return values to the caller of the subprogram. It acts like an initialized variable its value cannot be assigned to another variable or to itself.
    3.INOUT – An in-out parameter lets you pass initial values to the subprogram being called and returns updated values to the caller.
  • What is the difference between Truncate and Delete Statement?
    1.Truncate – Data truncated by using truncate statement is lost permanently and cannot be retrieved even by rollback. Truncate command does not use rollback segment during its execution, hence it is fast.
    2. Delete – Data deleted by using the delete statement can be retrieved back by Rollback. Delete statement does not free up the table object allocated space.
  • What are Exceptions? How many types of Exceptions are there?
    Exceptions are conditions that cause the termination of a block. There are two types of exceptions
    1.Pre-Defined – Predefined by PL/SQL and are associated with specific error codes.
    2.User-Defined – Declared by the users and are rose on deliberate request. (Breaking a condition etc.)
    Exception handlers are used to handle the exceptions that are raised. They prevent exceptions from propagating out of the block and define actions to be performed when exception is raised.
  • What is a Pragma Exception_Init? Explain its usage?
    Pragma Exception_Init is used to handle undefined exceptions. It issues a directive to the compiler asking it to associate an exception to the oracle error. There by displaying a specific error message pertaining to the error occurred. Pragma Exception_Init (exception_name, oracle_error_name).
  • What is a Raise and Raise Application Error?
    1.Raise statement is used to raise a user defined exception.
    2. A raise application error is a procedure belonging to dbms_standard package. It allows to display a user defined error message from a stored subprogram.
  • What is the difference between Package, Procedure and Functions?
    1.A package is a database objects that logically groups related PL/SQL types, objects, and Subprograms.
    2.Procedure is a sub program written to perform a set of actions and can return multiple values.
    3.Function is a subprogram written to perform certain computations and return a single value. Unlike subprograms packages cannot be called, passed parameters or nested.
  • How do you make a Function and Procedure as a Private?
    Functions and Procedures can be made private to a package by not mentioning their declaration in the package specification and by just mentioning them in the package body.
  • How do you kick a Concurrent program from PL/SQL?
    Using FND_REQUEST.SUBMIT_REQUEST.
  • What is an Anonymous block?
    Anonymous Block is a block of instructions in PL/SQL and SQL which is not saved under a name as an object in database schema It is also not compiled and saved in server storage, so it needs to be parsed and executed each time it is run. However, this simple form of program can use variables, can have flow of control logic, can return query results into variables and can prompt the user for input using the SQL*Plus '&' feature as any stored procedure.
  • What are the two basic parameters that we have to pass while registering PL/SQL procedure?
    Error code and Error Buffer.
  • How to display messages in Log file and Output file?
    Using FND_FILE.PUT_LINE
  • What is a Trigger ? How many types of Triggers are there?
    Trigger is a procedure that gets implicitly executed when an insert/update/delete statement is issued against an associated table. Triggers can only be defined on tables not on views, how ever triggers on the base table of a view are fired if an insert/update/delete statement is issued against a view.
    There are two types of triggers, Statement level trigger and Row level trigger.
    Insert
    After / For each row
    Trigger is fired / Update /
    Before / For Each statement
    Delete
  • Can we use Commit in a Database Trigger, if ‘No’ then why?
    No. Committing in a trigger will violate the integrity of the transaction.
  • What is Commit, Rollback and Save point?
    Commit – Makes changes to the current transaction permanent. It Erases the savepoints and releases the transaction locks.
    Savepoint –Savepoints allow to arbitrarily hold work at any point of time with option of later committing. They are used to divide transactions into smaller portions.
    Rollback – This statement is used to undo work.
  • What is the difference between DDL, DML and DCL structures?
    DDL statements are used for defining data. Ex: Create, Alter, Drop,Truncate,Rename.
    DML statements are used for manipulating data. Ex: Insert, update, truncate.
    DCL statements are used for to control the access of data. Ex; Grant, Revoke.
    TCL statements are used for data saving.Ex; Commit,Rollback,Savepoint.
  • How can u create a table in PL/SQL procedure?
    By using execute immediate statement we can create a table in PLSQL.
    Begin
    Execute immediate ‘create table amit as select * from emp’;
    End;
    All DDL,DML,DCL commands can be performed by using this command.
  • How do we Tune the Queries?
    Queries can be tuned by Checking the logic (table joins), by creating Indexes on objects in the where clause, by avoiding full table scans. Finally use the trace utility to generate the trace file, use the TK-Prof utility to generate a statistical analysis about the query using which appropriate actions can be taken.
  • What is Explain Plan? How do u use Explain Plan in TOAD?
    It is a utility provided by toad that gives the statistics about the performance of the query. It gives information such as number of full table scans occurred, cost, and usage of indexes
  • What is a TK-PROF and its usage?
    Tk-Prof is a utility that reads the trace files and generates more readable data that gives the statistics about the performance of the query on a line to line basis.
  • What is Optimization? How many types of Optimization are there?
    Rule based Optimization and Cost Based Optimization.
  • What is the default optimization chosen by Oracle?
    Cost based Optimization.
  • What is the difference between the snapshot and synonym?
    7 A snapshot refers to read-only copies of a master table or tables located on a remote node. A snapshot can be queried, but not updated; only the master table can be updated. A snapshot is periodically refreshed to reflect changes made to the master table. In this sense, a snapshot is really a view with periodicity.
    8 A synonym is an alias for table, view, sequence or program unit. They are of two types private and public.
  • What is the difference between data types char and varchar?
    Char reserves the number of memory locations mentioned in the variable declarations, even though not used (it can store a maximum of 255 bytes). Where as Varchar does not reserve any memory locations when the variable is declared, it stores the values only after they are assigned (it can store a maximum of 32767 bytes).
  • Items are imported from the legacy system using the item import interface using the SRS. How are items imported using the UNIX /PLSQL commands with out using SRS?
    1.From the operating system, use CONCSUB to submit a concurrent program. It's an easiest way to test a concurrent program.
    Normally, CONCSUB submits a concurrent request and returns control to the OS prompt/shell script without waiting for the request to complete. The CONCSUB WAIT parameter can be used to make CONCSUB wait until the request has completed before returning control to the OS prompt/shell script
    By using the WAIT token, the utility checks the request status every 60 seconds and returns to the operating system prompt upon completion of the request. concurrent manager does not abort, shut down, or start up until the concurrent request completes. If your concurrent program is compatible with itself, we can check it for data integrity and deadlocks by submitting it many times so that it runs concurrently with itself.
    Syntax: CONCSUB [WAIT= [START=] [REPEAT_DAYS=] [REPEAT_END=]
    To pass null parameters to CONCSUB, use '""' without spaces for each null parameter.
    In words: single quote double quote double quote single quote
    Following is an example of CONCSUB syntax with null parameters:
    CONCSUB oe/oe OE 'Order Entry Super User' JWALSH CONCURRENT XOE XOEPACK 4 3 '""' 3
    2. To Invoke a Concurrent Program using PL/SQL:
    i) Just insert a row in FND_CONCURRENT_REQUESTS with the apropriate parameters and commit.
    ii) Invoke the SUBMIT_REQUEST procedure in FND_REQUEST package.
    FND_REQUEST.SUBMIT_REQUEST( 'AR', 'RAXMTR', '', '', FALSE, 'Autoinvoice Master Program', sc_time, FALSE, 1, 1020, 'VRP', '01-JAN-00', chr(0)
  • How can the duplicate records be deleted from the table?
    delete from t1 a where rowid not in (select max(rowid) from t1 b where a.no=b.no)
  • What is the significance of _all tables?
    All tables are multi-org tables which are associated with the company as a whole. Multiple Organizations is enabled in Oracle
    Applications by partitioning some database tables by the Operating Unit. Other tables are shared across Operating Units (and therefore across set of books). Examples of Applications with partitioned tables are Oracle Payables, Oracle Purchasing, Oracle Receivables, Oracle Projects, Oracle Sales & Marketing etc. The name of each corresponding partitioned table is the view name appended by '_ALL'
  • What are mutating tables? And what is mutating error?
    A mutating table is a table that is currently being modified by an UPDATE, DELETE, or INSERT statement, or it is a table that might need to be updated by the effects of a declarative DELETE CASCADE referential integrity constraint.
    A mutating error occurs when a trigger which fires when updation/deletion/insertion is done on a table A performs insertion/updation/deletion on the same table A. This error results in an infinite loop which is termed as a mutating error.
  • What is difference between oracle 7 andoracle 8i?
    A) Oracle 7 is a simple RDBMS, where as Oracle 8i is ORDBMS i.e., RDBMS with Object Support.
    The main add-ons in version 8 are…
    Abstract Data types
    Varrays
    PL/SQL Tables
    Nested Tables
    Partitioned Tables
  • What is Data cleaning and testing.
    Data Cleaning: Transformation of data in its current state to a pre-defined, standardized format using packaged software or program modules.
    Data Testing: The agreed upon conversion deliverables should be approved by the client representatives who are responsible for the success of the conversion. In addition, three levels of conversion testing have been identified and described in the prepare conversion test plans deliverables.
    Eg: for Summary Balances in GL we set Test Criteria as Record Counts, Hash Totals, Balances, Journal Debit and Credit.
  • While registering a report and a pl/sql block we pass some parameters, for any pl/sql block we pass 2 additional parameters. Can u list them?
    It requires two IN parameters for a PL/SQL procedure that's registered as a concurrent program in Apps. They are
    1. Errcode IN VARCHAR2
    2. Errbuff IN VARCHAR2
  • what is a trace file?
    when ever an internal error is detected by a process in oracle it dumps the information about the error into a trace file.
    Alter session set sql_trace=TRUE
  • When do you use Ref Cursors?
    We base a query on a ref cursor when you want to:
    1.More easily administer SQL
    2. Avoid the use of lexical parameters in your reports
    3. Share data sources with other applications, such as Form Builder
    4. Increase control and securityv) Encapsulate logic within a subprogram

ORACLE INTERVIEW QUESTIONS


ORACLE SQL PL/SQL Interview Questions

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
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;
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
How can I protect my PL/SQL source code?
Answer: PL/SQL V2.2, available with Oracle7.2, implements a binary wrapper for PL/SQL programs to protect the source code.This is done via a standalone utility that transforms the PL/SQL source code into portable binary object code (somewhat larger than the original).This way you can distribute software without having to worry about exposing your proprietary algorithms and methods.SQL*Plus and SQL*DBA will still understand and know how to execute such scripts.Just be careful, there is no "decode" command available. The syntax is:                      wrap name=myscript.sql
oname=xxxx.yyy
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Can one use dynamic SQL within PL/SQL? OR 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.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Which are initial RDBMS, Hierarchical & N/w database ?
Answer:
RDBMS - R system
Hierarchical - IMS
N/W - DBTG
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Difference between Oracle 6 and Oracle 7
Answer:
ORACLE 7                                 ORACLE 6  Cost based optimizer                   Rule based optimizer 
Shared SQL Area                        SQL area allocated for each user 
Multi Threaded Server                  Single Threaded Server 
Hash Clusters                             Only B-Tree indexing 
Roll back Size                            Adjustment No provision 
Truncate command                      No provision 
Distributed Database                   Distributed Query 
Table replication & snapshots       No provision 
Client/Server Tech                       No provision 
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
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.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

If I have an execute privilege on a procedure in another users schema, can I execute his procedure even though I do not have privileges on the tables within the procedure ?
Answer: Yes
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

What are various types of joins ?
Answer: Types of joins are:
Equijoins
Non-equijoins
self join
outer join
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
What is a package cursor ?
Answer: A package cursor is a cursor which you declare in the package specification without an SQL statement.The SQL statement for the cursor is attached dynamically at runtime from calling procedures.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
If you insert a row in a table, then create another table and then say Rollback.In this case will the row be inserted ?
Answer: Yes.Because Create table is a DDL which commits automatically as soon as it is executed.The DDL commits the transaction even if the create statement fails internally (eg table already exists error) and not syntactically.