Sei sulla pagina 1di 19

How to interview an Oracle Developer

Lewis Cunningham May 3, 2005 | Comments (43)


inShare
0

It looks like the job market for Oracle is opening up. I'm seeing many of my friends find new jobs and
I'm doing a lot of interviewing at work. I hope this is a trend that continues. In this entry, I share my
method for interviewing Oracle resources and provide some sample interview questions and
answers for developers.
Interviewing anyone can be difficult. Interviewing technical resources is very difficult. To me, probably
the hardest thing is pinpointing exactly what you want this person to do. What, exactly, will this
person be doing in their day-to-day job? It's easy to say having a good job description makes it
easier but in many cases, employers have a generic template when looking for someone.
First off, is there a difference between a developer and a programmer? I think there is. A
programmer is a coder. I don't mean that as a bad thing. Every project needs coders. A developer
should be part analyst and part coder. A developer should be able to handle requirements gathering
through implementation. Every project should have at least one good developer. In your interview,
you should distinguish between the two.
If you're looking for an Oracle resource, there is a huge possible range of knowledge. Does a
developer code for the front end? If so, which tools? Forms, Reports, HTML DB? I hope that you
aren't looking for Java because wouldn't that make them a java programmer and not an Oracle
developer?
Before you start to interview people, make sure you really know what you're looking for. It's not fair to
the candidate to say you're looking for forms experience and then spend all of your time on
advanced back end programming. And don't ask a backend coder the fine details of forms.
When I interview someone, I look for more than yes/no answers to my questions. In an interview, I
expect a candidate to communicate with me. I'm looking for a comfort level. If the person says they
don't know a particular topic, that's acceptable. If they fumble and make something up, that's a
problem to me. I don't look for textbook definitions. I want to know they understand what I'm asking
and what they're answering. I also don't believe in tricky interviews. What's the point?

Regardless of the exact position, any Oracle resource, including a DBA, should know some basic
things about SQL and PL/SQL. Some sample questions I ask are:
For Basic SQL:

How do you convert a date to a string? To_char. A bonus would be that they always include a
format mask.

What is an aggregate function? I'm looking for "grouping", sums or counts, etc.

What is an interval? Specifies a period of time.

What is a nested subquery? A subquery in a where clause.

What is the dual table? A single row table provided by oracle for selecting values and
expressions.

For Basic PL/SQL:

Describe the block structure of PLSQL. Declaration, Begin, exception, end.

What is an anonymous block? Unnamed PL/SQL block.

What is a PL/SQL collection? PL/SQL Table, Varray, PL/SQL Array, etc.

What is the difference between an explicit cursor and a select into. You might get something
about performance but that's a myth. An explicit cursor is just more typing. A cursor for loop would be
used to return more than a single row.

Why would you choose to use a package versus straight procedures and functions? I look
for maintenance, grouping logical functionality, dependency management, etc. I want to believe that
they believe using packages is a "good thing".

These are pretty basic questions. If I don't get a warm fuzzy from these, and they are 100%
answerable by anyone with some real experience, then the person goes no further.
So, where do you go after the basics? That really depends on what you're looking for. If you are
hiring a Java coder to work with your Oracle group or you're looking for a DBA, you might end the
coding part here. You would expect a DBA to know more but I would move on to administrative
questions. You might also stop here if you're looking for a junior developer to train.

If you're looking for a senior PL/SQL coder type, you will want to go deeper. You need to remember
to ask specific questions about a person's background and forms developers will have different
experience than a back-end developer. But either should have a good grasp of advanced topics.
The hard part is that there are so many advanced topics; it's hard to know what to ask. You need to
tailor it for your environment. If you use a lot of AQ, ask AQ questions. If you're very OO, ask OO
questions.
Here are some more advanced, but still generic questions:
For Advanced SQL:

