Oracle PLSQL Interview Questions. Additional Concepts Every Developer Should Know.
90PL/SQL Demystified
The best way of learning something is by asking questions. That's why I've organized this hub in a question-answer format.
The questions range from Basic to Advanced. I gave a concise answer too, only for quick reference and revision. For detailed answer to each question, refer to any Oracle PL/SQL online documentation.
Some of these questions were actually asked in my Job Interviews in the US.
I have added some others which I found interesting. Very useful to know.
What is a cursor ? ( Basic)
- Name or handle to a private SQL area where Oracle parses and fetches query results.
How to control how many cursors are open ?(Intermediate)
- Set OPEN_CURSORS parameter in initialization parameters.
What is shared SQL ? (Intermediate)
-Oracle recognizes similar statements. The SQL area is used many times for similar statements.
What is Parsing ? (Intermediate)
- Syntax checking, privileges checking, allocating Private SQL Area.
What is the difference between anonymous blocks and stored procedures ? ( Basic)
- Anonymous block is compiled only when called.
- Stored procedure is compiled and stored in database with the dependency information as well.
- Former is PL/SQL code directly called from an application. Latter is stored in database.
- Former has declare statement.Latter doesnt.
What are the advantages of procedures ? ( Basic)
- Loaded once and used many times
- Performance better coz all SQL stmts are sent in one go from the application to the database
- Security ( no object privileges are given directly )
- Invoker's rights possible
- Data integrity, productivity
What are standalone procedures ? (Basic)
- Those that are not part of package
How is a PL/SQL program stored in database ? (Advanced)
- Parsed code is stored. It's called P-code
How is a PL/SQL program executed ?(Advanced)
- Prior to Oracle 9i, we have only bytecode and a virtual machine in the database runs it. Later versions have faster native code execution.
- PL/SQL engine is the main component that executes procedural stmt and passes the SQL to the SQL statement executor.
What are the advantages and disadvantages of DBMS_SQL ? (Intermediate)
- It has all the advantages of dynamic sql .. like runtime construction of sql, DDL statements can be executed.
- Its advantage over EXECUTE IMMEDIATE is it can Describe objects
- It's kind of bulky and difficult compared to EXECUTE IMMEDIATE.
What is a package spec and package body ? Why the separation ? ( Basic)
- Spec declares public constructs. Body defines public constructs, additionally declares and defines Private constructs
- Separation helps make development easier
- Dependency is simplified. You can modify body without invalidating dependent objects.
What are the advantages of Packages ? ( Basic)
- Encapsulation of code logic
- Privileges to objects can be controlled
- Loaded once into memory , used subsequently.
- Dependency simplified
- Public/private procs, functions, variables
How do you handle exceptions for bulk operations ? (Intermediate)
- Use the SAVE EXCEPTIONS clause ( FORALL index IN bound_clause SAVE EXCEPTIONS LOOP ... END LOOP )
- Use 'Exceptions When Others' to handle the exceptions
- SQL%BULK_EXCEPTIONS(i).ERROR_CODE,
SQL%BULK_EXCEPTIONS(i).ERROR_INDEX
SQL%BULK_EXCEPTIONS.COUNT
Tell some tips to avoid performance problems in PL/SQL. (Intermediate to Advanced)
- Use FORALL instead of FOR, and use BULK COLLECT to avoid looping many times
- Tune SQL statements to avoid CPU overhead
- Use NOCOPY for OUT and IN OUT if the original value need not be retained. Overhead of keeping a copy of OUT is avoided.
- Reorder conditional tests to put least expensive ones first
- Minimize datatype conversions => Assign data to exact same type variables
- Use PLS_INTEGER for computation intensive code. NUMBER, INTEGER maintain precision and scale but not optimized for performance as additional checks are made to maintain precision and scale.
- Do not use subtypes like POSITIVE, NATURAL, INTEGER as they have additional checks
- Use BINARY_FLOAT, BINARY_DOUBLE
- EXECUTE IMMEDIATE is faster than DBMS_SQL
How to know PL/SQL compile parameters ?(Advanced)
- SHOW PARAMETERS PLSQL
- ALL_PLSQL_OBJECT_SETTINGS
What is MERGE ?( Basic)
- Combination of INSERT and UPDATE
Tell some new features in PL/SQL in 10g (Intermediate to Advanced)
- Regular expression functions REGEXP_LIKE , REGEXP_INSTR, REGEXP_REPLACE, and REGEXP_SUBSTR
- Compile time warnings
- Conditional compilation
- Improvement to native compilation
- BINARY_INTEGER made similar to PLS_INTEGER
- INDICES OF , VALUES OF in FORALL lets you work on non-consecutive indices
- Quoting mechanism . Instead of quoting single quotes twice everytime, give your own delimiter to go on using single quotes.
Ex: q'!I'm a string, you're a string.!'
- Flashback Query functions. SCN_TO_TIMESTAMP, TIMESTAMP_TO_SCN
- Implicit conversion between CLOB and NCLOB
- Improved Overloading
- New datatypes BINARY_FLOAT, BINARY_DOUBLE
- Global optimization enabled
- PLS_INTEGER range increased to 32bit
- DYNAMIC WRAP using DBMS_DDL
What is a sequence ? (Basic)
- A database object that offers high-speed access to an integer value
- Guaranteed to be unique (within that sequence).
-Used commonly to generate Primary key values
Folks, check out http://hubpages.com/hub/oracle_sql_plsql for more questions.
COMMENTS AND SUGGESTIONS ARE WELCOME !!!!
vote upvote downshareprintflag
- Useful (50)
- Funny (10)
- Awesome (26)
- Beautiful (7)
- Interesting (6)
Thanks all for the positive feedback!Loading...
Thanks for work!
Great url referred.I think many users will be benefitted by this type of mails.Keep it Up.
Really done an excellent work..keep posting this sort of mails...Thanks
gr8..
Thanks for the questions set!!It helped alot..
excellent. Keep posting this kind of questions. Thanks heaps
it gives iot of imfarmetion
its exellent
Its a nice site significant to enhance knowledge and inteligence .
Really a good and excellent tips for the Oracle Workers...
Thanks for this url.
Good work..
good work dude. keep it up.
good
keep it up. Good work
Pls do the same. Its very good one
Great!!!
It is really good.
thanks for the great tips
It was very useful to me.. Great Thanks... Keep it Up !!!!!!
try to present more example programs in which we have to find errors
really helpfullll...n also referred to my fnds....appreciate the gud work...thnx again...
its really very knowledgeable site. thanks for everyone to share the knowledge.
regards,
Deepak Sony
thanks .keep on doing
Good one..
Nice but this are very basic q&A i want some new Q regarding oracle11i
.
Gr8 Interview Q&As. Very helpful..
Brilliant, Keep in up with some more Advanced Q and Pl/SQL enhancements in 11g.
I am Keshava. Found Q&A were very useful. Good one. Keep it up.
Very good questions with precise and tougtful answers! Nice work.
Thanks a lot Rakesh !!
this is good...i am learning new things
This is really good question answer its gonna help me Thank you
hey u have done a good job.happy to c people like you
Good and Great Efforts.
It's very very essential for us.
Excellent dude!!
Great work man..keep it up.
Post more number of questions....
Anyhow this is very useful.......
Very useful.. Thanks!!
its very use full...thanks
very good
Excellent information... thank you.
This is Really to start of my refresh.
Thanks for Everyone
Many Many Thanks !!
VERY USEFUL.. THANX A LOT!!! POST MORE NUMBER OF QUESTIONS AND ANS....
Very goood info.
nice
it is very helpful for the guys who has basic knowledge but not in depth.thanks a lot.keep doing the same .thanq
Very uselfull for basic review
Gr8...
Interesting and useful technical information . Thanks.
The questions are helpful to me..thanks a lot!!!
Its nice.Already I finished ocp exam its used for recalling everyone totally nice!!!!!!1
Good work to explore intermediate Oracle Professionals... Thanks !!
Its really good
nice job
add few more basic questions..
good answers & thanks for your work
good answers..we have very useful for ur answers..thank u
it's good for improving knowledge.
Thanks
Good work man..Thanks for sharing
its very usefull
found the questions n answers very useful.
Thankyou for posting them.
Thanks a lot.Questions are really useful
Excellent
Really very good questions and answers.
thnx to guide
Its good
Thanks.........
very good question gallery...
thanks.. Pls post especially Objects & advanced plsql related questions..
Thanks...
NICE YA
Really awesome......impressing,keep it up
Awesome information!!! Thanks!
nice thanks for sharing.please add some other important question and answers for interview.
Superb...
thanks a lot
fine..
Can anyone help me with PL-SQL interview questions. I mean actual working environment questions, as to what tools are used in everyday PL/SQL work and what happens after every step of coding etc. Thanks
Gopal
gopalseri@gmail.com
good.. useful data for us....
Excellent !!
great..
good
nice tips










Sridhar 5 years ago
Excellent !!