Oracle Interview Questions and Answers: SQL: 1. To See Current User Name

Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 18
At a glance
Powered by AI
The key takeaways from the document are different Oracle SQL commands and functions like displaying row numbers, finding duplicate rows, implicit and explicit cursors etc.

The different types of joins are: Equijoins, Non-equijoins, self join, outer join

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.

Oracle Interview Questions and Answers : SQL

1.      To see current user name


 Sql> show user;

2.      Change SQL prompt name


 SQL> set sqlprompt “Manimara > “
Manimara >
Manimara >

3.      Switch to DOS prompt


 SQL> host

4.      How do I eliminate the duplicate rows ?


 SQL> delete from table_name where rowid not in (select max(rowid) from table group by
duplicate_values_field_name);
or
SQL> delete duplicate_values_field_name dv from table_name ta where rowid <(select
min(rowid)  from table_name tb where ta.dv=tb.dv);
Example.
Table Emp
Empno Ename
101               Scott
102               Jiyo
103               Millor
104               Jiyo
105               Smith
delete ename from emp a where rowid < ( select min(rowid) from emp b where a.ename =
b.ename);
The output like,
Empno Ename
101               Scott
102               Millor
103               Jiyo
104               Smith

5.      How do I display row number with records?


To achive this use rownum pseudocolumn with query, like SQL> SQL> select rownum, ename
from emp;
Output:
1                    Scott
2                    Millor
3                    Jiyo
4                    Smith

6.      Display the records between two range


select rownum, empno, ename  from emp  where  rowid in
 (select rowid from emp where rownum <=&upto
 minus
 select rowid from emp where rownum<&Start);
Enter value for upto: 10
Enter value for Start: 7

   ROWNUM     EMPNO ENAME


--------- --------- ----------
        1      7782 CLARK
        2      7788 SCOTT
        3      7839 KING
        4      7844 TURNER

7.      I know the nvl function only allows the same data type(ie. number or char or date
Nvl(comm, 0)), if commission is null then the text “Not Applicable”  want to display,
instead of blank space. How do I write the query?

 SQL> select nvl(to_char(comm.),'NA') from emp;

Output :

NVL(TO_CHAR(COMM),'NA')
-----------------------
NA
300
500
NA
1400
NA
NA

8.      Oracle cursor : Implicit & Explicit cursors


Oracle uses work areas called private SQL areas to create SQL statements.
PL/SQL construct to identify each and every work are used, is called as Cursor.
For SQL queries returning a single row, PL/SQL declares all implicit cursors.
For queries that returning more than one row, the cursor needs to be explicitly declared.

9.      Explicit Cursor attributes


 There are four cursor attributes used in Oracle
cursor_name%Found, cursor_name%NOTFOUND, cursor_name%ROWCOUNT, cursor_name
%ISOPEN

10.  Implicit Cursor attributes


 Same as explicit cursor but prefixed by the word SQL

SQL%Found, SQL%NOTFOUND, SQL%ROWCOUNT, SQL%ISOPEN

Tips : 1. Here SQL%ISOPEN is false, because oracle automatically closed the implicit cursor
after executing SQL statements.
       : 2.  All are  Boolean attributes.

11.  Find out nth highest salary from emp table


 SELECT DISTINCT (a.sal) FROM EMP A WHERE &N = (SELECT COUNT (DISTINCT
(b.sal)) FROM EMP B WHERE a.sal<=b.sal);

Enter value for n: 2


      SAL
---------
     3700

12.  To view installed Oracle version information


 SQL> select banner from v$version;

13.  Display the number value in Words


 SQL> select sal, (to_char(to_date(sal,'j'), 'jsp'))
from emp;
the output like,

      SAL (TO_CHAR(TO_DATE(SAL,'J'),'JSP'))


--------- -----------------------------------------------------
      800 eight hundred
     1600 one thousand six hundred
     1250 one thousand two hundred fifty