What is the difference between an aggregate and an analytic function? I'm looking for them
knowing that a sum aggregate (or any other aggregate function) will return one row for a group and a
sum analytic will return one result for each row in the group. If they mention the "Window", they get a
bonus point. ;-)

How do you create a hierarchical query? Connect by.

How would you generate XML from a query? The answer here is "A lot of different ways".
They should know that there are SQL functions: XMLELEMENT, XMLFOREST, etc and PL/SQL
functions: DBMS_XMLGEN, DBMS_XMLQUERY, etc.

What do you need before implementing a member function? You need to create a type.

How do you tune a query? I'm looking for a discussion of autotrace and/or explain plan. Ask

them what they're looking for in a plan. This should not be a single sentence. Look for a comfort
level.

For Somewhat Advanced PL/SQL:

What is the default value of a boolean? NULL. This is somewhat tricky but apparently there
are languages that default boolean to false. A PL/SQL developer needs to know all variables default
to NULL.

Why is using implicit conversions a poor programming practice? For dates, you must
ASSUME that the default date format will always be the same (and it won't be). In some cases,
implicit conversion is slower. I want to feel like they don't believe writing to_char or to_number is
more work than it's worth. BTW, this also applies to SQL.

How can you tell if an UPDATE updated no rows? SQL%NOTFOUND.

How can you tell if a SELECT returned no rows. NO_DATA_FOUND exception.

How do you run Native Dynamic SQL? Execute immediate.

What is an autonomous transaction? Identified by pragma autonomous. A child transaction


separate from the parent that MUST be committed or rolled back.

Those are some items that should also give you a warm fuzzy. If a person makes it to here, you can
ask the questions specific to your organization, i.e. the AQ, LOB, Forms, HTML DB, etc.
At this point I usually ask the candidate to explain specific statements on the resume. If they say
they tuned queries or improved performance, I say how? What did you do? What tools did you use?
That's my interviewing method. I hope that helps you get the best people for your organization.
Lewis

Database Geek

My blog represents my thoughts and opinions and not my employers thoughts and opinions. If you want to know what my employers
think, it is best to ask them directly. On the other hand, I pretty much say what I am thinking right here.

This work by Lewis Cunningham is licensed under a Creative Commons Attribution-Share Alike 3.0 United States
License.

Read 43 comments
Popular White Paper On This Topic

Ransomware Jail - is there any way out?


(Asking ...

More White Papers

43 Comments

Unknown User May 4, 2005


Lewis, I think its pretty generous of you to devote some of your time to sharing your knowledge and
experiences via this blog. I have two questions for you. One, does your employer know about and
support your blog activities? Second, given your employment with a F500 company, I am wondering
if your employer has ever considered or is using open source databases? If so, could we have a
dialog offline? you can reach me at don "at" cdpllc.biz if you are willing to do so.

Lewis Cunningham May 5, 2005


Don, Thanks for the comments=2E I enjoy sharing my experiences and= writing this blog so it makes
it a lot easier=2E ;-) On your first question: I have not hidden that I am writing a= blog=2E But I don't
really advertise it=2E Well, I do with some of= my immediate coworkers but I'm not putting up
posters on the= breakroom bulletin board=2E I try to keep my blog as separate from the company I
work for as= I can=2E Obviously my experiences are built from the work I do= but I chose not to talk
about specifics dealing with the= company=2E That way, neither of us should have any concerns
about= IP or other legalese=2E It helps that I like my job and the= company I work for and don't
really need a forum for= complaining=2E hehe I usually get up between 3 and 4 am to write before
work=2E That= also helps me keep the blog separate from work=2E On your second question, I
can't speak for the entire company but= my group does not currently use any open source
databases=2E I am= not opposed to that, though=2E I recently did an article on my= other site,
http://www=2Esuite101=2Ecom/welcome=2Ecfm/oracle,= comparing the installation process for
PostgreSQL, MySQL and= Oracle and plan to do more comparisons=2E My group does do DB2,
SQL Server and Oracle=2E There may be other= groups using other databases=2E I will send you
an email so we can discuss further if you would= like to=2E Thanks, Lewis

Unknown User May 14, 2005


I've interviewed hundreds of PL/SQL and Java/Oracle developers over the past couple years, and
I've learned that the most important question to ask is: What is wrong with this statement? 'SELECT

* FROM t WHERE pk='||v_identifier If you don't hear something back about bind variables or hard
parses you are talking to a junior developer.

Unknown User May 20, 2005


Nothing wrong in modern ages - ages of cost-based optimizers. In stone ages - it will not use the
index and hence, qry would be slow if the table is huge. Can I get the job?

Unknown User Aug 2, 2005


The following group is really good.....has helped me a lot. Search interview questions in this group.
http://groups.google.co.in/group/ORACLE_DBA_EXPERTS regards, rouland

Unknown User Sep 5, 2005


Thanks Lewis for providing the oracle interview tips. It is really helpful for beginners as well
experienced persons in software field.

Unknown User Sep 20, 2005


a very nice read, i intend to focus on oracle development in the next 1-2 years and i believe this blog
will be one of my favorite hangouts ^_^ more aticles and tips pls!!!

Unknown User Oct 19, 2005


Hello Lewis, I've been working on oracle for the last 10 years. However, I leave a lot of thing to
search/refer when I need. I have not attended interviews in a long time. Some of your questions are
simple, but I couldn't have answered it immediately. thanks.

Unknown User Apr 28, 2006


this section is best for freshers and exprienced persons too

Unknown User Apr 28, 2006


I like interviewing candidates and I agree with you that you must= know what you're hiring them
for=2E I always start my Oracle interviews by explaining to the= candidate that we all know what a
huge product Oracle is and= that it's natural to have strengths and weaknesses=2E I then ask= them
if they can name a few weaknesses and a few strengths they= have in Oracle=2E That way I won't
waste time beating them up on areas they know= they are weaker in and will focus on digging into
what they= think they're good at=2E I think that approach is good for two reasons: it doesn't waste=
time, and it tells me how much they've thought about the variety= of specialties in Oracle=2E I'm
always surprised at how many candidates claim to have no= weaknesses and then start every other
answer "we don't really do= that where I'm working now=2E" I agree also that there's no point in
asking trick questions, but= I do ask hard questions=2E How they present their answer is=
sometimes as valuable as to whether or not they get it right,= especially depending on the skill level
you are looking for=2E A few of the "tough" questions I ask to people who rate= themselves as
experts: PL/SQL What's the difference in the "return" statement in a function vs=2E= a procedure?
Tuning/scalability What does ITL stand for and what role does it play? (I'll= sometimes tell them what
it stands for and see if they can get= the rest of the answer) Backup/Recovery What is the specific
impact of issuing a RESETLOGS vs a= NORESETLOGS? Why do you have to put tablespaces into
backup mode (if no RMAN)= during a hot backup and what does Oracle do differently if= anything?
(I'll even hint that I'm interested in the redo= logs)=2E Admin You make a manual change to your
TNSNAMES=2EORA file and you know= the entry is valid, but you start getting ORA-12154
errors=2E How= do you troubleshoot? What's the difference between logical and physical I/O?
Some people answer them, some people don't (I love phone= interviews where you can hear people
typing into a keyboard or= flipping pages in a book while saying "uhhh=2E=2E=2E" (twice this=
week!)) I would always prefer that if someone doesn't know the answer to= any question I ask that
they just admit they don't know but are= willing to make a guess based on what they do know=2E
That level of honesty tells me she/he may be a team member I can= trust=2E In a crisis situation, I'd
always prefer to have someone= who I could believe in=2E Resumes don't get you the job, they get
you the interview=2E You'd= better be able to support what it says=2E

