|
Oracle Interview Questions and Answers
What is Auditing ?
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
While designing in client/server what are the 2 imp.
things to be considered ?
Network Overhead (traffic), Speed and Load of client
server
When to create indexes ?
To be created when table is queried for less than 2% or
4% to 25% of the table rows.
How can you avoid indexes ?
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.
What is the result of the following SQL :
Select 1 from dual
UNION
Select 'A' from dual;
Error
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.
Yes, database trigger would fire.
Can you alter synonym of view or view ?
No
Can you create index on view ?
No
What is the difference between a view and a synonym ?
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.
What is the difference between alias and synonym ?
Alias is temporary and used with one query. Synonym is
permanent and not used as alias.
What is the effect of synonym and table name used in
same Select statement ?
Valid
What's the length of SQL integer ?
32 bit length
What is the difference between foreign key and reference
key ?
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.
Can dual table be deleted, dropped or altered or updated
or inserted ?
Yes
If content of dual is updated to some value computation
takes place or not ?
Yes
If any other table same as dual is created would it act
similar to dual?
Yes
For which relational operators in where clause, index is
not used ?
<> , like '% ...' is NOT functions, field +constant,
field || ''
Assume that there are multiple databases running on one
machine. How can you switch from one to another ?
Changing the ORACLE_SID
What are the advantages of Oracle ?
Portability : Oracle is ported to more platforms than
any of its competitors, running on more than 100
hardware platforms and 20 networking protocols.
Market Presence : Oracle is by far the largest RDBMS
vendor and spends more on R & D than most of its
competitors earn in total revenue. This market clout
means that you are unlikely to be left in the lurch by
Oracle and there are always lots of third party
interfaces available.
Backup and Recovery : Oracle provides industrial
strength support for on-line backup and recovery and
good software fault tolerence to disk failure. You can
also do point-in-time recovery.
Performance : Speed of a 'tuned' Oracle Database and
application is quite good, even with large databases.
Oracle can manage > 100GB databases.
Multiple database support : Oracle has a superior
ability to manage multiple databases within the same
transaction using a two-phase commit protocol.
What is a forward declaration ? What is its use ?
PL/SQL requires that you declare an identifier before
using it. Therefore, you must declare a subprogram
before calling it. This declaration at the start of a
subprogram is called forward declaration. A forward
declaration consists of a subprogram specification
terminated by a semicolon.
What are actual and formal parameters ?
Actual Parameters : Subprograms pass information using
parameters. The variables or expressions referenced in
the parameter list of a subprogram call are actual
parameters. For example, the following procedure call
lists two actual parameters named emp_num and amount:
Eg. raise_salary(emp_num, amount);
Formal Parameters : The variables declared in a
subprogram specification and referenced in the
subprogram body are formal parameters. For example, the
following procedure declares two formal parameters named
emp_id and increase: Eg. PROCEDURE raise_salary (emp_id
INTEGER, increase REAL) IS current_salary REAL;
What are the types of Notation ?
Position, Named, Mixed and Restrictions.
What all important parameters of the init.ora are
supposed to be increased if you want to increase the SGA
size ?
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.
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 ?
Yes
What are various types of joins ?
Equijoins, Non-equijoins, self join, outer join
What is a package cursor ?
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.
If you insert a row in a table, then create another
table and then say Rollback. In this case will the row
be inserted ?
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.
What are the various types of queries ??
Normal Queries
Sub Queries
Co-related queries
Nested queries
Compound queries
What is a transaction ?
A transaction is a set of SQL statements between any two
COMMIT and ROLLBACK statements.
What is implicit cursor and how is it used by Oracle ?
An implicit cursor is a cursor which is internally
created by Oracle. It is created by Oracle for each
individual SQL.
Which of the following is not a schema object : Indexes,
tables, public synonyms, triggers and packages ?
Public synonyms
What is PL/SQL?
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.
Is there a PL/SQL Engine in SQL*Plus?
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.
Is there a limit on the size of a PL/SQL block?
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'
Can one read/write files from PL/SQL?
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;
How can I protect my PL/SQL source code?
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
Can one use dynamic SQL within PL/SQL? OR Can you use a
DDL in a procedure ? How ?
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;
Page Numbers :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 35
Have a Question ?
post your questions here. It
will be answered as soon as possible.
Check
Job Interview Questions
for more Interview Questions with Answers
|