Oracle Interview Questions and Answers: SQL: 1. To See Current User Name
Oracle Interview Questions and Answers: SQL: 1. To See Current User Name
Oracle Interview Questions and Answers: SQL: 1. To See Current User Name
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?
Output :
NVL(TO_CHAR(COMM),'NA')
-----------------------
NA
300
500
NA
1400
NA
NA
Tips : 1. Here SQL%ISOPEN is false, because oracle automatically closed the implicit cursor
after executing SQL statements.
: 2. All are Boolean attributes.
18. Other way to replace query result null value with a text
SQL> Set NULL ‘N/A’
to reset SQL> Set NULL ‘’
21. What is the maximum number of triggers, can apply to a single table?
12 triggers.
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.
25 Which of the following is not a schema object : Indexes, tables, public synonyms,
triggers and packages ?
26 What is PL/SQL?
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.
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'
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;
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;
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.
35 Which of the following is not a schema object : Indexes, tables, public synonyms,
triggers and packages ?
36 What is PL/SQL?
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.
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'
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;
Answer: No.
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.
Answer: No.
Answer: OverLoading means an object performing different functions depending upon the no.of
parameters or the data type of the parameters passed to it.
Answer: Yes.
51 Can 2 functions have same name & input parameters but differ only by return datatype
Answer: No.
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.
Answer: No
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.
Answer: A trigger giving a SELECT on the table on which the trigger is written.
Answer: Contains pointers to locations of various data files, redo log files, etc.
Answer: It Used by Oracle to store information about various physical and logical Oracle
structures e.g.Tables, Tablespaces, datafiles, etc
Answer: No.
Answer: Yes.
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.
75 What are the states of a rollback segment ? What is the difference between partly
available and needs recovery ?
ONLINE
OFFLINE
PARTLY AVAILABLE
NEEDS RECOVERY
INVALID.
77 An insert statement followed by a create table statement followed by rollback ? Will the
rows be inserted ?
Answer: No.
Answer: Yes.
Answer: Yes.
Answer: 254.
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
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;
Answer: Yes
Answer: Yes
Answer: Yes
Answer: Yes
Answer: 9 rows
Answer: No rows
90 Which symbol preceeds the path to the table in the remote database ?
Answer: @
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 ?
94 A table has the following data : [[5, Null, 10]].What will the average function return ?
Answer: 7.5
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
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
Answer: To be created when table is queried for less than 2% or 4% to 25% of the table rows.
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: No
Answer: No.
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.
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 ?
114 Assume that there are multiple databases running on one machine.How can you switch
from one to another ?
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
Equijoins
Non-equijoins
self join
outer join
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 ?
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.