Unknown User Jul 6, 2006


Hi, I have been a Oracle Applications and DB developer for 9 years now. In reality, you do not recall
all the jargon around the technical questions. When you look at code, or need to develop something,
you use the knowledge of tools that you have used or the capabilities that you are aware of for the

tool that you are using. Advanced Syntax and the rest of the details is normally sorced from manuals
or the web. If you are a good developer, you will know the tools capabilities and where to look for
syntax if you can not recall the detail. In addition, good SQL developers automatically tune their
statements as they write them based on simple performance rules. Should they need to fine tune,
then only do you start using explain plans and other optimisation methods. In the final analysis your
interview method would give you a very limited view of the persons capabilities. I think that good
technical resources normally have good learning and listening skills. Therefore, develop tests around
their comprehension and learning ability which would give a more accurate view of the persons
capabilities. Best regards Burhaan

Lewis Cunningham Jul 6, 2006


Burhaan, Where in this blog did I ask for advanced syntax? I don't think I asked for any syntax. What
I ask is that a candidate should be able to discuss a wide range of topics related to developing
oracle database applications. You don't know how to convert a date to a string, I don't need you. I did
not ask for syntax, I asked HOW. I expect a Jr developer to be able to at least discuss conversion
functions. Don't know the difference between an aggregate and an analytic function? Then I need to
decide what is important in this job. If the job is heavy SQL and geared around analytical
applications, the candidate needs to know the difference. You don't know what an anonymous block
is or why you would use a package? Again, except for a junior position, I don't need you. This is
basic PL/SQL. If you read the post again, you'll see that I specifically say the hardest thing is
deciding what the person is going to be doing (build a job description) and choose your interview
questions based on that. These questions are not a generic template for all situations. Re-read the
post. And if you have 9 years and can't answer all of the basic questions above and at least some of
the advanced, then I have to wonder what you have been doing for 9 years. I understand someone
not doing any XML so they don't know the XML questions. I understand someone not doing analytics
or knowing hierarchical queries. Not everyone has done those. But they should be able to at least
discuss some of those even just to say, "I haven't done any XML but I know Oracle has a bunch of
SQL functions that do XML stuff." That is a very valid answer. I have never used Oracle Spatial. I
know it exists. I have read about what it is and what it's for. I can't answer specifics but I can
intelligently discuss it. That's the kind of thing I think is important. This entry about my interviewing
philosophydescribes this in more detail. Thanks for the post. LewisC