If you want to add some text like,
Rs. Three Thousand only.
SQL> select sal  "Salary ",
 (' Rs. '|| (to_char(to_date(sal,'j'), 'Jsp'))|| ' only.'))
 "Sal in Words" from emp
/
Salary  Sal in Words
------- ------------------------------------------------------
    800  Rs. Eight Hundred only.
   1600  Rs. One Thousand Six Hundred only.
   1250  Rs. One Thousand Two Hundred Fifty only.
14.  Display Odd/ Even number of records
 Odd number of records:
select * from emp where (rowid,1) in (select rowid, mod(rownum,2) from emp);
1
3
5
Even number of records:
select * from emp where (rowid,0) in (select rowid, mod(rownum,2) from emp)
2
4
6

15.  Which date function returns number value?


 months_between

16.  Any three PL/SQL Exceptions?


 Too_many_rows, No_Data_Found, Value_Error, Zero_Error, Others

17.  What are PL/SQL Cursor Exceptions?


 Cursor_Already_Open, Invalid_Cursor

18.  Other way to replace query result null value with a text
 SQL> Set NULL ‘N/A’
to reset SQL> Set NULL ‘’

19.   What are the more common pseudo-columns?


 SYSDATE, USER , UID, CURVAL, NEXTVAL, ROWID, ROWNUM

20.   What is the output of SIGN function?


 1 for positive value,
0 for Zero,
-1 for Negative value.

21.  What is the maximum number of triggers, can apply to a single table?
 12 triggers.

22 What are the various types of queries ?

Answer: The types of queries are:

 Normal Queries
 Sub Queries
 Co-related queries
 Nested queries
 Compound queries

23 What is a transaction ?

Answer: A transaction is a set of SQL statements between any two COMMIT and
ROLLBACK statements.

24 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.

25 Which of the following is not a schema object : Indexes, tables, public synonyms,
triggers and packages ?

Answer: Public synonyms

26 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.

27 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.

28 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'

29 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;

30 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 iname=myscript.sql oname=xxxx.yyy

31 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;

32 What are the various types of queries ?

Answer: The types of queries are:

 Normal Queries
 Sub Queries
 Co-related queries
 Nested queries
 Compound queries

33 What is a transaction ?
Answer: A transaction is a set of SQL statements between any two COMMIT and ROLLBACK
statements.

34 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.

35 Which of the following is not a schema object : Indexes, tables, public synonyms,
triggers and packages ?

Answer: Public synonyms

36 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.

37 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.

38 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'

39 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;
40 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
iname=myscript.sql oname=xxxx.yyy

41 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;

42 What are the various types of Exceptions ?

Answer: User defined and Predefined Exceptions.

43 Can we define exceptions twice in same block ?

Answer: No.

44 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.

45 Can you have two functions with the same name in a PL/SQL block ?

Answer: Yes.

46 Can you have two stored functions with the same name ?
Answer: Yes.

47 Can you call a stored function in the constraint of a table ?

Answer: No.

48 What are the various types of parameter modes in a procedure ?

Answer: IN, OUT AND INOUT.

49 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.

50 Can functions be overloaded ?

Answer: Yes.

51 Can 2 functions have same name & input parameters but differ only by return datatype

Answer: No.

52 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

53 Why Create or Replace and not Drop and recreate procedures ?

Answer: So that Grants are not dropped.

54 Can you pass parameters in packages ? How ?

Answer: Yes.You can pass parameters to procedures or functions in a package.

55 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

56 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.

57 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.

58 What is the maximum no.of statements that can be specified in a trigger statement ?

Answer: One.

59 Can views be specified in a trigger statement ?

Answer: No

60 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

61 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.

62 What are mutating triggers ?

Answer: A trigger giving a SELECT on the table on which the trigger is written.

63 What are constraining triggers ?

Answer: A trigger giving an Insert/Updat e on a table having referential integrity constraint on


the triggering table.

64 Describe Oracle database's physical and logical structure ?


