Sei sulla pagina 1di 13

PL/SQL interview questions

1. Which of the following statements is true about implicit


cursors?
1. Implicit cursors are used for SQL statements that are not
named.
2. Developers should use implicit cursors with great care.
3. Implicit cursors are used in cursor for loops to handle data
processing.
4. Implicit cursors are no longer a feature in Oracle.

2. Which of the following is not a feature of a cursor FOR loop?


1. Record type declaration.
2. Opening and parsing of SQL statements.
3. Fetches records from cursor.
4. Requires exit condition to be defined.

3. A developer would like to use referential datatype declaration


on a variable. The variable name is EMPLOYEE_LASTNAME, and
the corresponding table and column is EMPLOYEE, and LNAME,
respectively. How would the developer define this variable
using referential datatypes?
1. Use employee.lname%type.
2. Use employee.lname%rowtype.
3. Look up datatype for EMPLOYEE column on LASTNAME table and
use that.
4. Declare it to be type LONG.

4. Which three of the following are implicit cursor attributes?


1. %found
2. %too_many_rows
3. %notfound
4. %rowcount
5. %rowtype

5. If left out, which of the following would cause an infinite loop


to occur in a simple loop?
1. LOOP
2. END LOOP
3. IF-THEN
4. EXIT

6. Which line in the following statement will produce an error?


1. cursor action_cursor is
2. select name, rate, action
3. into action_record
4. from action_table;
5. There are no errors in this statement.

7. The command used to open a CURSOR FOR loop is


1. open
2. fetch
3. parse
4. None, cursor for loops handle cursor opening implicitly.

8. What happens when rows are found using a FETCH statement


1. It causes the cursor to close
2. It causes the cursor to open
3. It loads the current row values into variables
4. It creates the variables to hold the current row values

9. Read the following code:


10. CREATE OR REPLACE PROCEDURE find_cpt
11. (v_movie_id {Argument Mode} NUMBER, v_cost_per_ticket
{argument mode} NUMBER)
12. IS
13. BEGIN
14. IF v_cost_per_ticket > 8.5 THEN
15. SELECT cost_per_ticket
16. INTO v_cost_per_ticket
17. FROM gross_receipt
18. WHERE movie_id = v_movie_id;
19. END IF;
20. END;

Which mode should be used for V_COST_PER_TICKET?

1. IN
2. OUT
3. RETURN
4. IN OUT

21. Read the following code:


22. CREATE OR REPLACE TRIGGER update_show_gross
23. {trigger information}
24. BEGIN
25. {additional code}
26. END;

The trigger code should only execute when the column,


