Dear my readers, here i collect for you, all questions which can be asked in interview,
i am glad with you visit, prepared by Yasser
(The subquery in a correlated subquery is revaluated for every row of the table or view named in the outer query.)
14. What is difference between SUBSTR and INSTR
10. What is use of a cursor variable? How it is defined.
21. What are ORACLE PRECOMPILERS.
23. Difference between database triggers and form triggers.
2. If you see contention for library caches how can you fix it
3. If you see statistics that deal with "undo" what are they really talking about
4. If a tablespace has a default pctincrease of zero what will this cause (in relationship to the smon process)
5. If a tablespace shows excessive fragmentation what are some methods to defragment the tablespace? (7.1,7.2 and 7.3 only)
6. How can you tell if a tablespace has excessive fragmentation
7. You see the following on a status report: redo log space requests 23 redo log space wait time 0 Is this something to worry about? What if redo log space wait time is high? How can you fix this Since the wait time is zero, no. If the wait time was high it might indicate a need for more or larger redo logs.
8. What can cause a high value for recursive calls? How can this be fixed
9. If you see a pin hit ratio of less than 0.8 in the estat library cache report is this a problem? If so, how do you fix it
10. If you see the value for reloads is high in the estat library cache report is this a matter for concern
11. You look at the dba_rollback_segs view and see that there is a large number of shrinks and they are of relatively small size, is this a problem? How can it be fixed if it is a problem
12. You look at the dba_rollback_segs view and see that you have a large number of wraps is this a problem
2. What OS user should be used for the first part of an Oracle installation (on UNIX)
3. When should the default values for Oracle initialization parameters be used as is
4. How many control files should you have? Where should they be located
5. How many redo logs should you have and how should they be configured for maximum recoverability
6. You have a simple application with no "hot" tables (i.e. uniform IO and access requirements). How many disks should you have assuming standard layout for SYSTEM, USER, TEMP and ROLLBACK tablespaces
7. Describe third normal form
8. Is the following statement true or false:
9. What is an ERD
10. Why are recursive relationships bad? How do you resolve them
11. What does a hard one-to-one relationship mean (one where the relationship on both ends is "must")
12. How should a many-to-many relationship be handled
13. What is an artificial (derived) primary key? When should an artificial (or derived) primary key be used
2. How can you determine if an Oracle instance is up from the operating system level
3. Users from the PC clients are getting messages indicating : ORA-06114: (Cnct err, can't get err txt. See Servr Msgs & Codes Manual)
What could the problem be The instance name is probably incorrect in their connection string.
4. Users from the PC clients are getting the following error stack: ERROR: ORA-01034: ORACLE not available ORA-07318: smsget: open error when opening sgadef.dbf file. HP-UX Error: 2: No such file or directory
What is the probable cause The Oracle instance is shutdown that they are trying to access, restart the instance.
5. How can you determine if the SQLNET process is running for SQLNET V1? How about V2
6. What file will give you Oracle instance status information? Where is it located
7. Users aren?t being allowed on the system. The following message is received: ORA-00257 archiver is stuck. Connect internal only, until freed What is the problem The archive destination is probably full, backup the archive logs and remove them and the archiver will re-start.
8. Where would you look to find out if a redo log was corrupted assuming you are using Oracle mirrored redo logs
9. You attempt to add a datafile and get: ORA-01118: cannot add anymore datafiles: limit of 40 exceeded What is the problem and how can you fix it When the database was created the db_files parameter in the initialization file was set to 40. You can shutdown and reset this to a higher value, up to the value of MAX_DATAFILES as specified at database creation. If the MAX_DATAFILES is set to low, you will have to rebuild the control file to increase it before proceeding.
10. You look at your fragmentation report and see that smon hasn?t coalesced any of you tablespaces, even though you know several have large chunks of contiguous free extents. What is the problem
Check the dba_tablespaces view for the value of pct_increase for the tablespaces. If pct_increase is zero, smon will not coalesce their free space.
11. Your users get the following error: ORA-00055 maximum number of DML locks exceeded What is the problem and how do you fix it The number of DML Locks is set by the initialization parameter DML_LOCKS. If this value is set to low (which it is by default) you will get this error. Increase the value of DML_LOCKS. If you are sure that this is just a temporary problem, you can have them wait and then try again later and the error should clear.
12. You get a call from you backup DBA while you are on vacation. He has corrupted all of the control files while playing with the ALTER DATABASE BACKUP CONTROLFILE command. What do you do
i am glad with you visit, prepared by Yasser
SQL – PL/SQL I.V. questions
1-
What is a stored procedure?
A stored procedure is a sequence of statements that perform specified
function.
Named pl/sql block which perform an action. It is stored in db. as
schema object.
2-
What is SQL * Loader?
It is product to load data from external file to database. Two types of
input must be provide to load: the data itself and control file which has the
name and format for data file.
3-
What are the 2 parts of package?
Package specification
4-
What are date functions?
Add_months - last_day – next_day
– months_between & sysdate.
5-
What is NVL?
Convert a null value to a non-null value.
6- what is intersect? It is a product of list
the matching between 2 tables.
7- how to know the last executed procedure?
select
timestamp,owner,obj_name from dba_audit_trail;
8- what is minus? Minus is opposite of
intersect, it list the un matches row from 2 tables.
9- what are % type and %rowtype? And advantage
of use
fname
employees.first_name%TYPE; for provide data type for column
emp_rec1 employees%ROWTYPE; for provide data type for all row of employees table
advantage if the column of database change the variable will also change.
10- what will be the output of this code?
Cursor c is
Select * from emp for update;
Z c1%rowtype;
Begin
Open c1 fetch c1 into z;
End;
By declaring this cursor we can update table emp through z, and by issuing coming or rollback cursor will be closed automatically.
10- What is commit?
make permanent all changes performed in the transaction
Until you commit a
transaction: You can roll back (undo) any changes made during the transaction
with the
ROLLBACK
statement.
11- Give the structure of
Function.
Create or replace function
function_name (arg1 in number) return number
Is
Variables
Begin
End;
12- If the application
running very slowly at what point u need to go in order to increase the
performance?
We need to check the sql
statement blocks, because for every sql statement execution transfer to sql
engine and come back to pl engine that process takes more time.
13- What are the advantages
of stored procedures?
Extensibility, Modularity,
Reusability, Maintainability, one time compilation.
14 what is the difference
between stored procedure and application procedure?
stored procedure are subprograms stored in the
database, and can be called & executed many time, but application procedure
used from particular application.
15- What is cursor and why
cursor is required?
The
Oracle server uses work areas, called private SQL areas, to execute SQL
statements and to store processing information. You can use explicit cursors to
name a private SQL area and access its stored information.
Implicit |
Implicit
cursors are declared by PL/SQL implicitly for all DML and PL/SQL SELECT statements.
|
Explicit
|
For
queries that return more than one row, explicit cursors are declared and
managed by the programmer and manipulated through specific statements
|
16- what to use instead of cursor and in what
cases?
Just use subquery in for clause for example:
For emprec in (select * from emp)
Loop
Dbms_output.put_line(emprec.empno);
End loop;
No exit statement needed just implicit open,
fetch close occur.
17- what is pl/sql?
It is a product of Oracle, it is procedure
language extension of sql.
18- How to disable all triggers of table at one
time?
Alter table table_name disable all trigger
16. How do you prevent Oracle from giving you informational messages
during and after a SQL statement execution
The SET options FEEDBACK and VERIFY can be set to OFF.
17. How do you generate file output from SQL
By use of the SPOOL comm
1. What is a CO-RELATED SUBQUERY
A CO-RELATED SUBQUERY is one that has a correlation name as table or
view designator in the FROM clause of the outer query and the same correlation
name as a qualifier of a search condition in the WHERE clause of the subquery.
eg
SELECT field1 from table1 X
WHERE field2>(select avg(field2) from table1 Y
where
field1=X.field1);
(The subquery in a correlated subquery is revaluated for every row of the table or view named in the outer query.)
2. What are various joins used while writing SUBQUERIES
Self join-Its a join foreign key of a table references the same
table.
Outer Join--Its a join condition used where One can query all the
rows of one of the tables in the join condition even though they don't satisfy
the join condition.
Equi-join--Its a join condition that retrieves rows from one or more
tables in which one or more columns in one table are equal to one or more
columns in the second table.
3. What are various constraints used in SQL
NULL NOT NULL CHECK DEFAULT
4. What are different Oracle database objects
TABLES VIEWS INDEXES SYNONYMS SEQUENCES TABLESPACES etc
5. What is difference between Rename and Alias
Rename is a permanent name given to a table or column whereas Alias
is a temporary name given to a table or column which do not exist once the SQL
statement is executed.
6. What is a view
A view is stored procedure based on one or more tables, its a
virtual table.
7. What are various privileges that a user can grant to another user
SELECT CONNECT RESOURCE
8. What is difference between UNIQUE and PRIMARY KEY constraints
A table can have only one PRIMARY KEY whereas there can be any
number of UNIQUE keys. The columns that compose PK are automatically define NOT
NULL, whereas a column that compose a UNIQUE is not automatically defined to be
mandatory must also specify the column is NOT NULL.
9. Can a primary key contain more than one columns
Yes
10. How you will avoid duplicating records in a query
By using DISTINCT
11. What is difference between SQL and SQL*PLUS
SQL*PLUS is a command line tool where as SQL and PL/SQL language
interface and reporting tool. Its a command line tool that allows user to type
SQL commands to be executed directly against an Oracle database. SQL is a
language used to query the relational database(DML,DCL,DDL). SQL*PLUS commands
are used to format query result, Set options, Edit SQL commands and PL/SQL.
12. Which datatype is used for storing graphics and images
LONG RAW data type is used for storing BLOB's (binary large objects).
13. How will you delete duplicating rows from a base table
DELETE FROM table_name A WHERE rowid>(SELECT min(rowid) from
table_name B where B.table_no=A.table_no);
CREATE TABLE new_table AS SELECT DISTINCT * FROM old_table;
DROP old_table RENAME new_table TO old_table DELETE FROM table_name
A WHERE rowid NOT IN (SELECT MAX(ROWID) FROM table_name GROUP BY column_name)
14. What is difference between SUBSTR and INSTR
SUBSTR returns a specified portion of a string eg SUBSTR('BCDEF',4)
output BCDE INSTR provides character position in which a pattern is found in a
string.
eg INSTR('ABC-DC-F','-',2) output 7 (2nd occurence of '-')
15. There is a string '120000 12 0 .125' ,how you will find the
position of the decimal place
INSTR('120000 12 0 .125','.',1) output 13
16. There is a '%' sign in one field of a column. What will be the
query to find it.
'\' Should be used before '%'.
17. When you use WHERE clause and when you use HAVING clause
HAVING clause is used when you want to specify a condition for a
group function and it is written after GROUP BY clause The WHERE clause is used
when you want to specify a condition for columns, single row functions except
group functions and it is written before GROUP BY clause if it is used.
18. Which is more faster - IN or EXISTS
EXISTS is more faster than IN because EXISTS returns a Boolean value
whereas IN returns a value.
Appropriate answer will be....
Result of the subquery is small Then "IN" is typicaly more
appropriate. and Result of the subquery is big/large/long Then
"EXIST" is more appropriate.
19. What is a OUTER JOIN
Outer Join--Its a join condition used where you can query all the
rows of one of the tables in the join condition even though they dont satisfy
the join condition.
20. How you will avoid your query from using indexes
SELECT * FROM emp Where emp_no+' '=12345;
i.e you have to concatenate the column name with space within codes
in the where condition.
SELECT /*+ FULL(a) */ ename, emp_no from emp where emp_no=1234;
i.e using HINTS
Oracle Interview Questions
1. What is a pseudo column. Give some examples
It is a column that is not an actual column in the table.
eg USER, UID, SYSDATE, ROWNUM, ROWID, NULL, AND LEVEL.
Suppose customer table is there having different columns like
customer no, payments.What will be the query to select top three max payments.
For top N queries, see http://www.orafaq.com/forum/mv/msg/160920/472554/102589/#msg_472554
post
2. What is the purpose of a cluster.
Oracle does not allow a user to specifically locate tables, since
that is a part of the function of the RDBMS. However, for the purpose of
increasing performance, oracle allows a developer to create a CLUSTER. A
CLUSTER provides a means for storing data from different tables together for
faster retrieval than if the table placement were left to the RDBMS.
3. What is a cursor.
Oracle uses work area to execute SQL statements and store processing
information PL/SQL construct called a cursor lets you name a work area and
access its stored information A cursor is a mechanism used to fetch more than
one row in a Pl/SQl block.
4. Difference between an implicit & an explicit cursor.
PL/SQL declares a cursor implicitly for all SQL data manipulation
statements, including quries that return only one row. However,queries that
return more than one row you must declare an explicit cursor or use a cursor
FOR loop.
Explicit cursor is a cursor in which the cursor name is explicitly
assigned to a SELECT statement via the CURSOR...IS statement. An implicit
cursor is used for all SQL statements Declare, Open, Fetch, Close. An explicit
cursors are used to process multirow SELECT statements An implicit cursor is
used to process INSERT, UPDATE, DELETE and single row SELECT. .INTO statements.
5. What are cursor attributes
%ROWCOUNT %NOTFOUND %FOUND %ISOPEN
6. What is a cursor for loop.
Cursor For Loop is a loop where oracle implicitly declares a loop
variable, the loop index that of the same record type as the cursor's record.
7. Difference between NO DATA FOUND and %NOTFOUND
NO DATA FOUND is an exception raised only for the SELECT....INTO
statements when the where clause of the querydoes not match any rows. When the
where clause of the explicit cursor does not match any rows the %NOTFOUND
attribute is set to TRUE instead.
8. What a SELECT FOR UPDATE cursor represent.
SELECT......FROM......FOR......UPDATE[OF column-reference][NOWAIT]
The processing done in a fetch loop modifies the rows that have been retrieved
by the cursor. A convenient way of modifying the rows is done by a method with
two parts: the FOR UPDATE clause in the cursor declaration, WHERE CURRENT OF
CLAUSE in an UPDATE or declaration statement.
9. What 'WHERE CURRENT OF ' clause does in a cursor.
LOOP
SELECT num_credits INTO v_numcredits FROM classes
WHERE dept=123 and course=101;
UPDATE students
SET current_credits=current_credits+v_numcredits
WHERE CURRENT OF X;
END LOOP
COMMIT;
END;
10. What is use of a cursor variable? How it is defined.
A cursor variable is associated with different statements at run
time, which can hold different values at run time. Static cursors can only be
associated with one run time query. A cursor variable is reference type(like a
pointer in C). Declaring a cursor variable: TYPE type_name IS REF CURSOR RETURN
return_type type_name is the name of the reference type,return_type is a record
type indicating the types of the select list that will eventually be returned
by the cursor variable.
11. What should be the return type for a cursor variable.Can we use
a scalar data type as return type.
The return type for a cursor must be a record type.It can be
declared explicitly as a user-defined or %ROWTYPE can be used. eg TYPE
t_studentsref IS REF CURSOR RETURN students%ROWTYPE
12. How you open and close a cursor variable.Why it is required.
OPEN cursor variable FOR SELECT...Statement CLOSE cursor variable In
order to associate a cursor variable with a particular SELECT statement OPEN
syntax is used.In order to free the resources used for the query CLOSE
statement is used.
13. How you were passing cursor variables in PL/SQL 2.2.
In PL/SQL 2.2 cursor variables cannot be declared in a package.This
is because the storage for a cursor variable has to be allocated using Pro*C or
OCI with version 2.2,the only means of passing a cursor variable to a PL/SQL
block is via bind variable or a procedure parameter.
14. Can cursor variables be stored in PL/SQL tables.If yes how.If
not why.
No, a cursor variable points a row which cannot be stored in a
two-dimensional PL/SQL table.
15. Difference between procedure and function.
Functions are named PL/SQL blocks that return a value and can be
called with arguments procedure a named block that can be called with
parameter. A procedure all is a PL/SQL statement by itself, while a Function
call is called as part of an expression.
16. What are different modes of parameters used in functions and
procedures.
IN OUT INOUT
17. What is difference between a formal and an actual parameter
The variables declared in the procedure and which are passed, as
arguments are called actual, the parameters in the procedure declaration.
Actual parameters contain the values that are passed to a procedure and receive
results. Formal parameters are the placeholders for the values of actual
parameters
18. Can the default values be assigned to actual parameters.
Yes
19. Can a function take OUT parameters.If not why.
Yes. A function return a value, but can also have one or more OUT
parameters. it is best practice, however to use a procedure rather than a
function if you have multiple values to return.
20. What is syntax for dropping a procedure and a function .Are
these operations possible.
Drop Procedure procedure_name
Drop Function function_name
21. What are ORACLE PRECOMPILERS.
Using ORACLE PRECOMPILERS ,SQL statements and PL/SQL blocks can be
contained inside 3GL programs written in C,C++,COBOL,PASCAL, FORTRAN,PL/1 AND
ADA. The Precompilers are known as Pro*C,Pro*Cobol,... This form of PL/SQL is
known as embedded pl/sql,the language in which pl/sql is embedded is known as
the host language. The prcompiler translates the embedded SQL and pl/sql
ststements into calls to the precompiler runtime library.The output must be
compiled and linked with this library to creater an executable.
22. What is OCI. What are its uses.
Oracle Call Interface is a method of accesing database from a 3GL
program. Uses--No precompiler is required,PL/SQL blocks are executed like other
DML statements.
The OCI library provides
-functions to parse SQL statemets
-bind input variables
-bind output variables
-execute statements
-fetch the results
23. Difference between database triggers and form triggers.
a) Data base trigger(DBT) fires when a DML operation is performed on
a data base table.Form trigger(FT) Fires when user presses a key or navigates
between fields on the screen b) Can be row level or statement level No
distinction between row level and statement level. c) Can manipulate data
stored in Oracle tables via SQL Can manipulate data in Oracle tables as well as
variables in forms. d) Can be fired from any session executing the triggering
DML statements. Can be fired only from the form that define the trigger. e) Can
cause other database triggers to fire.Can cause other database triggers to
fire,but not other form triggers.
24. What is an UTL_FILE.What are different procedures and functions
associated
with it. UTL_FILE is a package that adds the ability to read and
write to operating system files Procedures associated with it are FCLOSE,
FCLOSE_ALL and 5 procedures to output data to a file PUT, PUT_LINE, NEW_LINE,
PUTF, FFLUSH.PUT, FFLUSH.PUT_LINE,FFLUSH.NEW_LINE. Functions associated with it
are FOPEN, ISOPEN.
25. Can you use a commit statement within a database trigger.
No
26. What is the maximum buffer size that can be specified using the
DBMS_OUTPUT.ENABLE function?
1,000,000
Oracle Interview Questions
1. When looking at the estat events report you see that you are
getting busy buffer waits. Is this bad? How can you find what is causing it
Buffer busy waits could indicate contention in redo, rollback or
data blocks. You need to check the v$waitstat view to see what areas are
causing the problem. The value of the "count" column tells where the
problem is, the "class" column tells you with what. UNDO is rollback
segments, DATA is data base buffers.
2. If you see contention for library caches how can you fix it
Increase the size of the shared pool.
3. If you see statistics that deal with "undo" what are they really talking about
Rollback segments and associated structures.
4. If a tablespace has a default pctincrease of zero what will this cause (in relationship to the smon process)
The SMON process won?t automatically coalesce its free space
fragments.
5. If a tablespace shows excessive fragmentation what are some methods to defragment the tablespace? (7.1,7.2 and 7.3 only)
In Oracle 7.0 to 7.2 The use of the 'alter session set events
'immediate trace name coalesce level ts#';? command is the easiest way to
defragment contiguous free space fragmentation. The ts# parameter corresponds
to the ts# value found in the ts$ SYS table. In version 7.3 the ?alter
tablespace coalesce;? is best. If the free space isn?t contiguous then export,
drop and import of the tablespace contents may be the only way to reclaim
non-contiguous free space.
6. How can you tell if a tablespace has excessive fragmentation
If a select against the dba_free_space table shows that the count of
a tablespaces extents is greater than the count of its data files, then it is
fragmented.
7. You see the following on a status report: redo log space requests 23 redo log space wait time 0 Is this something to worry about? What if redo log space wait time is high? How can you fix this Since the wait time is zero, no. If the wait time was high it might indicate a need for more or larger redo logs.
8. What can cause a high value for recursive calls? How can this be fixed
A high value for recursive calls is cause by improper cursor usage,
excessive dynamic space management actions, and or excessive statement
re-parses. You need to determine the cause and correct it By either relinking
applications to hold cursors, use proper space management techniques (proper
storage and sizing) or ensure repeat queries are placed in packages for proper
reuse.
9. If you see a pin hit ratio of less than 0.8 in the estat library cache report is this a problem? If so, how do you fix it
This indicate that the shared pool may be too small. Increase the
shared pool size.
10. If you see the value for reloads is high in the estat library cache report is this a matter for concern
Yes, you should strive for zero reloads if possible. If you see
excessive reloads then increase the size of the shared pool.
11. You look at the dba_rollback_segs view and see that there is a large number of shrinks and they are of relatively small size, is this a problem? How can it be fixed if it is a problem
A large number of small shrinks indicates a need to increase the
size of the rollback segment extents. Ideally you should have no shrinks or a
small number of large shrinks. To fix this just increase the size of the
extents and adjust optimal accordingly.
12. You look at the dba_rollback_segs view and see that you have a large number of wraps is this a problem
A large number of wraps indicates that your extent size for your
rollback segments are probably too small. Increase the size of your extents to
reduce the number of wraps. You can look at the average transaction size in the
same view to get the information on transaction size.
Oracle Interview Questions
1. You have just started a new instance with a large SGA on a busy
existing server. Performance is terrible, what should you check for
The first thing to check with a large SGA is that it isn?t being
swapped out.
2. What OS user should be used for the first part of an Oracle installation (on UNIX)
You must use root first.
3. When should the default values for Oracle initialization parameters be used as is
Never
4. How many control files should you have? Where should they be located
At least 2 on separate disk spindles. Be sure they say on separate
disks, not just file systems.
5. How many redo logs should you have and how should they be configured for maximum recoverability
You should have at least three groups of two redo logs with the two
logs each on a separate disk spindle (mirrored by Oracle). The redo logs should
not be on raw devices on UNIX if it can be avoided.
6. You have a simple application with no "hot" tables (i.e. uniform IO and access requirements). How many disks should you have assuming standard layout for SYSTEM, USER, TEMP and ROLLBACK tablespaces
At least 7, see disk configuration answer above.
7. Describe third normal form
Something like: In third normal form all attributes in an entity are
related to the primary key and only to the primary key
8. Is the following statement true or false:
"All relational databases must be in third normal form"
False. While 3NF is good for logical design most databases, if they have more
than just a few tables, will not perform well using full 3NF. Usually some
entities will be denormalized in the logical to physical transfer process.
9. What is an ERD
An ERD is an Entity-Relationship-Diagram. It is used to show the
entities and relationships for a database logical model.
10. Why are recursive relationships bad? How do you resolve them
A recursive relationship (one where a table relates to itself) is
bad when it is a hard relationship (i.e. neither side is a "may" both
are "must") as this can result in it not being possible to put in a
top or perhaps a bottom of the table (for example in the EMPLOYEE table you
couldn?t put in the PRESIDENT of the company because he has no boss, or the
junior janitor because he has no subordinates). These type of relationships are
usually resolved by adding a small intersection entity.
11. What does a hard one-to-one relationship mean (one where the relationship on both ends is "must")
Expected answer: This means the two entities should probably be made
into one entity.
12. How should a many-to-many relationship be handled
By adding an intersection entity table
13. What is an artificial (derived) primary key? When should an artificial (or derived) primary key be used
A derived key comes from a sequence. Usually it is used when a
concatenated key becomes too cumbersome to use as a foreign key.
Oracle Interview Questions
1. When should you consider denormalization
Whenever performance analysis indicates it would be beneficial to do
so without compromising data integrity.
2. How can you determine if an Oracle instance is up from the operating system level
There are several base Oracle processes that will be running on
multi-user operating systems, these will be smon, pmon, dbwr and lgwr. Any
answer that has them using their operating system process showing feature to
check for these is acceptable. For example, on UNIX a ps -ef|grep dbwr will
show what instances are up.
3. Users from the PC clients are getting messages indicating : ORA-06114: (Cnct err, can't get err txt. See Servr Msgs & Codes Manual)
What could the problem be The instance name is probably incorrect in their connection string.
4. Users from the PC clients are getting the following error stack: ERROR: ORA-01034: ORACLE not available ORA-07318: smsget: open error when opening sgadef.dbf file. HP-UX Error: 2: No such file or directory
What is the probable cause The Oracle instance is shutdown that they are trying to access, restart the instance.
5. How can you determine if the SQLNET process is running for SQLNET V1? How about V2
For SQLNET V1 check for the existence of the orasrv process. You can
use the command "tcpctl status" to get a full status of the V1 TCPIP
server, other protocols have similar command formats. For SQLNET V2 check for
the presence of the LISTENER process(s) or you can issue the command
"lsnrctl status".
6. What file will give you Oracle instance status information? Where is it located
The alert.ora log. It is located in the directory specified by the
background_dump_dest parameter in the v$parameter table.
7. Users aren?t being allowed on the system. The following message is received: ORA-00257 archiver is stuck. Connect internal only, until freed What is the problem The archive destination is probably full, backup the archive logs and remove them and the archiver will re-start.
8. Where would you look to find out if a redo log was corrupted assuming you are using Oracle mirrored redo logs
There is no message that comes to the SQLDBA or SRVMGR programs
during startup in this situation, you must check the alert.log file for this
information.
9. You attempt to add a datafile and get: ORA-01118: cannot add anymore datafiles: limit of 40 exceeded What is the problem and how can you fix it When the database was created the db_files parameter in the initialization file was set to 40. You can shutdown and reset this to a higher value, up to the value of MAX_DATAFILES as specified at database creation. If the MAX_DATAFILES is set to low, you will have to rebuild the control file to increase it before proceeding.
10. You look at your fragmentation report and see that smon hasn?t coalesced any of you tablespaces, even though you know several have large chunks of contiguous free extents. What is the problem
Check the dba_tablespaces view for the value of pct_increase for the tablespaces. If pct_increase is zero, smon will not coalesce their free space.
11. Your users get the following error: ORA-00055 maximum number of DML locks exceeded What is the problem and how do you fix it The number of DML Locks is set by the initialization parameter DML_LOCKS. If this value is set to low (which it is by default) you will get this error. Increase the value of DML_LOCKS. If you are sure that this is just a temporary problem, you can have them wait and then try again later and the error should clear.
12. You get a call from you backup DBA while you are on vacation. He has corrupted all of the control files while playing with the ALTER DATABASE BACKUP CONTROLFILE command. What do you do
As long as all datafiles are safe and he was successful with the
BACKUP controlfile command you can do the following: CONNECT INTERNAL STARTUP
MOUNT (Take any read-only tablespaces offline before next step ALTER DATABASE
DATAFILE .... OFFLINE;) RECOVER DATABASE USING BACKUP CONTROLFILE ALTER
DATABASE OPEN RESETLOGS; (bring read-only tablespaces back online) Shutdown and
backup the system, then restart If they have a recent output file from the
ALTER DATABASE BACKUP CONTROL FILE TO TRACE; command, they can use that to
recover as well. If no backup of the control file is available then the
following will be required: CONNECT INTERNAL STARTUP NOMOUNT CREATE CONTROL
FILE .....; However, they will need to know all of the datafiles, logfiles, and
settings for MAXLOGFILES, MAXLOGMEMBERS, MAXLOGHISTORY, MAXDATAFILES for the
database to use the command.
ORACLE SQL PL/SQL Interview Questions
What are the various types of queries ?
Answer: The types of queries are: Normal Queries Sub Queries Co-related queries Nested queries Compound queries
What is a transaction ?
Answer: 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 ?
Answer: 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 ?
Answer: Public synonyms
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.
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.
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'
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;
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 name=myscript.sql
oname=xxxx.yyy
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;
What are the various types of Exceptions ?
Answer: User defined and Predefined Exceptions.
Can we define exceptions twice in same block ?
Answer: No.
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.
Can you have two functions with the same name in a PL/SQL block ?
Answer: Yes.
Can you have two stored functions with the same name ?
Answer: Yes.
Can you call a stored function in the constraint of a table ?
Answer: No.
What are the various types of parameter modes in a procedure ?
Answer: IN, OUT AND INOUT.
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.
Can functions be overloaded ? Answer: Yes.
Overloading is the idea that the functionality of a PL/SQL
stored procedure of function can be changed based on the input datatype
Polymorphism was a spin off of the
PL/SQL concept called “overloading” Overloading a stored procedure or
function refers to the ability of a programming method to perform more than
one kind of operation depending upon the context in which the method is
used.
For a simple example of
overloading, you can write a PL/SQL function that does one thing when a
numeric argument is passed to the procedure and another thing when a
character string is passed as an argument.
Can 2 functions have same name & input parameters but differ
only by return datatype Answer:
No.
What are the constructs of a procedure, function or a package ?
variables and constants, cursors, exceptions
Why Create or Replace and not Drop and recreate procedures ? Answer:
to preserve the object grants. Grant cannot be dropped.
Can you pass parameters in packages? How? You can pass
parameters to procedures or functions in a package.
What are the parts of
a database trigger? A trigger event or statement - A trigger restriction - A trigger action
What are the various types of database triggers? There are
12 types of triggers, they are combination of : Insert, Delete and Update
Triggers.
Before and After Triggers. Row and Statement Triggers.
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.
What is the maximum no.of statements that can be specified in a
trigger statement ? Answer: One.
Can views be specified in a trigger statement ? Exactly one table
or view can be specified in the triggering statement. If the
INSTEAD OF option is used, then the triggering statement must
specify a view; conversely, if a view is specified in the triggering
statement, then only the INSTEAD
OF option can be used.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
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
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
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.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
What are mutating triggers ? Answer: A trigger giving a SELECT on the table on which the trigger is written.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
What are constraining triggers ? Answer: A trigger giving an Insert/Updat e on a table having referential integrity constraint on the triggering table.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Describe Oracle database's physical and logical structure ?
Answer:
Physical : Data files, Redo Log files, Control file.
Logical : Tables, Views, Tablespaces, etc.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Can you increase the size of a tablespace ? How ?
Answer: Yes, by adding datafiles to it.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Can you increase the size of datafiles ? How ? Answer: No (for Oracle 7.0) Yes (for Oracle 7.3 by using the Resize clause )
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
What is the use of Control files ? Answer: Contains pointers to locations of various data files, redo log files, etc.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
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
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
What are the advantages of clusters ? Answer: Access time reduced for joins.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
What are the disadvantages of clusters ? Answer: The time for Insert increases.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Can Long/Long RAW be clustered ? Answer: No.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Can null keys be entered in cluster index, normal index ? Answer: Yes.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
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.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
What are the min.extents allocated to a rollback extent ? Answer: Two
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
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.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
What is the difference between unique key and primary key ?
Answer: Unique key can be null; Primary key cannot be null.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
An insert statement followed by a create table statement followed by rollback ? Will the rows be inserted ? Answer: No.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Can you define multiple savepoints ? Answer: Yes.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Can you Rollback to any savepoint ? Answer: Yes.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
What is the maximum no.of columns a table can have ? Answer: 254.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
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
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
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;
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
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
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Can you use %RowCount as a parameter to a cursor ?
Answer: Yes
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
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
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Is the assignment given below allowed : ABC = PQR (Where ABC and PQR are records) Answer: Yes
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Is this for loop allowed : For x in &Start..&End Loop Answer: Yes
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
How many rows will the following SQL return : Select * from emp Where rownum < 10; Answer: 9 rows
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
How many rows will the following SQL return : Select * from emp Where rownum = 10; Answer: No rows
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Which symbol preceeds the path to the table in the remote database ? Answer: @
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Are views automatically updated when base tables are updated ? Answer: Yes
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Can a trigger written for a view ? Answer: No
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
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
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
A table has the following data : [[5, Null, 10]].What will the average function return ? Answer: 7.5
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Is Sysdate a system variable or a system function? Answer: System Function
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
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
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Definition of relational DataBase by Dr.Codd (IBM)? Answer: A Relational Database is a database where all data visible to the user is organized strictly as tables of data values and where all database operations work on these tables.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
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.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Which are initial RDBMS, Hierarchical & N/w database ? Answer:
RDBMS - R system
Hierarchical - IMS N/W - DBTG
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Difference between Oracle 6 and Oracle 7
Answer:
ORACLE 7 ORACLE 6
Cost based optimizer Rule based optimizer Shared SQL Area SQL area allocated for each user Multi Threaded Server Single Threaded Server Hash Clusters Only B-Tree indexing Roll back Size Adjustment No provision Truncate command No provision Distributed Database Distributed Query Table replication & snapshots No provision Client/Server Tech No provision
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
What is Functional Dependency?
Answer: Given a relation R, attribute Y of R is functionally dependent on attribute X of R if and only if each X-value has associated with it precisely one -Y value in R
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
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
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
While designing in client/server what are the 2 imp.things to be considered ? Answer: Network Overhead (traffic), Speed and Load of client server
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
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
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
When to create indexes ?
Answer: To be created when table is queried for less than 2% or 4% to 25% of the table rows.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
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.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
What is the result of the following SQL : Select 1 from dual UNION
Select 'A' from dual;
Answer: 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. Answer: Yes, database trigger would fire.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Can you alter synonym of view or view ? Answer: No
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Can you create index on view Answer: No.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
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.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
What's the length of SQL integer ? Answer: 32 bit length
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
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.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Can dual table be deleted, dropped or altered or updated or inserted ? Answer: Yes
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
If content of dual is updated to some value computation takes place or not ? Answer: Yes
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
If any other table same as dual is created would it act similar to dual? Answer: Yes
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
For which relational operators in where clause, index is not used ? Answer: <> , 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 ? Answer: Changing the ORACLE_SID
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
What are the advantages of Oracle ? Answer: 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 ? Answer: 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 ? Answer: 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 ?
Answer: 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 ? 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.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
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
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
What are various types of joins ? Answer: Types of joins are:
Equijoins
Non-equijoins self join outer join
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
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.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
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. |
Yasser
To know the name of database:
select * from global_name;
select name from v$database;
To know the version of database:
SELECT version
FROM v$instance;
To check the privilege of current user:
select * from session_privs;
To unlock user:
ALTER USER user_name ACCOUNT UNLOCK;
Operators:
SQL> select id from test1;
ID
---------
1
1
1
2
3
4
6 rows selected.
SQL> select id from test2;
ID
---------
4
5
SQL> select id from test1
2 union
3 select id from test2;
ID
---------
1
2
3
4
5
select id from test1
union all
select id from test2
ID
---------
1
1
1
2
3
4
4
5
select id from test1
intersect
select id from test2
ID
---------
4
select id from test1
minus
select id from test2
ID
---------
1
2
3
n To show primary key of table
select column_name from user_cons_columns c,user_constraints s
where c.constraint_name = s.constraint_name
and c.table_name = s.table_name
and lower(s.table_name) = lower('&tab_name')
and constraint_type = 'P'
/
n To see the procedure
source
select text
from user_source
where name = upper('&proc_name')
order by line
n Adjust your sql+
set linesize 1200;
set serveroutput on;
set verify off;
n
To see the triggers of table
select trigger_name,status
from user_triggers
where upper(table_name) = upper('&v_tabn')
n
Wrap the text
CREATE PROCEDURE wraptest IS
TYPE
emp_tab IS TABLE OF employees%ROWTYPE INDEX BY PLS_INTEGER;
all_emps emp_tab;
BEGIN
SELECT
* BULK COLLECT INTO all_emps FROM employees;
FOR i
IN 1..10 LOOP
DBMS_OUTPUT.PUT_LINE('Emp Id: ' || all_emps(i).employee_id);
END
LOOP;
END;
/
اولا الSEQUENCE هي عبار عن OBJECT يتم بنائه في قاعدة البيانات لبناء التسلسلات يعني لو فرضنا عندك جدول كل سجل فيه عند الاضافه يجب ان ياخذ رقم متسلسل غير عن الذي قبله يعني مثلا يكون مفتاح رئيسي ... نستعمل الSEQUENCE لمثل هذه الامور لانه مستحيل يجب قيمتين متشابهتين ... مما يؤدي الى ان يكون الرقم UNIQU اي وحيد لا يوجد له شبيه بالجدول.... ويجب ان يكون له قيمه للبدايه (ولا يشترط قيمه للنهايه) مثلا يبدأ من 1 ..... وينتهي الى 999 اما عن الاسئله اللي سألتي عنها وهي : NOCYCLE وتعني ان العداد او الSEQUENCE لا يجب ان يعود من البداية في حالة انه وصل للقيمه العليا لو فرضنا بالمثال السابق ان العداد وصل لغاية 999 لا يصفر من جديد. CYCLE وهي عكسها يعني اعادة التصفير. CACH يعني يحتفظ بمعدل 20 قيمه الى الامام في الذاكره دائما وليس كل ما تستدعيه هذا الSEQUENCE يحسب من جديد الى اين وصل بل كل مره يضيف 20 ويحتفظ فيهم بالذاكره يعني لو فرضنا ان الان العداد واصل ل30 تجد انه محتفظ لغاية 50 بالارقام التاليه دون اعادة احتساب بالذاكره. NOCACH توقفها...... NEXTVAL وهي القيمه التاليه للقيمه CUURVAL لو فرضنا ان CURRVAL = 10 اذن NEXTVAL=11 ....
Find duplication of record
cursor dup is select bank_out, count(*) from ap_ord_CHK where rec_no = wrec_no and system_type = wSYSTEM_TYPE and ar_typ = wAR_TYP and year = wYEAR group by bank_out having count(*) > 1;
No comments:
Post a Comment