Answer:
Physical : Data files, Redo Log files, Control file.
Logical : Tables, Views, Tablespaces, etc.

65 Can you increase the size of a tablespace ? How ?

Answer: Yes, by adding datafiles to it.

66 Can you increase the size of datafiles ? How ?

Answer: No (for Oracle 7.0)


Yes (for Oracle 7.3 by using the Resize clause )

67 What is the use of Control files ?

Answer: Contains pointers to locations of various data files, redo log files, etc.

68 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

69 What are the advantages of clusters ?

Answer: Access time reduced for joins.

70 What are the disadvantages of clusters ?

Answer: The time for Insert increases.

71 Can Long/Long RAW be clustered ?

Answer: No.

72 Can null keys be entered in cluster index, normal index ?

Answer: Yes.

73 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.

74 What are the min.extents allocated to a rollback extent ?


Answer: Two

75 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.

76 What is the difference between unique key and primary key ?

Answer: Unique key can be null; Primary key cannot be null.

77 An insert statement followed by a create table statement followed by rollback ? Will the
rows be inserted ?

Answer: No.

78 Can you define multiple savepoints ?

Answer: Yes.

79 Can you Rollback to any savepoint ?

Answer: Yes.

80 What is the maximum no.of columns a table can have ?

Answer: 254.

81 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

82 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;

83 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

84 Can you use %RowCount as a parameter to a cursor ?

Answer: Yes

85 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

86 Is the assignment given below allowed :


ABC = PQR (Where ABC and PQR are records)

Answer: Yes

87 Is this for loop allowed :


For x in &Start..&End Loop

Answer: Yes

88 How many rows will the following SQL return :


Select * from emp Where rownum < 10;

Answer: 9 rows

89 How many rows will the following SQL return :


Select * from emp Where rownum = 10;

Answer: No rows

90 Which symbol preceeds the path to the table in the remote database ?

Answer: @

91 Are views automatically updated when base tables are updated ?


Answer: Yes

92 Can a trigger written for a view ?

Answer: No

93 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

94 A table has the following data : [[5, Null, 10]].What will the average function return ?

Answer: 7.5

95 Is Sysdate a system variable or a system function?

Answer: System Function

96 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

97 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.

98 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

99 While designing in client/server what are the 2 imp.things to be considered ?

Answer: Network Overhead (traffic), Speed and Load of client server

100 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

101 When to create indexes ?

Answer: To be created when table is queried for less than 2% or 4% to 25% of the table rows.

102 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.

103 What is the result of the following SQL :


Select 1 from dual UNION Select 'A' from dual;

Answer: Error

104 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.

105 Can you alter synonym of view or view ?

Answer: No

106 Can you create index on view

Answer: No.

107 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.

108 What's the length of SQL integer ?

Answer: 32 bit length

109 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.

110 Can dual table be deleted, dropped or altered or updated or inserted ?

Answer: Yes

111 If content of dual is updated to some value computation takes place or not ?

Answer: Yes

112 If any other table same as dual is created would it act similar to dual?

Answer: Yes

113 For which relational operators in where clause, index is not used ?

Answer: <> , like '%...' is NOT functions, field +constant, field||''

114 Assume that there are multiple databases running on one machine.How can you switch
from one to another ?

Answer: Changing the ORACLE_SID

115 What are the types of Notation ?

Answer: Position, Named, Mixed and Restrictions.

116 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.

117 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

118 What are various types of joins ?

Answer: Types of joins are:

 Equijoins
 Non-equijoins
 self join
 outer join

119 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.

120 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.

121 What is difference b/w stored procedures and application procedures, stored function
and application function?

Stored procedures are subprogrammes stored in the database and can be called &executee multiple
times wherein an application procedure is the one being used for a particular application same is the
way for function.

Both can be executed any number of times. Only difference is that stored procedures/ functions are
stored in database in complied format while the application procedures/functions are not in
precomplied format and at run time has to be compiled.

You might also like