Unknown User Nov 29, 2006

thats really wonderful to know how the interview pattern will be. It really boosts the freshers to gain
knowledge about the interview pattern sothat it helps the interviewer to have a smooth flow in
interview and also manages time efficiently. i am very much thankful for providing valuable
information

Unknown User Mar 26, 2007


I would like to tell that, I had enrolled the NEWHORIZON professional training center in the track of
Oracle Developer 10G. I am certified OCP

venkateswarlu T Mar 29, 2007


Thanks, this Blog is helpfull people like me

sudhir babu Apr 2, 2007


yes it is very helpful to me too...
Thanks...

Jeannette2004 Apr 11, 2007


Hi Lewis, I am looking for the following resource for Edmonton Alberta. i can't find anyone in
Canada? any suggestions
Oracle Designer/Developer with 2 years experience working with HRMS suite (payroll, HR).
Required to have skills in conversions for HRMS suite (eg balance conversions, employee
conversions)

2_adityach Apr 12, 2007

hi lewis,
my name is aditya and i m new for oracle. I am commerce graduage and from last few days i am
learning Oracle, start with SQL. Can you guide me how to catch best knowledge of SQL, PL/SQL
and also if possible kindly provide me soft copies or links, related to SQL, PL/SQL. I am very
thankfull to you if you provide me guidance.
thanks & Regards
Aditya
onlineadityachaturvedi@yahoo.co.in

Unknown User Apr 18, 2007


