create your own

Oracle PLSQL Interview Questions. Additional Concepts Every Developer Should Know.

86
rate or flag this page

By rakeshfan


PL/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 !!!!

Thanks all for the positive feedback!

RSS for comments on this Hub

Sridhar  says:
3 years ago

Excellent !!

m3powers  says:
3 years ago

Thanks for work!

ss  says:
2 years ago

Great url referred.I think many users will be benefitted by this type of mails.Keep it Up.

Siva  says:
2 years ago

Really done an excellent work..keep posting this sort of mails...Thanks

polesh  says:
2 years ago

gr8..

srisan  says:
2 years ago

Thanks for the questions set!!It helped alot..

subash  says:
2 years ago

excellent. Keep posting this kind of questions. Thanks heaps

vgmanjare  says:
2 years ago

it gives iot of imfarmetion

rakeshfan profile image

rakeshfan  says:
2 years ago

Thanks everyone for your positive feedback !

shiva  says:
2 years ago

its exellent

Rashmi  says:
2 years ago

Its a nice site significant to enhance knowledge and inteligence .

Bala  says:
2 years ago

Really a good and excellent tips for the Oracle Workers...

pipa  says:
2 years ago

Thanks for this url.

Manjula  says:
2 years ago

Good work..

prem  says:
2 years ago

good work dude. keep it up.

Manas  says:
2 years ago

good

rvavuleri  says:
2 years ago

keep it up. Good work

Nagesh  says:
2 years ago

Pls do the same. Its very good one

rayanthomos  says:
2 years ago

Great!!!

Suhaib  says:
2 years ago

It is really good.

clickbankformula profile image

clickbankformula  says:
2 years ago

thanks for the great tips

Ramya Selvi  says:
2 years ago

It was very useful to me.. Great Thanks... Keep it Up !!!!!!

githa  says:
18 months ago

try to present more example programs in which we have to find errors

santhosh tadavai  says:
17 months ago

really helpfullll...n also referred to my fnds....appreciate the gud work...thnx again...

deepak sony  says:
16 months ago

its really very knowledgeable site. thanks for everyone to share the knowledge.

regards,

Deepak Sony

vinay  says:
16 months ago

thanks .keep on doing

Asha  says:
15 months ago

Good one..

suman  says:
15 months ago

Nice but this are very basic q&A i want some new Q regarding oracle11i

.

rpatel  says:
10 months ago

Gr8 Interview Q&As. Very helpful..

Nagaraj  says:
8 months ago

Brilliant, Keep in up with some more Advanced Q and Pl/SQL enhancements in 11g.

Keshava  says:
8 months ago

I am Keshava. Found Q&A were very useful. Good one. Keep it up.

Raj  says:
8 months ago

Very good questions with precise and tougtful answers! Nice work.

Sam  says:
4 months ago

Thanks a lot Rakesh !!

sreekanth  says:
3 months ago

this is good...i am learning new things

Mira  says:
3 months ago

This is really good question answer its gonna help me Thank you

nandu  says:
3 months ago

hey u have done a good job.happy to c people like you

Praveena  says:
2 months ago

Good and Great Efforts.

P. K Roy  says:
2 months ago

It's very very essential for us.

Submit a Comment

Members and Guests

Sign in or sign up and post using a hubpages account.


optional


  • No HTML is allowed in comments, but URLs will be hyperlinked
  • Comments are not for promoting your hubs or other sites

working