COST_PER_TICKET, is greater than $3. Which trigger information
will you add?
1. WHEN (new.cost_per_ticket > 3.75)
2. WHEN (:new.cost_per_ticket > 3.75
3. WHERE (new.cost_per_ticket > 3.75)
4. WHERE (:new.cost_per_ticket > 3.75)

27. What is the maximum number of handlers processed before the


PL/SQL block is exited when an exception occurs?
1. Only one
2. All that apply
3. All referenced
4. None

28. For which trigger timing can you reference the NEW and OLD
qualifiers?
1. Statement and Row
2. Statement only
3. Row only
4. Oracle Forms trigger

29. Read the following code:


30. CREATE OR REPLACE FUNCTION get_budget(v_studio_id IN
NUMBER)
RETURN number IS

v_yearly_budget NUMBER;

BEGIN

SELECT yearly_budget

INTO v_yearly_budget

FROM studio

WHERE id = v_studio_id;

RETURN v_yearly_budget;

END;

Which set of statements will successfully invoke this function


within SQL*Plus?

1. VARIABLE g_yearly_budget NUMBER


EXECUTE g_yearly_budget := GET_BUDGET(11);
2. VARIABLE g_yearly_budget NUMBER
EXECUTE :g_yearly_budget := GET_BUDGET(11);
3. VARIABLE :g_yearly_budget NUMBER
EXECUTE :g_yearly_budget := GET_BUDGET(11);
4. VARIABLE g_yearly_budget NUMBER
:g_yearly_budget := GET_BUDGET(11);
31. CREATE OR REPLACE PROCEDURE update_theater
32. (v_name IN VARCHAR v_theater_id IN NUMBER) IS
33. BEGIN
34. UPDATE theater
35. SET name = v_name
36. WHERE id = v_theater_id;
37. END update_theater;
38.

When invoking this procedure, you encounter the error:

ORA-000: Unique constraint(SCOTT.THEATER_NAME_UK) violated.

How should you modify the function to handle this error?

1. An user defined exception must be declared and associated with


the error code and handled in the EXCEPTION section.
2. Handle the error in EXCEPTION section by referencing the error
code directly.
3. Handle the error in the EXCEPTION section by referencing the
UNIQUE_ERROR predefined exception.
4. Check for success by checking the value of SQL%FOUND
immediately after the UPDATE statement.

39. Read the following code:


40. CREATE OR REPLACE PROCEDURE calculate_budget IS
41. v_budget studio.yearly_budget%TYPE;
42. BEGIN
43. v_budget := get_budget(11);
44. IF v_budget < 30000
45. THEN
46. set_budget(11,30000000);
47. END IF;
48. END;

You are about to add an argument to CALCULATE_BUDGET.


What effect will this have?

1. The GET_BUDGET function will be marked invalid and must be


recompiled before the next execution.
2. The SET_BUDGET function will be marked invalid and must be
recompiled before the next execution.
3. Only the CALCULATE_BUDGET procedure needs to be
recompiled.
4. All three procedures are marked invalid and must be
recompiled.

49. Which procedure can be used to create a customized error


message?
1. RAISE_ERROR
2. SQLERRM
3. RAISE_APPLICATION_ERROR
4. RAISE_SERVER_ERROR

50. The CHECK_THEATER trigger of the THEATER table has been


disabled. Which command can you issue to enable this trigger?
1. ALTER TRIGGER check_theater ENABLE;
2. ENABLE TRIGGER check_theater;
3. ALTER TABLE check_theater ENABLE check_theater;
4. ENABLE check_theater;

51. Examine this database trigger


52. CREATE OR REPLACE TRIGGER prevent_gross_modification
53. {additional trigger information}
54. BEGIN
55. IF TO_CHAR(sysdate, DY) = MON
56. THEN
57. RAISE_APPLICATION_ERROR(-20000,Gross receipts cannot
be deleted on Monday);
58. END IF;
59. END;

This trigger must fire before each DELETE of the


GROSS_RECEIPT table. It should fire only once for the entire
DELETE statement. What additional information must you add?

1. BEFORE DELETE ON gross_receipt


2. AFTER DELETE ON gross_receipt
3. BEFORE (gross_receipt DELETE)
4. FOR EACH ROW DELETED FROM gross_receipt

60. Examine this function:


61. CREATE OR REPLACE FUNCTION set_budget
62. (v_studio_id IN NUMBER, v_new_budget IN NUMBER) IS
63. BEGIN
64. UPDATE studio
65. SET yearly_budget = v_new_budget
WHERE id = v_studio_id;

IF SQL%FOUND THEN

RETURN TRUEl;

ELSE

RETURN FALSE;

END IF;

COMMIT;

END;

Which code must be added to successfully compile this


function?

1. Add RETURN right before the IS keyword.


2. Add RETURN number right before the IS keyword.
3. Add RETURN boolean right after the IS keyword.
4. Add RETURN boolean right before the IS keyword.

66. Under which circumstance must you recompile the package


body after recompiling the package specification?
1. Altering the argument list of one of the package constructs
2. Any change made to one of the package constructs
3. Any SQL statement change made to one of the package
constructs
4. Removing a local variable from the DECLARE section of one of
the package constructs

67. Procedure and Functions are explicitly executed. This is


different from a database trigger. When is a database trigger
executed?
1. When the transaction is committed
2. During the data manipulation statement
3. When an Oracle supplied package references the trigger
4. During a data manipulation statement and when the transaction
is committed

68. Which Oracle supplied package can you use to output values
and messages from database triggers, stored procedures and
functions within SQL*Plus?
1. DBMS_DISPLAY
2. DBMS_OUTPUT
3. DBMS_LIST
4. DBMS_DESCRIBE

69. What occurs if a procedure or function terminates with failure


without being handled?
1. Any DML statements issued by the construct are still pending
and can be committed or rolled back.
2. Any DML statements issued by the construct are committed
3. Unless a GOTO statement is used to continue processing within
the BEGIN section, the construct terminates.
4. The construct rolls back any DML statements issued and returns
the unhandled exception to the calling environment.

70. Examine this code


71. BEGIN
72. theater_pck.v_total_seats_sold_overall :=
theater_pck.get_total_for_year;
73. END;

For this code to be successful, what must be true?

1. Both the V_TOTAL_SEATS_SOLD_OVERALL variable and the


GET_TOTAL_FOR_YEAR function must exist only in the body of
the THEATER_PCK package.
2. Only the GET_TOTAL_FOR_YEAR variable must exist in the
specification of the THEATER_PCK package.
3. Only the V_TOTAL_SEATS_SOLD_OVERALL variable must exist
in the specification of the THEATER_PCK package.
4. Both the V_TOTAL_SEATS_SOLD_OVERALL variable and the
GET_TOTAL_FOR_YEAR function must exist in the specification
of the THEATER_PCK package.

74. A stored function must return a value based on conditions that


are determined at runtime. Therefore, the SELECT statement
cannot be hard-coded and must be created dynamically when
the function is executed. Which Oracle supplied package will
enable this feature?
1. DBMS_DDL
2. DBMS_DML
3. DBMS_SYN
4. DBMS_SQL

Database admin interview questions

1. What is a major difference between SQL Server 6.5 and 7.0


platform wise? SQL Server 6.5 runs only on Windows NT Server. SQL
Server 7.0 runs on Windows NT Server, workstation and Windows
95/98.

2. Is SQL Server implemented as a service or an application? It is


implemented as a service on Windows NT server and workstation and
as an application on Windows 95/98.

3. What is the difference in Login Security Modes between v6.5


and 7.0? 7.0 doesn’t have Standard Mode, only Windows NT
Integrated mode and Mixed mode that consists of both Windows NT
Integrated and SQL Server authentication modes.
4. What is a traditional Network Library for SQL Servers? Named
Pipes.

5. What is a default TCP/IP socket assigned for SQL Server? 1433

6. If you encounter this kind of an error message, what you need


to look into to solve this problem?

[Microsoft][ODBC SQL Server Driver][Named Pipes]Specified SQL


Server not found.

1. Check if MS SQL Server service is running on the computer you


are trying to log into
2. Check on Client Configuration utility. Client and Server have to
in sync.

7. What is new philosophy for database devises for SQL Server


7.0? There are no devises anymore in SQL Server 7.0. It is file system
now.

8. When you create a database how is it stored? It is stored in two


separate files: one file contains the data, system tables, other
database objects, the other file stores the transaction log.

9. Let’s assume you have data that resides on SQL Server 6.5. You
have to move it SQL Server 7.0. How are you going to do it? You
have to use transfer command.
10. Do you know how to configure DB2 side of the application? Set
up an application ID, create RACF group with tables attached to this
group, attach the ID to this RACF group.

11. What kind of LAN types do you know? Ethernet networks and
token ring networks.

12. What is the difference between them? With Ethernet, any devices
on the network can send data in a packet to any location on the
network at any time. With Token Ring, data is transmitted in ‘tokens’
from computer to computer in a ring or star configuration. Token ring
speed is 4/16 Mbit/sec , Ethernet - 10/100 Mbit/sec.

13. What protocol both networks use? TCP/IP. Transmission Control


Protocol, Internet Protocol.

14. How many bits IP Address consist of?An IP Address is a 32-bit


number.

15. How many layers of TCP/IP protocol combined of? Five.


(Application, Transport, Internet, Data link, Physical).

16. How do you define testing of network layers? Reviewing with


your developers to identify the layers of the Network layered
architecture, your Web client and Web server application interact with.
Determine the hardware and software configuration dependencies for
the application under test.

17. How do you test proper TCP/IP configuration Windows


machine? Windows NT: IPCONFIG/ALL, Windows 95: WINIPCFG, Ping
or ping ip.add.re.ss

Java on Oracle interview questions


1. What is JServer and what is it used for? Oracle JServer Option is a
Java Virtual Machine (Java VM) which runs within the Oracle database
server’s address space. Oracle also provides a JServer Accelerator to
compile Java code natively. This speeds up the execution of Java code
by eliminating interpreter overhead

.
2. How does one install the Oracle JServer Option?Follow these
steps to activate the Oracle JServer/ JVM option:
1. Make sure your database is started with large java_pool_size
(>20M) and shared_pool_size (>50M) INIT.ORA parameter
values.
2. Run the $ORACLE_HOME/javavm/install/initjvm.sql script from
SYS AS SYSDBA to install the Oracle JServer Option on a
database.
3. Grant JAVAUSERPRIV to users that wants to use Java:
SQL> GRANT JAVAUSERPRIV TO SCOTT;
4. The rmjvm.sql script can be used to deinstall the JServer option
from your database.
5. Follow the steps in the Oracle Migrations Guide to upgrade or
downgrade the JServer option from one release to
another.

3. ce code into the database? Use the “CREATE OR REPLACE JAVA


SOURCE” command or “loadjava” utility. Loaded code can be viewed
by selecting from the USER_SOURCE view.

4. Why does one need to publish Java in the database? Publishing


Java classes on the database makes it visible on a SQL and PL/SQL
level. It is important to publish your code before calling it from SQL
statements or PL/SQL code.

5. What is JDBC and what is it used for? JDBC is a set of classes and
interfaces written in Java to allow other Java programs to send SQL
statements to a relational database management system. Oracle
provides three categories of JDBC drivers: (a) JDBC Thin Driver (No
local Net8 installation required/ handy
for applets), (b) JDBC OCI for writing stand-alone Java applications, ©
JDBC KPRB driver (default connection) for Java Stored Procedures and
Database JSP’s.

6. How does one connect with the JDBC Thin Driver?


The the JDBC thin driver provides the only way to access Oracle from
the Web (applets). It is smaller and faster than the OCI drivers, and
doesn’t require a pre-installed version of the JDBC drivers.
7. import java.sql.*;
8. class dbAccess {
9. public static void main (String args []) throws SQLException
10. {
DriverManager.registerDriver (new
oracle.jdbc.driver.OracleDriver());

Connection conn = DriverManager.getConnection

("jdbc:oracle:thin:@hostname:1526:orcl", “scott", “tiger");

// @machineName:port:SID, userid, password


Statement stmt = conn.createStatement();

ResultSet rset = stmt.executeQuery("select BANNER from


SYS.V_$VERSION");

while (rset.next())

System.out.println (rset.getString(1)); // Print col 1

stmt.close();

11. How does one connect with the JDBC OCI Driver? One must have
Net8 (SQL*Net) installed and working before attempting to use one of
the OCI drivers.
12. import java.sql.*;
13. class dbAccess {
14. public static void main (String args []) throws SQLException
15. {
16. try {
17. Class.forName ("oracle.jdbc.driver.OracleDriver");
18. } catch (ClassNotFoundException e) {
19. e.printStackTrace();
}

Connection conn = DriverManager.getConnection

("jdbc:oracle:oci8:@hostname_orcl", “scott", “tiger");

// or oci7 @TNSNames_Entry, userid, password

Statement stmt = conn.createStatement();

ResultSet rset = stmt.executeQuery("select BANNER from


SYS.V_$VERSION");

while (rset.next())
System.out.println (rset.getString(1)); // Print col 1

stmt.close();

20. How does one connect with the JDBC KPRB Driver? One can
obtain a handle to the default or current connection (KPRB driver) by
calling the OracleDriver.defaultConenction() method. Please note that
you do not need to specify a database URL, username or password as
you are already connected to a database session. Remember not to
close the default connection. Closing the default connection might
throw an exception in future releases of Oracle.
21. import java.sql.*;
22. class dbAccess {
23. public static void main (String args []) throws SQLException
24. {
Connection conn = (new
oracle.jdbc.driver.OracleDriver()).defaultConnection();

Statement stmt = conn.createStatement();

ResultSet rset = stmt.executeQuery("select BANNER from


SYS.V_$VERSION");

while (rset.next())

System.out.println (rset.getString(1)); // Print col 1

stmt.close();

25. What is SQLJ and what is it used for? SQLJ is an ANSI standard
way of coding SQL access in Java. It provides a Java precompiler that
translates SQLJ call to JDBC calls. The idea is similar to that of other
Oracle Precompilers.
26. How does one deploy SQLJ programs? Use the sqlj compiler to
compile your *.sqlj files to *.java and *.ser files. The *.ser files
contain vendor specific database code. Thereafter one invokes the
javac compiler to compile the .java files to *.class files. The *.class
and *.ser files needs to be deployed.

27. What is JDeveloper and what is it used for? JDeveloper is the


Oracle IDE (Integrated Development Environment) for developing
SQLJ and JDBC programs, applets, stored procedures, EJB’s, JSP’s etc.

28. What is InfoBus DAC and what is it used for? InfoBus DAC (Data
Aware Controls) is a standard Java extension used in JDeveloper to
create data aware forms. It replaced the JBCL interface that were used
in JDeveloper V1 and V2.

29. What is a JSP and what is it used for? Java Server Pages (JSP) is a
platform independent presentation layer technology that comes with
SUN’s J2EE platform. JSPs are normal HTML pages with Java code
pieces embedded in them. JSP pages are saved to *.jsp files. A JSP
compiler is used in the background to generate a Servlet from the JSP
page.

30. What is the difference between ASP and JSP? Active Server Pages
(ASP) is a Microsoft standard, which is easier to develop than Java
Server Pages (JSP). However ASP is a proprietary technology and is
less flexible than JSP. For more information about ASP, see the Oracle
ASP FAQ.

31. How does one invoke a JSP? A JSP gets invoked when you call a
*.jsp file from your Web Server like you would call a normal *.html
file. Obviously your web server need to support JSP pages and must
be configured properly to handle them.

32. How does a JSP gets executed? The first time you call a JSP, a
servlet (*.java) will be created and compiled to a .class file. The class
file is then executed on the server. Output produced by the servlet is
returned to the web browser. Output will typically be HTML or XML
code.

33. What is a Java Stored Procedure/ Trigger? A Java Stored


Procedure is a procedure coded in Java (as opposed to PL/SQL) and
stored in the Oracle database. Java Stored procedures are executed by
the database JVM in database memory space. Java Stored Procedures
can be developed in JDBC or SQLJ. Interfacing between PL/SQL and
Java are extremely easy. Please note that Java Stored procedures are
by default executed with invokers rights. PL/SQL procedures are by
default executed with defines rights.

Potrebbero piacerti anche