Hmmmm.... I hav worked on O Apps in India for an year and then shifted to USA for higher studies...
like everyone else, I found the questions quite easy, but cud not answer some of them at first shot...
now i am done with my Masters ..infact I will be done in two days... and I have been wondering if I
shud b following all other sheep getting into SAP... but guess what, while reading this blog, I realized
my urge and passion for Oracle is more than any other... its something I love to do... not that I have
decided to take up O Apps right away...but now i have my second thoughts about SAP... I will have to
consult ppl and decide... but the feel to feel the passion is grtt...thanq alll..

Unknown User May 5, 2007


wonderful. thanks very much for this.....

Unknown User Aug 11, 2007


i am sathesh, i am basically electronics student in b.e. i have not got job in electronics.so now i am
studying oracle. i am new in this field. so i want how to improve oracle knowledge.
how to face oracle interview? what are the important question ask me in interview? anybody know
that answer pls help me.

Unknown User Aug 31, 2007


I found your article very interesting and helpfull. Thanks a lot...

Unknown User Sep 24, 2007


how can we retrieve alternative rows(1st,3rd,5th.....)

Unknown User Sep 25, 2007


To retrieve alternative rows, assuming you have an ordering column [my_col], you might try:
select c.my_col
from (select rownum b_row, b.my_col
from (select a.my_col
from my_table a
order by a.my_col) b
)c
where mod(c.b_row,2) = 1
/
Alternatively, bulk collect into a PL/SQL table and loop/read with subscript variable.

Unknown User Oct 29, 2007


hi lewis
I think its pretty generous of you to devote some of your time to sharing your knowledge and
experiences via this blog. i am fresher in this field, how i need suggestions from u. how can i get job
as a oracle developer?

Unknown User Feb 20, 2008

Hi Lewis !
Thanx for sharing ur views reg interview ques,it helped me knowing what interviewer looks for .....

Unknown User Mar 21, 2008


Thanks a lot for sharing ur views......Would help in oracle interviews
Feb 27, 2009
Hi LewisC,
I would like to add here that it is not always necessary to ask candidates questions according to their
experience (like you said a person with 9years experience should know this and that), it is necessary
to ask them questions about what you want them to do once they work in your organization. What I
mean is that if you ask them questions about ITL and maybe Oracle 10G, and your requirement is to
write basic(and a little intermediate) code in 9i, then you should not ask questions not related to your
scope of work. The reason for this is simple. The candidate may answer your question correctly
because he has worked on ITL or say 10G, and based on those you will select him for the role. The
candidate will join with the expectation that he will work on advanced Oracle as such questions were
asked in the interview (very likely that people who take interview ask all sorts of questions, but donot
exactly say what level of coding or function is expected out of the candidate. Even when they do
explain it, the explanation is very vague). Once the person joins the company (hoping to work on
something similar to the kind of questions asked in the interview) and knows he is not getting to work
on 10G or ITL, he becomes frustrated and repents leavingthe earlier organization where he/she was
working and has learnt so many things which helped him clear this interview :-). So to cut it short, I
would like to say that the questions asked in an interview should check the candidate's skills, but
based on what work is expected of him/her.
regards,
S.M.

Lewis Cunningham Feb 28, 2009


S.M.
I don't agree. I think it should be made very clear what a person's duties will be in a job. There
should be adequate discussion (led by the candidate of need be) on what the candidate will be

expected to do on a daily basis BEFORE a job offer is made.


That has nothing to do with the questions asked though. If a person says they have 10 years in
PL/SQL, I will expect them to be very senior and be able to participate as a senior member of the
team, even if the pl/sql I need right now is fairly basic.
Thanks for the comments.
LewisC

USER_1829731 Dec 17, 2009


Thanks LewisC, its really a g8t article i found.
Thanks
Som

bikky6 Jan 15, 2010


If a procedure p1 having another procedure p2 ,I want to commit p2 and roll back p1 what to do?

lakshminarayana gonela Mar 8, 2010


