r rows satisfying the condition will be copied to the new table.
TRUNCATE TABLE EMP; DELETE FROM EMP; Will the outputs of the above two commands differ? Both will result in deleting all the rows in the table EMP..
What is the output of the following query SELECT TRUNC(1234.5678,-2) FROM DUAL;?
1200.
What are the wildcards used for pattern matching.? _ for single character substitution and % for multi-character substitution.
What is the parameter substitution symbol used with INSERT INTO command?& What's an SQL injection?
SQL Injection is when form data contains an SQL escape sequence and injects a new SQL query to be run.
What is difference between TRUNCATE & DELETE ? TRUNCATE commits after deleting entire table i.e., cannot be rolled back. Database triggers do not fire on TRUNCATE
DELETE allows the filtered deletion. Deleted records can be rolled back or committed. Database triggers fire on DELETE.
What is a join? Explain the different types of joins? Join is a query, which retrieves related columns or rows from multiple tables. Self Join - Joining the table with itself. Equi Join - Joining two tables by equating two common columns. Non-Equi Join - Joining two tables by equating two common columns. Outer Join - Joining two tables in such a way that query can also retrieve rows that do not have corresponding join value in the other table. What is the sub-query? Sub-query is a query whose return values are used in filtering conditions of the main query.
What is correlated sub-query? Correlated sub-query is a sub-query, which has reference to the main query.
Explain CONNECT BY PRIOR? Retrieves rows in hierarchical order eg.
select empno, ename from emp where.
Difference between SUBSTR and INSTR? INSTR (String1, String2 (n, (m)), INSTR returns the position of the m-th occurrence of the string 2 in string1. The search begins from nth position of string1. SUBSTR (String1 n, m) SUBSTR returns a character string of size m in string1, starting from n-th position of string1. Explain UNION, MINUS, UNION ALL and INTERSECT?
INTERSECT - returns all distinct rows selected by both queries. MINUS -
returns all distinct rows selected by the first query but not by the
second. UNION - returns all distinct rows selected by either query UNION
ALL - returns all rows selected by either query, including all
duplicates.
What is ROWID? ROWID is a pseudo column
attached to each row of a table. It is 18 characters long, blockno,
rownumber are the components of ROWID.
What is the fastest way of accessing a row in a table? Using ROWID.
CONSTRAINTS
What is an integrity constraint? Integrity constraint is a rule that restricts values to a column in a table.
What is referential integrity constraint?
Maintaining data integrity through a set of rules that restrict the
values of one or more columns of the tables based on the values of
primary key or unique key of the referenced table.
What is the usage of SAVEPOINTS?
SAVEPOINTS are used to subdivide a transaction into smaller parts. It enables rolling back part of a transaction. Maximum of five save points are allowed. What is ON DELETE CASCADE? When ON DELETE
CASCADE is specified Oracle maintains referential integrity by
automatically removing dependent foreign key values if a referenced
primary or unique key value is removed.
What are the data types allowed in a table? CHAR, VARCHAR2, NUMBER, DATE, RAW, LONG and LONG RAW.
What is difference between CHAR and VARCHAR2? What is the maximum SIZE allowed for each type? CHAR pads blank spaces to the maximum length.
VARCHAR2 does not pad blank spaces.
For CHAR the maximum length is 255 and 2000 for VARCHAR2.
How many LONG columns are allowed in a table? Is it possible to use LONG columns in WHERE clause or ORDER BY? Only one LONG column is allowed. It is not possible to use LONG column in WHERE or ORDER BY clause.
What are the pre-requisites to modify datatype of a column and to add a column with NOT NULL constraint? - To modify the datatype of a column the column must be empty.
- To add a column with NOT NULL constrain, the table must be empty.
Where the integrity constraints are stored in data dictionary? The integrity constraints are stored in USER_CONSTRAINTS.
How will you activate/deactivate integrity constraints? The integrity constraints can be enabled or disabled by ALTER TABLE ENABLE CONSTRAINT / DISABLE CONSTRAINT.
If unique key constraint on DATE column is created, will it validate the rows that are inserted with SYSDATE? It won't, Because SYSDATE format contains time attached with it.
What is a database link? Database link is a named path through which a remote database can be accessed.
How to access the current value and next value from a sequence? Is it
possible to access the current value in a session before accessing next
value? Sequence name CURRVAL, sequence name NEXTVAL. It is not
possible. Only if you access next value in the session, current value
can be accessed.
What is CYCLE/NO CYCLE in a Sequence?
CYCLE specifies that the sequence continue to generate values after
reaching either maximum or minimum value. After pan-ascending sequence
reaches its maximum value, it generates its minimum value. After a
descending sequence reaches its minimum, it generates its maximum.
NO CYCLE specifies that the sequence cannot generate more values after reaching its maximum or minimum value.
What are the advantages of VIEW? -
To protect some of the columns of a table from other users. - To hide complexity of a query. - To hide complexity of calculations. Can a view be updated/inserted/deleted? If Yes - under what conditions?
A View can be updated/deleted/inserted if it has only one base table if
the view is based on columns from one or more tables then insert,
update and delete is not possible.
If a view on a single base table is manipulated will the changes be reflected on the base table?
If changes are made to the tables and these tables are the base tables
of a view, then the changes will be reference on the view.
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. 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.
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.
Which three of the following are implicit cursor attributes? 1. %found
2. %too_many_rows
3. %notfound
4. %rowcount
5. %rowtype
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
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.
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.
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
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
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
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
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.
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
How to implement ISNUMERIC function in SQL *Plus ?
Method 1:
Select length (translate (trim (column_name),' +-.0123456789',' ')) from dual ;
Will give you a zero if it is a number or greater than zero if not numeric (actually gives the count of non numeric characters)
Method 2:
select instr(translate('wwww',
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'),'X')
FROM dual;
It returns 0 if it is a number, 1 if it is not.
How to Select last N records from a Table?
select * from (select rownum a, CLASS_CODE,CLASS_DESC from clm)
where a > ( select (max(rownum)-10) from clm)
Here N = 10
The following query has a Problem of performance in the execution of
the following query where the table ter.ter_master have 22231 records.
So the results are obtained after hours.
Cursor rem_master(brepno VARCHAR2) IS
select a.* from ter.ter_master a
where NOT a.repno in (select repno from ermast) and
(brepno = 'ALL' or a.repno > brepno)
Order by a.repno
What are steps required tuning this query to improve its performance?
-Have an index on TER_MASTER.REPNO and one on ERMAST.REPNO
-Be sure to get familiar with EXPLAIN PLAN. This can help you determine
the execution path that Oracle takes. If you are using Cost Based
Optimizer mode, then be sure that your statistics on TER_MASTER are
up-to-date. -Also, you can change your SQL to:
SELECT a.*
FROM ter.ter_master a
WHERE NOT EXISTS (SELECT b.repno FROM ermast b
WHERE a.repno=b.repno) AND
(a.brepno = 'ALL' or a.repno > a.brepno)
ORDER BY a.repno;
What is the difference between Truncate and Delete interms of Referential Integrity?
DELETE removes one or more records in a table, checking referential
Constraints (to see if there are dependent child records) and firing any
DELETE triggers. In the order you are deleting (child first then
parent) There will be no problems.
TRUNCATE removes ALL records in a
table. It does not execute any triggers. Also, it only checks for the
existence (and status) of another foreign key Pointing to the table. If
one exists and is enabled, then you will get The following error. This
is true even if you do the child tables first.
ORA-02266: unique/primary keys in table referenced by enabled foreign keys
You should disable the foreign key constraints in the child tables
before issuing the TRUNCATE command, then re-enable them afterwards.
What does preemptive in preemptive multitasking mean ?
Preemptive refers to the fact that each task is alloted fixed time
slots and at the end of that time slot the next task is started.
What does the OLTP stands for ?
OLTP stands for On Line Transaction Processing
What is the most important requirement for OLTP ?
OLTP requires real time response.
In a client server environment, what would be the major work that the client deals with ?
The client deals with the user interface part of the system.
Why is the most of the processing done at the sever ?
To reduce the network traffic and for application sharing and implementing business rules.
What does teh term upsizing refer to ?
Applications that have outgrown their environment are re-engineered to run in a larger environment. This is upsizing.
What does one do when one is rightsizing ?
With rightsizing, one would move applications to the most appropriate server platforms.
What does the term downsizing refer to ?
A host based application is re-engineered to run in smaller or LAN based environment.
What is event trigger ?
An event trigger, a segment of code which is associated with each event and is fired when the event occurs.
Why do stored procedures reduce network traffic ?
When a stored procedure is called, only the procedure call is sent to
the server and not the statements that the procedure contains.
What are the types of processes that a server runs ?
Foreground process and Background process.
What is a event handler ?
An event handler is a routine that is written to respond to a particular event.
What is an integrity constraint ?
An integrity constraint allows the definition of certain restrictions,
at the table level, on the data that is entered into a table.
What are the various uses of database triggers ?
Database triggers can be used to enforce business rules, to maintain derived values and perform value-based auditing.
What is a transaction ?
A transaction is a set of operations that begin when the first DML is
issued and end when a commit or rollback is issued. BEGIN
COMMIT/ROLLBACK are the boundries of a transaction.
Why are the integrity constraints preferred to database triggers ?
Because it is easier to define an integrity constraint than a database trigger.
Why is it better to use an integrity constraint to validate data in a table than to use a stored procedure ?
Because an integrity constraint is automatically checked while data is
inserted into a table. A stored has to be specifically invoked.
What are the three components of a client server model ?
A Client,
A Server and
A Network/Communication software.
What are the advantages of client/server model ?
Flexibility of the system, scalability, cost saving, centralized
control and implementation of business rules, increase of developers
productivity, portability, improved network and resource utilization.
What are the disadvantages of the client/server model ?
Heterogeneity of the system results in reduced reliabi
lity. May not be suitable for all applications. Managing and tuning networks becomes difficult.
What are the different topologies available for network ?
Star,
Bus,
Ring.
What is the first work of Client process ?
A client process at first establishes connection with the Server.
What are the responsibilities of a Server ?
1. Manage resources optimally across multiple clients.
2. Controlling database access and security.
3. Protecting the database and recovering it from crashes.
4. Enforcing integrity rules globally.
In a Client/Server context, what does API (Application Programming Interface) refer to ?
An API, in a Client/Server context, is a specification of a set of
functions for communication between the client and the server.
Give some examples of standard API??
Open Database Connectivity (ODBC),
Integrated Database Application Programming Interface (IDAPI),
XOpen
SQL/CLI
What is the main advantage of developing an application using an API ?
The application can be connected to any back end server that is supported by the API.
What is the main disadvantage of developing an application using an API ?
The application cannot use any special features of the backend server.
Why is an event driven program referred to a passive program ?
Because an event driven program is always waiting for something to happen before processing.
What are the four types of events ?
1. System Events.
2. Control Events
3. User Events
4. Other Events.
What is the difference between file server and a database server ?
A file server just transfers all the data requested by all its client
and the client processes the data while a database server runs the query
and sends only the query output.
What is inheritance ?
Inheritance is a method by which properties and methods of an existing
object are automatically passed to any object derived from it.
What are the two components of ODBC ?
1. An ODBC manager/administrator and
2. ODBC driver.
What is the function of a ODBC manager ?
The ODBC Manager manages all the data sources that exists in the system.
What is the function of a ODBC Driver ?
The ODBC Driver allows the developer to talk to the back end database.
What description of a data source is required for ODBC ?
The name of the DBMS, the location of the source and the database dependent information.
How is a connection established by ODBC ?
ODBC uses the description of the datasource available in the ODBC.INI
file to load the required drivers to access that particular back end
database.
SQL/ SQL Plus
1. How can variables be passed to a SQL routine?
By use of the & symbol. For passing in variables the numbers 1-8
can be used (&1, &2,...,& 8) to pass the values after the
command into the SQLPLUS session. To be prompted for a specific
variable, place the ampersanded variable in the code itself:
"select
* from dba_tables where owner=&owner_name;" . Use of double
ampersands tells SQLPLUS to resubstitute the value for each subsequent
use of the variable, a single ampersand will cause a reprompt for the
value unless an ACCEPT statement is used to get the value from the user.
2. You want to include a carriage return/linefeed in your output from a SQL script, how can you do this?
The best method is to use the CHR() function (CHR(10) is a
return/linefeed) and the concatenation function "||". Another method,
although it is hard to document and isn?t always portable is to use the
return/linefeed as a part of a quoted string.
3. How can you call a PL/SQL procedure from SQL?
By use of the EXECUTE (short form EXEC) command.
4. How do you execute a host operating system command from within SQL?
By use of the exclamation point "!" (in UNIX and some other OS) or the HOST (HO) command.
5. You want to use SQL to build SQL, what is this called and give an example
This is called dynamic SQL. An example would be:
set lines 90 pages 0 termout off feedback off verify off
spool drop_all.sql
select ?drop user ?||username||? cascade;? from dba_users
where username not in ("SYS?,?SYSTEM?);
spool off
Essentially you are looking to see that they know to include a command
(in this case DROP USER...CASCADE;) and that you need to concatenate
using the ?||? the values selected from the database.
6. What SQLPlus command is used to format output from a select?
This is best done with the COLUMN command.
7. You want to group the following set of select returns, what can you group on?
Max(sum_of_cost), min(sum_of_cost), count(item_no), item_no
The only column that can be grouped on is the "item_no" column, the rest have aggregate functions associated with them.
8. What special Oracle feature allows you to specify how the cost based system treats a SQL statement?
The COST based system allows the use of HINTs to control the optimizer
path selection. If they can give some example hints such as FIRST ROWS,
ALL ROWS, USING INDEX, STAR, even better.
9. You want to
determine the location of identical rows in a table before attempting to
place a unique index on the table, how can this be done?
Oracle tables always have one guaranteed unique column, the rowid
column. If you use a min/max function against your rowid and then select
against the proposed primary key you can squeeze out the rowids of the
duplicate rows pretty quick. For example:
select rowid from emp e
where e.rowid > (select min(x.rowid)
from emp x
where x.emp_no = e.emp_no);
In the situation where multiple columns make up the proposed key, they must all be used in the where clause.
10. What is a Cartesian product?
A Cartesian product is the result of an unrestricted join of two or
more tables. The result set of a three table Cartesian product will have
x * y * z number of rows where x, y, z correspond to the number of rows
in each table involved in the join.
11. You are joining a
local and a remote table, the network manager complains about the
traffic involved, how can you reduce the network traffic?
Push
the processing of the remote data to the remote instance by using a view
to pre-select the information for the join. This will result in only
the data required for the join being sent across.
12. What is the default ordering of an ORDER BY clause in a SELECT statement?
Ascending
13. What is tkprof and how is it used?
The tkprof tool is a tuning tool used to determine cpu and execution
times for SQL statements. You use it by first setting timed_statistics
to true in the initialization file and then turning on tracing for
either the entire database via the sql_trace parameter or for the
session using the ALTER SESSION command. Once the trace file is
generated you run the tkprof tool against the trace file and then look
at the output from the tkprof tool. This can also be used to generate
explain plan output.
14. What is explain plan and how is it used?
The EXPLAIN PLAN command is a tool to tune SQL statements. To use it
you must have an explain_table generated in the user you are running the
explain plan for. This is created using the utlxplan.sql script. Once
the explain plan table exists you run the explain plan command giving as
its argument the SQL statement to be explained. The explain_plan table
is then queried to see the execution plan of the statement. Explain
plans can also be run using tkprof.
How do you set the number of lines on a page of output? The width?
The SET command in SQLPLUS is used to control the number of lines
generated per page and the width of those lines, for example SET
PAGESIZE 60 LINESIZE 80 will generate reports that are 60 lines long
with a line width of 80 characters. The PAGESIZE and LINESIZE options
can be shortened to PAGES and LINES.