hi, i have an doubt. pl sql developer means what ? what work they do in real time projects and
forms(developer 2000) r must and should used are not ?
i have good knowledge in pl sql but i dont know the forms developing k if i get job in MNC company
what work will i do ?
pls tell me any one

USER_2071023 Jun 26, 2010


hey, tell me what will be the future of pl/sql developer.........plz

USER_2194731 Oct 20, 2010


Hi Lewis ...
Thanks for sharing your knowledge and Experience .. Really it is a good work.

USER_2251479 Dec 6, 2010


Hi Lewis....
it was very good one. i have 2+yrs of exp but i am not able to answer some of the question.
plz can you gide me how can i face the interview.

USER_2274514 Dec 24, 2010


i am new to oracle applications(SQL andPL/SQL)
is there any possible to learn this with in 15 days
how??????

Bhavin Patel Jan 14, 2011


Dear Lewis......
This is Bhavin Patel from India, working as Oracle PLSQL Developer since 3.5 yrs.
The questions you have mentioned above are good ask at the starting of interview to test the
interviewer.
But I'd have give interview before to some good TOP MNC IT companies at India, they were asked
some difficult question like,
Q1: How would you convert the any number to word? (Like Amount in words)

Q2: Mutating trigger? How to avoid?


Q3: How would u connect to Oracle Server?
Q4: How & when are you using cursor, ref cursor? Cursor Types..?
Q5. Which tool are you using debugging?
Q6: which tool are you using for performance tuning..?
Etc?etc?
In the above all the Questions I have given all the answer correct, but still I was not selected? They
told me like they want additional to ORACLE some Unix Shell scripting..?
So I want to ask you how Unix shell scripting is mandatory to clear any interview for Oracle PLSQL
Dev..?

Sharad Gupta Apr 11, 2011


Hi i am sharad And i have completed engineering in computer science branch
in 2010.and i want to make my carrier as a oracle developer.What technologies is required
to learn.plz suggest me........

USER_2459054 May 18, 2011


Hi,
i have a doubt in oracle,
which tool is usd to connect user to database server?
can u plz tellme

Peeyush Sharma Nov 3, 2011

Hi kindly tell me what book I should follow to gain some knowledge on advance topics of PL/SQL
I am working an intern for the past 5 months now and now I am looking for some advance
knowledge.
Kindly share if you have any e-book on sharma_peeyush840@yahoo.com
Thanks
Peeyush Sharma

UnixNewbie Jun 23, 2012


Hi Bhavin,
I am an interveiwer, usually conducts for both oracle pl/sql and shell script.
Now if i come to your question, i would say NO. it is not must that u should also know shell script.
But basic knwolegde of with unix box is good. Like
1) How to connect your DB with Unix box?
2) We can schedule a job in unix, how to schedule a job in oracle?
3) We can send mails through unix, how we can make it from oracle?
4) How to use SQL Loader funcationality in unix, what should be command?
5) If you wish write a simple sql query in shell script or simply in unix prompt, how would you write
it?
6) How to search a string or matching string in a script?
etc etc etc
What i meant to say, if you are a good oracle developer but not a shell scriptor, doesn't matter but U
should know common functionality of both langauages which are syntactically different.
Hope this helps you.

harshitadesu Jul 6, 2012


Medha Information research Offering In House, Online and Corporate training on Oracle 10g/11
Course Highlights
Fully hands on Sessions.
Real time examples

Interview/project support
In depth and exclusive coverage on each topic
For More details,
Contact us at +91 9945207350 or write us at info@medhainfo.com
Website: WWW.MEDHAINFO.COM

alwing Jun 15, 2015


I have attended many interviews in TCS, Infosys and many more .. This article contains good set of
questions.. But i also found that below articles can also help others for more interview questions..
One problem with below article is that , it only contains questions not answers :(.. so can anyone
help me for answers
http://youngnewton.com/top-20-sql-interview-questions/
http://youngnewton.com/top-20-oracle-plsql-interview-questions/

Potrebbero piacerti anche