Beruflich Dokumente
Kultur Dokumente
Part 1 :
Part 2 :
PLSQL Course
PLSQL practices and problems
Prepared By :
Email
:
Mobile No :
Part 1 :
PLSQL Course
1.
2.
3.
4.
5.
6.
7.
13.
Q: What is PLSQL ?
A: It is a procedural anguage Structure Query language
Q: Why do you Need PLSQL Language ?
1
SQL
Applicat
ion1
SQL
SQL
DATA
BASE
SQL
SQL
SQL
Cannt write more than one SQL command at the same Time
SQL commands are not depended to each other and Not executed in a specific order
10
11
12
Applicat
ion2
Improve Performance and reduce network traffic between client and server by agrouping sql statements
together in one block and send it to the server in one call
Integration: it can be used as developer tools (in forms and reports)or as administration tools
Block require that all SQL Commands to be correct for the execution . if there is one SQL command is
not Correct then the whole block with all SQL Commands will not be exeucted
If you write more than one SQL statement you must separate them by using semi comma (;)
Declaration Part
Optional
Body
Mandatory
Exception Part
Optional
Variable
Oracle Complete PLSQL Reference
Q: What is a Variable?
1. Is a space located in the memory can be used For Impermanent storage of One an ONLY One Value
2. Variable can store value identified by the user himself OR value retrieved form the data base table
Q: Why do you use a variable?
1- Temporary storage of data:
1.1 Data can be temporarily stored in one or more variables for use when validating data input and
for processing later in the data flow process such as Login Window we store the user name and
password For user to check for these two values if they are stored in the data base the user will be
logined successfully and if they are not stored in the data base the user will not be able to login.
2. Manipulation of stored values:
2.1 Variables can be used for calculations and other data manipulations without accessing database.
2.2 store values for calculation and the result of these calculations will be displayed in the report
3- Reusability:
3.1 After they are declared, variables can be used repeatedly in an application simply by referencing
them in other statements, including other declarative statements such as local variables and global
variables.
4- Ease of maintenance:
4.1 declare new variable has the same data type of other variable
4.2 declare new variable has the same data type of data base column and when changing the value in
the database this value will changed automatically in the variable such as create variable storing the
max value in empno column to create application trigger to increment this value for the next record
Q: How do you declare a variable?
1. You must declare a variable in the declaration part of the block
2. You can decalre more than one variable in the same block BUT you must
2.1 define each varibale in a separate line
2.2 end each varibale with a semi comma (;)
3. Each variable Must has [name, data type] mandatory, [null ability, default value] optional
Q: what are the rules of the Variable name ?
1. Variable names are unique within the same block but variable name may be duplicated in other block
2. Length between 1-30 charater length
3. Must start with character NOT with number or special character BUT it may include numbers and special
character inside the name or at the end
4. Variable name mustnt be the same as column name within the data base
5. It is preferable to start variable name with V_ColumnName if it contain changeable value and
start variable name with C_ColumnName if it contain Constant value
6. If you declare a variable contain constant value so the keyword CONSTANT must precede the data type of
the variable
7. String literals must be enclosed in single quotation marks. For example , 'Hello, world'.
If there is a single quotation mark in the string, use a single quotation mark twice, for example,
to insert a value FISHERMAN'S DRIVE, the string would be 'FISHERMAN''S DRIVE '.
Q: what are the rules when you Assign a value for the Variabe ?
1. It is good code to assign value for the variable because if you did not assign value then null will be inserted
2. To assign value for the variable you can use := or use DEFAULT as keyword
3. Variable value can be constant value or default value or expression
4. Assigning string value must be enclosed between single quotes But numeric value does not require single
quotes
5. If you assign value for the variable in the declaration section and assign new value for the variable in the
execution section the new value will replace the old value in the declaration part
Q: What are the data types for the variables
1. Char(n)
2. Varcahr2(n)
3. Number(n)
4. Number(m,n)
5. Date
6. Binary_integer
7. Boolean
8. Long
9. Long raw
varchar2(20)
varchar2(50)
number(5)
number(9,2)
number(6)
CONSTANT number(5)
date
date
CONSTANT numebr(5,2)
BOOLEAN
null
null
not null
null
not null
;
:= 'cairo';
:= 10
:= 0;
DEFAULT 100;
DEFAULT 1400;
:= TO_CHAR('1998/08/16', 'yyyy/mm/dd');
:= SYSDATE + 3;
:= 0.15;
:= TRUE;
2. Use TabeName.ColumnName%type
Declare
v_job
emp.job%type ;
v_location dept.dname%type := 'cairo' ;
v_deptno dept.deptno%type not null := 10;
v_total_sal emp.sal%type := 0;
v_mgr
emp.mgr%type DEFAULT 100;
c_comm CONSTANT emp.comm%type := 1400;
v_hire_date emp.hiredate%type := TO_CHAR('1998/08/16', 'yyyy/mm/dd');
3. Use Variable%type
Declare
v_job
emp.job%type ;
v_location v_job%type := 'cairo' ;
v_deptno dept.deptno%type not null := 10;
v_total_sal v_deptno%type := 0;
v_mgr
v_deptno%type DEFAULT 100;
c_comm CONSTANT emp.comm%type := 1400;
v_hire_date emp.hiredate%type := TO_CHAR('1998/08/16', 'yyyy/mm/dd');
4. Use TableName%rowtype
4.1 Decalre only one variable that store the value for all row in the table
4.2 you can print the whole row value or print a specific values only
Declare
Emp_Row Emp%RowType;
begin
DBMS_OUTPUT.PUT_LINE (Emp_Row.Empno);
DBMS_OUTPUT.PUT_LINE (Emp_Row.Ename);
DBMS_OUTPUT.PUT_LINE (Emp_Row.Salary);
End;
10
11
12
7. How to write more that DML transactions within the anonymus block
13
8. How to write more that DML transactions within the anonymus block
14
15
16
17
18
19
Declaration Part
Optional
Body
Mandatory
Declaration Part
Optional
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Part 1 :
PLSQL Course
Control Structure
There are three Type of Control Structure
1 IF Condition
2 Case Expression
3 Loop
38
IF Condition
39
IF Condition
There Are Three Types of IF Statement
1
IF Stamtement with ONLY one Conditon
Syntax IF Condition1 then Action1 ; END IF;
2
IF Stamtement with ONLY two Conditons
Syntax IF Condition1 then Action1 ;
ELSE Action2 ;
END IF;
3
IF Stamtement with MORE than two Conditons
Syntax IF Condition1 then Action1 ;
ELSIF Condition2 then Action2 ;
ELSIF Condition3 then Action3 ;
ELSIF Condition4 then Action4 ;
ELSE action 5;
END IF;
All conditions in IF statements are Boolean expressions that evaluate to true or false.
All Actions in IF Statements are PL/SQL statements
You can execute many actions as you like when the actions is TRUE
IF Stamtement with ONLY one Conditon
40
41
42
43
44
45
CASE Expression
46
CASE Expression
Createorreplaceprocedurerep1(p1number)
Is
V_salnumber(5);
Begin
Selectsal
Intov_sal
Fromscott.Emp
Whereempno=p1;
v_sal:=CASEv_salWhennullthen50;
When<=1000thenv_sal+100;
When<=2000thenv_sal+200;
ELSEv_sal+300;
ENDCASE;
Updateemp
setsal=V_sal
whereempno=p1;
End;
47
Loop
48
Loop
What is Loop ?
It is a technique that can be used to run spefic code more that one time within the block
Why do you use Loop?
You may use a loop to run one or more statements multiple times
What are Loop types ?
1. Basic Loop Simple Loop
2. For loop
3. While Loop
In loop you must write a condition to exist the loop . If you didnt specify the condition the loop will
continue forever (infinity loop)
Basic Loop Simple Loop
A simple loop runs until you explicitly end the loop.
To end the loop, you use either an EXIT or EXIT WHEN statement.
The EXIT statement ends a loop immediately.
EXIT WHEN statement ends a loop when a specified condition occurs.
Basic Loop Syntax
49
Basic Loop
50
Basic Loop
51
Basic Loop
52
Basic Loop
53
54
Basic Loop
55
For Loop
A FOR loop runs a predetermined number of times.
You can use a variable directory in the body without declaring it in the declaration
Basic Loop Syntax
Where :
1. Loop_variable specifies the loop variable
2. REVERSE specifies that the loop variable value is to be decremented each time through the loop.
3. lower_bound specifies the loop's lower bound
4. upper_bound specifies the loop's upper bound
5. If REVERSE is used, the loop variable is initialized to this upper bound
6. The upper or lower bounds of the FOR loop can be defined as variables or functions.
56
For Loop
57
58
For Loop
59
60
For Loop
61
For Loop
62
For Loop
63
For Loop
64
65
66
67
For Loop
68
For Loop
69
While Loop
70
While Loop
71
72
While Loop
73
While Loop
74
While Loop
75
Cursor
Explicit Cursor
Implicit Cursor
Reference Cursor
Cursor
Oracle Complete PLSQL Reference
76
Topics
Cursor
1. Introduction( 13 )
2. Cursor Declaration( 16 )
3. Cursor Open( 3 )
4. Fetch( 17 )
5. LOOP( 10 )
6. Close Cursor( 6 )
7. Cursor Status( 6 )
8. Implicit Cursor( 18 )
9. Explicit Cursor( 2 )
10. Cursor for Update( 5 )
11. Cursor Parameter( 4 )
12. ref cursor( 6 )
13. REFCURSOR( 9 )
14. Cursor Attributes( 9 )
15. refcursor( 3 )
16. Cursor function( 5 )
Q: What is Cursor?
1. Cursor is a space in the memory that can be used to store more than ONE record
2. cursor is basically a set of rows that you can access one at a time.
3. Cursor can accept parameters
Q: when do you use a Cursor?
You use a cursor when you have a SELECT statement that returns more than one row from the database.
Q: How do you use a Cursor?
1. Declare variables to store the column values from the SELECT statement.
2. Declare the cursor , specifying your SELECT statement.
3. Open the cursor.
4. Fetch the rows from the cursor.
5.Close the cursor.
Q: what is the syntax for the cursor ?
77
Declaration part
Declaration part
Body part
Body part
Body part
Cursor
Q: How do you use a Cursor?
Open
Execute the SELECT statement
Fetch
1. Read column values into the variables that you specify
2. you must use LOOP to Fetch more than one record
3. If you didnot use Loop with the cursor then the first record retreived by the
cursor will be retrieved ONLY
Close
Frees up system resources
Q: what are the cursors type?
Explicit Curosr
Declare Cursor then use open , fetch , close
Defined in the decalarion part as follows
Cursor <CursorNmae> is <SELECT statement> ;
Implicit Cursor
Declare Cursor then use Loop
Defined in the body part with loop statement as follows
FOR I in <SELECT statement> Loop;
SQL%ROWCOUNT and SQL%BULK_ROWCOUNT
SQL%FOUND and SQl%NOTFOUND
Reference Coursor
Q: Functions with Cursor
<CursorName>%ISOPEN
<CursorName>%FOUND
<CursorName>%NOTFOUND
<CursorName>%ROWCOUNT
Return TRUE if the cursor is opend and Return FALSE if cursor is not opened
1. Return TRUE if the cursor retun row and Return FALSE if cursor didnt return row
Values of %FOUND, %NOTFOUND, and %ROWCOUNT are changed after every fetch.
If you use the %FOUND, %NOTFOUND, and %ROWCOUNT cursor variables before the cursor is opened
or after the cursor is closed, they will raise an exception.
78
79
80
81
82
83
<CursorName>%ISOPEN
<CursorName>%FOUND or <CursorName>%NOTFOUND
Oracle Complete PLSQL Reference
84
<CursorName>%ROWCOUNT
85
86
87
88
Open
Fetch
Close
Implicit Cursor
Implicit cursor open, fetch and close
When you begin the body by writing BEGIN keyword
When you start the Loop statement by writing (basic loop , for loop , while Loop)
When you end the Loop statement by writing (end loop) key word
89
Implicit Cursor
90
Implicit Cursor
Implicit cursors: SQL%ROWCOUNT returns number of rows affected by SQL statement
91
Implicit Cursor
92
Reference Cursor
The REF CURSOR datatype cannot be used outside a PL/SQL environment.
There are two kinds of REF CURSOR types:
1. weak
2. strong.
Weak Reference Cursor
can point to any data set, as shown here:
Strong Reference Cursor
Explicitly declares the type of data that can be referenced.
Weak Ref Cursor
1.
SQL> Declare
type weak_rcty is ref cursor;
c_weak rcty weak_rcty;
2.
declare
c_weak sys_refcursor
Strong Ref Cursor
declare
type strong_rcty is ref cursor return employee%ROWTYPE;
c_strong_rcty strong_rcty;
93
94
95
96
97
Exception Handling
98
Exception
NO_DATA_FOUND
TOO_MANY_ROWS
ZERO_DIVIDE
VALUE_ERROR
Pre-Defined Exceptions
Oracle Error
SQLCODE Value
ORA-01403
Single SELECT statement returned no data
ORA-01422
Single SELECT statement returned more than one row of
data.
ORA-01476
A program attempts to divide a number by zero.
ORA-06502
An arithmetic, conversion, truncation, or
size-constraint error occurs.
For example, when your program selects a column value
99
DUP_VAL_ON_INDEX
ORA-00001
INVALID_NUMBER
ORA-01722
ACCESS_INTO_NULL
ORA-06530
CASE_NOT_FOUND
ORA-06592
COLLECTION_IS_NULL
ORA-06531
INVALID_CURSOR
ORA-01001
LOGIN_DENIED
ORA-01017
NOT_LOGGED_ON
ORA-01012
PROGRAM_ERROR
SUBSCRIPT_OUTSIDE_LIMIT
ORA-06501
ORA-06532
SYS_INVALID_ROWID
ORA-01410
TIMEOUT_ON_RESOURCE
ORA-00051
Exception
SUBSCRIPT_BEYOND_COUNT
ROWTYPE_MISMATCH
Pre-Defined Exceptions
Oracle Error
SQLCODE Value
ORA-06533
A program references a nested table or varray element
using an index number larger than the number of
elements in the collection.
ORA-06504
The host cursor variable and PL/SQL cursor variable
involved in an assignment have incompatible return
types. For example, when an open host cursor variable
100
SELF_IS_NULL
ORA-30625
STORAGE_ERROR
ORA-06500
CURSOR_ALREADY_OPEN
ORA-06511
OTHERS
Create the following Employee and Department tables to be used in the following exercises
101
System Error
User Exception
102
User Exception
System Error
103
System Error
User Exception
System Error
104
User Exception
User Exception
System Error
105
System Error
User Exception
System Error
User Exception
106
User Exception
107
SQLCODE
SQLERRM
108
109
6. Exceptions declared in a block are considered local to that block and global to all its sub-blocks. Because a
block can reference only local or global exceptions, enclosingblocks cannot reference exceptions declared in a
sub-block
110
OUT Parameter
Oracle Complete PLSQL Reference
111
1. OUT
parameter acts like a variable. You can change its value, and reference the value after assigning it:
2. can be bused when pass parameter values from one procedure to another procedure
2.1 OUT parameter returns a value to the caller of a subprogram.
3. You must pass a variable, not a constant or an expression, to an OUT parameter.
4. OUT
OUT Parameter
112
IN OUT Parameter
113
114
Table Type
115
SQL> DECLARE
2
TYPE emp_table_struct IS TABLE OF emp.fname%TYPE INDEX BY BINARY_INTEGER;
3
emp_table emp_table_struct;
4
CURSOR emp_cursor IS SELECT fname FROM emp ORDER BY id;
5
v_row
NUMBER := 1;
6 BEGIN
7
OPEN emp_cursor;
8
LOOP
9
FETCH emp_cursor INTO emp_table(v_row);
10
EXIT WHEN emp_cursor%NOTFOUND;
11
DBMS_OUTPUT.PUT_LINE(emp_table(v_row));
12
v_row := v_row + 1;
13
END LOOP;
14
CLOSE emp_cursor;
15
DBMS_OUTPUT.PUT_LINE('Total rows: '||emp_table.COUNT);
16 END;
17 /
DataBase Trigger
116
A statement-level trigger cannot query or modify a mutating table if the trigger is fired as the result
Functions
Q: What is Fincation?
A function is similar to a procedure except that a function must return a value.
Function can accept parameters or not
The simplified syntax for the CREATE FUNCTION statement is as follows:
CREATE [OR REPLACE] FUNCTION function_name [(parameter_name [IN | OUT | IN OUT] type [, ...])]
RETURN type
{IS | AS}
BEGIN
function_body
END function_name;
Oracle Complete PLSQL Reference
117
118
119
120
121
122
123
124
125
126
127
128
Database Trigger
129
DataBase Trigger
Q: what is a Trigger ?
It is a PLSQL Block that is associated with specific table, view, schema, Database and fire implecitly when
a specific event occure
Q: what are the triggers Types?
1. DataBase Trigger
2. Application Trigger
4. Database
Part 3
Optinal
Trigger Type
2. System Event
When <Condition>
Trigger Syntax
130
131
132
133
1.
134
Avaliable Functions
ora_sysevent
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
135
ora_client_ip_address
Ora_database_name
ora_des_encrypted_password
ora_dict_obj_name
ora_dict_obj_name_list
ora_dict_obj_owner
ora_dict_obj_type
ora_grantee
ora_instance_num
ora_is_alter_column
ora_is_creating_nested_table
ora_is_drop_column
ora_is_servererror
ora_login_user
ora_partition_pos
ora_privilege_list
ora_revokee
ora_server_error
ora_server_error_depth
ora_server_error_msg
ora_server_error_num_params
ora_server_error_param
ora_sql_txt
ora_with_grant_option
space_error_info
136
into
into
into
into
into
into
company
company
company
company
company
company
137
Examples
SQL>createtableemplpyee
(empnonumber(5),namechar(10),salnumber(5),commnumber(5),totalnumber(5))
SQL>CreateorreplacetriggerTri1
Afterupdateofsal,commonemp
Foreachrow
Begin
Updateemp
Settotal=sal+comm
Wheresal=:new.salorcomm=:new.comm;
End;
SQL>insertintoevalues(1,'ali',100,200,null);
SQL>insertintoevalues(2,'mona',200,300,null);
SQL>commit;
SQL>updateesetsal=300whereid=1;
ERRORatline1:
ORA04091:tableSCOTT.Eismutating,trigger/functionmaynotseeit
ORA06512:at"SCOTT.TRI1",line2
ORA04088:errorduringexecutionoftrigger'SCOTT.TRI1'
ErrorCalrification
INOracleyoucanntinsrtintotableXandruntriggertoupdatethesametable
Butyoucanrunthetriggertoupdateanothertablebbecauseitisrelatedtointernal
constraintthatviolatethisissue
138
Instead OF Trigger
139
140
as
System Triggers
1.
DDL Trigers
http://www.psoug.org/reference/ddl_trigger.html
DDL Triggers Events
BEFORE / AFTER ALTER
BEFORE / AFTER CREATE
BEFORE / AFTER DROP
BEFORE / AFTER RENAME
BEFORE / AFTER ANALYZE
BEFORE / AFTER ASSOCIATE
STATISTICS
BEFORE / AFTER DISASSOCIATE
STATISTICS
BEFORE / AFTER AUDIT
BEFORE / AFTER NOAUDIT
BEFORE / AFTER COMMENT
BEFORE / AFTER DDL
BEFORE / AFTER GRANT
BEFORE / AFTER REVOKE
BEFORE / AFTER TRUNCATE
AFTER SUSPEND
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
141
Avaliable Functions
ora_sysevent
ora_client_ip_address
Ora_database_name
ora_des_encrypted_password
ora_dict_obj_name
ora_dict_obj_name_list
ora_dict_obj_owner
ora_dict_obj_type
ora_grantee
ora_instance_num
ora_is_alter_column
ora_is_creating_nested_table
ora_is_drop_column
ora_is_servererror
ora_login_user
ora_partition_pos
ora_privilege_list
ora_revokee
ora_server_error
ora_server_error_depth
ora_server_error_msg
ora_server_error_num_params
ora_server_error_param
ora_sql_txt
ora_with_grant_option
space_error_info
Example No:10
Create Table tets_DDL
(server_Event varchar2(50),
object_owner varchar2(50),
object_name varchar2(50),
user_name varchar2(50),
system_date date)
CREATE OR REPLACE TRIGGER test_DDL
BEFORE CREATE or ALTER or DROP ON SCHEMA
BEGIN
INSERT INTO tets_ddl
SELECT ora_sysevent, ora_dict_obj_owner, ora_dict_obj_name, USER, SYSDATE
FROM dual;
END;
Example No:11
Conn sys/password@<service_name> as sysdba;
Create table ddl_log
(server_event char(40),
owner char(20),
objectname char(20),
text varchar(200),
username char(20),
transaction_date date);
CREATE OR REPLACE TRIGGER ddl_trigger
BEFORE CREATE OR ALTER OR DROP ON SCHEMA
DECLARE
oper varchar2(50);
BEGIN
SELECT ora_sysevent
INTO oper
FROM dual;
IF oper IN ('CREATE', 'DROP') THEN
INSERT INTO ddl_log
SELECT ora_sysevent, ora_dict_obj_owner, ora_dict_obj_name, NULL, USER, SYSDATE
FROM dual;
ELSIF oper = 'ALTER' THEN
INSERT INTO ddl_log
SELECT ora_sysevent, ora_dict_obj_owner,ora_dict_obj_name, sql_text, USER, SYSDATE
FROM sys.gv$open_cursor
WHERE UPPER(sql_text) LIKE 'ALTER%';
END IF;
END;
142
143
2.
System Triggers
http://www.psoug.org/reference/system_trigger.html
AFTER LOGON
AFTER STARTUP
System Event Trigger Types
BEFORE LOGOFF
BEFORE SHUTDOWN
AFTER SERVERERROR (does not trap
DATE,
VARCHAR2(30));
144
Create table ip
(ip_add char(20),
user_name char(20),
logon_user char(20),
db_name char(20),
instance_no number(5),
create table w
logon_date date);
object_name varchar2(255));
IF (ora_sysevent=LOGON) THEN
INSERT
INTO IP OR REPLACE TRIGGER sysevent_trig
CREATE
BEGIN
VALUES(ora_client_ip_address,user,ora_login_user,Ora_database_name,ora_instance_num,sysdate);
END IF;
AFTER
ALTER ON SCHEMA
END;
BEGIN
INSERT INTO w VALUES(user,ora_dict_obj_name);
END ;
145
146
varchar2(2000) := null;
stmt_
varchar2(2000) := null;
begin
for depth in 1 .. ora_server_error_depth loop
msg_ := msg_ || ora_server_error_msg(depth);
End loop;
For i in 1 .. ora_sql_txt(sql_text) loop
stmt_ := stmt_ || sql_text(i);
End loop;
Insert into caught_errors (dt,username,msg ,stmt )values (sysdate,ora_login_user,msg_,stmt_);
end;
Trigger Privelages
create trigger
create any trigger
System Privileges
147
dba_triggers
all_triggers
user_triggers
You Can Enable And Disable Any Trigger According To the following Codes
148
Function
149
1.
create or replace function emp_count
return number
is
cnt number(2) := 0;
begin
select count(*) into cnt
from emp ;
return (cnt);
end;
/
2.
create or replace function emp_count (p_deptno in number)
return number
is
cnt number(2) := 0;
begin
select count(*) into cnt
from emp
where deptno = p_deptno ;
return (cnt);
end;
/
3.
update emp set comm = sal where deptno = 10 ;
commit;
create or replace function fun1 (p1 number , p2 number)
return number
is
begin
if p1 = p2 then
return (0);
else
return (1);
end if;
end;
/
4.
select ename , sal , sal*0.10 as raise
from emp;
Create or replace function raise10(p_sal number)
Return number
Is
Begin
Return (p_sal * 0.10);
Oracle Complete PLSQL Reference
150
End;
Create or replace function raise(p_sal number ,p_percentage number )
Return number
Is
Begin
Return (p_sal * p_percentage);
End;
5.
select ename , sal , comm, nvl(sal,0)+nvl(comm,0) as total
from emp;
Create or replace function total (p_sal number , p_comm number)
return number
is
Begin
return (nvl(p_sal,0)+nvl(p_comm,0));
End;
6.
select ename , hiredate , TO_CHAR(hiredate,'W')
from emp;
Create or replace function week_month(p_date IN date)
RETURN NUMBER
IS
BEGIN
RETURN ( TO_NUMBER( TO_CHAR( p_date, 'W' ) ) );
END;
7.
select ename, hiredate , TO_CHAR(hiredate, 'fmMonth') as Month_name
from emp;
Create or replace function Month_Name ( p_date IN DATE )
RETURN VARCHAR2
IS
BEGIN
RETURN ( TO_CHAR( p_date, 'fmMonth' ) );
END Month_Name;
8.
select ename , hiredate , TO_CHAR( hiredate, 'Q' )
from emp
where deptno = 10 ;
151
152
RETURN user;
END;
13. Function that return current date = sysdate
select sysdate from dual;
Create Or Replace Function current_date
RETURN date
IS
BEGIN
RETURN sysdate;
END;
14- Function that default value for nationality column
create table employee (name char(4),nationality varchar2(20));
Create Or Replace Function default_nationality
RETURN varchar2
IS
BEGIN
RETURN egyptian;
END;
Insert into employee
Values('ali', default_nationality);
15- Function that return max_sal_emp
select max(sal) from emp;
Create Or Replace Function max_sal_emp
RETURN number
IS
v_max_sal number(5);
BEGIN
Select max(sal)
Into v_max_sal
From emp;
RETURN v_max_sal;
END;
16- Function that return statistic
select max(sal) , min(sal) , avg(sal) , sum(sal)
from emp;
Create Or Replace Function Max_Min_Avg_Sum
RETURN varchar2
IS
v_max_sal number(5);
v_min_sal number(5);
Oracle Complete PLSQL Reference
153
v_avg_sal number(5);
v_sum_sal number(5);
BEGIN
Select max(sal) , min(sal), avg(sal) , sum(sal)
Into v_max_sal , v_min_sal , v_avg_sal , v_sum_sal
From emp;
RETURN (to_char(v_max_sal) || '-' || to_char(v_min_sal) || '-' || to_char(v_avg_sal) || '-' || to_char(v_sum_sal));
END;
17.
CREATE OR REPLACE FUNCTION add_three_numbers( a NUMBER := 0, b NUMBER := 0, c NUMBER := 0
)
RETURN NUMBER
IS
BEGIN
RETURN a + b + c;
END;
/
BEGIN
dbms_output.put_line(add_three_numbers(3,4,5));
END;
/
18.
CREATE OR REPLACE FUNCTION add_three_numbers( a NUMBER := 0, b NUMBER := 0, c NUMBER := 0
)
RETURN NUMBER
IS
BEGIN
RETURN a + b + c;
END;
/
BEGIN
dbms_output.put_line(add_three_numbers(a => 4,b => 5,c => 3));
END;
19.
CREATE OR REPLACE FUNCTION add_three_numbers( a NUMBER := 0, b NUMBER := 0, c NUMBER := 0
)
RETURN NUMBER
IS
BEGIN
RETURN a + b + c;
END;
/
BEGIN
dbms_output.put_line(add_three_numbers(a => 4,b => 5,c => 3));
END;
Oracle Complete PLSQL Reference
154
Package
155
createtabledd
(deptnonumber(5),deptnamevarchar2(30),deptlocvarchar2(5));
createsequencesqdept
startwith1
incrementby1;
CREATEorreplacepackageover_pack
IS/AS
Procedureadd_dept(dnonumber,dnamevarchar2,dlocvarchar2);
Procedureadd_dept(dnamevarchar2,dlocvarchar2);
End;
/
CREATEorreplacepackageBODYover_pack
Is
Procedureadd_dept(dnonumber,dnamevarchar2,dlocvarchar2)
Is
Begin
Insertintoddvalues(dno,dname,dloc);
End;
Procedureadd_dept(dnamevarchar2,dlocvarchar2)
Is
Begin
Insertintoddvalues(sqdept.nextval,dname,dloc);
End;
End;
/
execover_pack.add_dept(design,cairo);
execover_pack.add_dept(1,sales,alex);
156
CREATEorreplacepackageover_pack
Is
functiontotal(v_salnumber,v_commnumber)returnnumber;
functionmax_sal_empreturnnumber;
End;
CREATEorreplacepackagebodyover_pack
Is
functiontotal(v_salnumber,v_commnumber)
returnnumber
is
Begin
return(nvl(v_sal,0)+nvl(v_comm,0));
End;
Functionmax_sal_emp
RETURNnumber
IS
v_max_salnumber(5);
BEGIN
Selectmax(sal)
Intov_max_sal
Fromemp;
RETURN(v_max_sal);
END;
End;
/
selectsal,comm,over_pack.total(sal,comm)
fromemp;
selectover_pack.max_sal_emp
fromdual;
157
158
159
System Package
160
161
DBMS_ALERT( 6 )
DBMS_DEBUG( 1 )
dbms_lock( 1 )
DBMS_REDEFINITION( 1 )
dbms_sql( 27 )
dbms_xmlschema( 2 )
UTL_COMPRESS( 1 )
utl_raw( 27 )
dbms_application_info( 4 )
DBMS_FGA( 1 )
DBMS_METADATA( 2 )
DBMS_REPAIR( 4 )
dbms_stats( 12 )
htp( 1 )
UTL_FILE( 9 )
UTL_SMTP( 1 )
DBMS_AQADM( 3 )
DBMS_FILE_TRANSFER( 1 )
DBMS_OBFUSCATION_TOOLKIT( 6 )
dbms_rowid( 7 )
DBMS_TRACE( 2 )
ORA Error( 13 )
UTL_HTTP( 1 )
UTL_TCP( 1 )
162
dbms_crypto( 8 )
dbms_flashback( 3 )
dbms_output( 16 )
dbms_scheduler( 1 )
dbms_utility( 15 )
ORA( 18 )
utl_i18n( 1 )
DBMS_DB( 1 )
dbms_job( 8 )
DBMS_PIPE( 13 )
DBMS_SESSION( 1 )
DBMS_WARNING( 2 )
outln_pkg( 1 )
UTL_INADDR( 1 )
dbms_ddl( 1 )
dbms_lob( 17 )
DBMS_RANDOM( 12 )
dbms_space( 1 )
dbms_xmlquery( 1 )
TEXT_IO( 1 )
UTL_MAIL( 1 )
Implicit Cursor
http://www.java2s.com/Tutorial/Oracle/0500__Cursor/sqlnotfound.htm
http://www.java2s.com/Tutorial/Oracle/0500__Cursor/UsingSELECTinaCursor.htm
http://www.java2s.com/Tutorial/Oracle/0500__Cursor/Cursorforobjecttable.htm
http://www.java2s.com/Tutorial/Oracle/0500__Cursor/Cursorwithorderby.htm
http://www.java2s.com/Tutorial/Oracle/0500__Cursor/Cursorforaggregatefunction.htm
http://www.java2s.com/Tutorial/Oracle/0500__Cursor/FetchingAcrossCommitsExample2.htm
http://www.java2s.com/Tutorial/Oracle/0500__Cursor/CursorFORLoop.htm
http://www.java2s.com/Tutorial/Oracle/0500__Cursor/Closecursorinexcpetionhandler.htm
SQL>Createorreplaceprocedurea
Is
CursorEmp_Rec_Curisselectename,deptnofromemp;
Begin
foriinemp_rec_curloopimplicitopenandimplicitFetch
ifi.deptno=20then
dbms_output.put_line(i.ename||''||i.deptno);
endif;
endloop;implicitcloseandimplicitloopExit
end;
theprviousexampleisequaltonextexample
SQL>Createorreplaceprocedurea
Is
Begin
foriin(selectename,deptnofromemp)loopimplicitopenandimplicitFetch
ifi.deptno=20then
dbms_output.put_line(i.ename||''||i.deptno);
endif;
endloop;
implicitcloseandimplicitloopExit
end;
VARRAY of Cursor
http://www.java2s.com/Tutorial/Oracle/0500__Cursor/VARRAYofCursor.htm
163
164
sqlerrm);
END;
/
Back to top
DBMS_SQL.CLOSE_CURSOR(v_cursor);
raise_application_error(-20000, 'Unknown Exception Raised: '||sqlcode||' '||
of file
Execute procedure
1.
2.
3.
4.
exec rep1;
exec rep1()p1,p2,p3,;
call rep1();
call rep1(p1,p2,p3,.);
Triggers
165
166
While Loop
http://www.java2s.com/Tutorial/Oracle/0440__PL-SQL-Statements/ReversedFORLOOP.htm
http://www.adp-gmbh.ch/ora/plsql/loops.html
https://support.us.oracle.com/oip/faces/secure/srm/sr/SRQueue.jspx?mc=true
https://login.oracle.com/mysso/signon.jsp?
site2pstoretoken=v1.2~97B77393~56D799A0127BA50DC728218D093398C3E7DC7FBF437396E2
DF8C88659E2568533223ED388A5A74C7CE50A6B563DA6224E2FE03819119B6DD1568AE6C9280
AB2EDCDECBBDD876929B5A9F5D0C72951FDCE134763C3783B3DFACB6CED8B35EA6CC1CF29A9
2BAA0E40C94B0B59C78A8AA97086082846113AC3E082477225EF2359275DE1F014672AC086F85
A66620BFBDAB778B2E5A6D04E0641CF70781A264F3C9EE35CFEC74333D63B3570160E466D4390
A005E5988628900&p_error_code=&p_submit_url=https%3A%2F%2Flogin.oracle.com%2Fsso
%2Fauth&p_cancel_url=http%3A%2F%2Fgcca.oraclecorp.com
=%2Fcca&ssousername=&subscribername
https://login.oracle.com/mysso/signon.jsp?
site2pstoretoken=v1.2~B483CC4E~8A17DE85F48237269E6D418A2D3B532BF6B825EBC625C51F
D063482AE69E7EB1B7E38AEF36FA299222FB6EB1EE7E34B0DC424060688F88C2241F59A23D04F
3E37FE9AD514E1C692B8BD63EA50EB5A6510493DD38C1E272779A451A13D05CB235AD10FE3A1
1658C15E94EE612F4B74D190699D28ACAE02CA2213BB826001290456A80A25F7EE2D6C99261B0
5A83CD01EAB5FEE046D837278283E8C3F7E28198BAA653F3C73A6FFC6B39B19ACD78D5EDAC9C
E0C22B7B5F17349A1312F92CB33D4C25CE5C83F0768185C830F3F292E87C413AC60A0775EF16C
324913DCBF1A7F1A9D25E779E5B91F1350602B1F083E5812CDA7B4A2BD87D6317&p_error_code
=&p_submit_url=https%3A%2F%2Flogin.oracle.com%2Fsso%2Fauth&p_cancel_url=https%3A%2F
=%2Fsupport.us.oracle.com%2Foip&ssousername=&subscribername
https://login.oracle.com/mysso/signon.jsp?
site2pstoretoken=v1.2~B483CC4E~23E6FB45EB4FE6929831F3A33F813893C1D08307A3F8A92A
A3484C34FF3229B41916D02D6C8610D11A20FCE7DF40F64B70506A05058A71C3E56EE66E25DBC
CD6B8834A62BB8CD4371A40D66106E03A166297BAD9E86E8A419F45FCD1CDB2278BB4E534703
9AED42D290AD988AC97C5977896884568F4C86E545344B0079CAB3DA03435F70B45D1D2DD73C
B25930116BFC56B8EDDC9863698C3465FE67D524D229537AAFBF483E0CC33D838D654E6D4748
356753D3EF371FECA7F8B482995D61F8430328F872CE9E6DAC0580B0A73C727699C7F402C9526
09B21A3263A306C1E4DE7CE0A56893155771D173674350EE77&p_error_code=&p_submit_url=htt
ps%3A%2F%2Flogin.oracle.com%2Fsso%2Fauth&p_cancel_url=https%3A%2F
=%2Fsupport.us.oracle.com%2Foip&ssousername=&subscribername
167
part 2
REATE OR REPLACE PROCEDURE pcalled(TabX DBMS_SQL.VARCHAR2S) IS
BEGIN
-- do something with TabX from database B
null;
END;
168
Packagesmarked*arenewin9.2
PackageDescription
DBMS_ALERTNotifyadatabaseevent(asynchronous)
DBMS_APPLICATION_INFO
Registeranapplicationnamewiththedatabase
forauditingorperformancetracking.
Applicationinfocanbepushedinto
V$SESSION/V$SESSION_LONGOPS
DBMS_AQAddamessage(ofapredefinedobjecttype)ontoaqueue
ordequeueamessage.
DBMS_AQADMAdministeraqueueorqueuetable
formessagesofapredefinedobjecttype.
DBMS_AQELMConfigureAdvancedQueuing
asynchronousnotificationbyemailandHTTP.*
DBMS_BACKUP_RESTORE
NormalizefilenamesonWindowsNTplatforms.
DBMS_DDLAccessSQLDDLstatementsfromastoredprocedure,
providesspecialadministrationoperations
notavailableasDDLs.
DBMS_DEBUGImplementserversidedebuggersandprovideawayto
debugserversidePL/SQLprogramunits.
DBMS_DEFERUserinterfacetoareplicatedtransactionaldeferred
RPCfacility.RequirestheDistributedOption.
169
DBMS_DEFER_QUERY
Permitqueryingthedeferredremoteprocedurecalls(RPC)
queuedatathatisnotexposedthroughviews.
RequirestheDistributedOption.
DMBS_DEFER_SYS
Thesystemadministratorinterfacetoareplicated
transactionaldeferredRPCfacility.
RequirestheDistributedOption.
DBMS_DESCRIBE
Describetheargumentsofastoredprocedure
withfullnametranslationandsecuritychecking.
DBMS_DISTRIBUTED_TRUST_ADMIN
MaintaintheTrustedDatabaseList,whichisusedto
determineifaprivilegeddatabaselinkfromaparticular
servercanbeaccepted.
DBMS_ENCODEEncode???
DBMS_FGAFinegrainedsecurityfunctions.*
DMBS_FLASHBACK
Flashbacktoaversionofthedatabaseataspecified
wallclocktimeoraspecifiedsystemchange
number(SCN).*
DBMS_HS_PASSTHROUGH
SendpassthroughSQLstatementstononOraclesystems.
(viaHeterogeneousServices)
DBMS_IOTCreateatableintowhichreferencestothechainedrows
foranIndexOrganizedTablecanbeplacedusingthe
ANALYZEcommand.
DBMS_JOBSchedulePL/SQLproceduresthatyouwantperformedat
periodicintervals;alsothejobqueueinterface.
DBMS_LDAPFunctionsandprocedurestoaccessdatafrom
LDAPservers.*
DBMS_LIBCACHE
PreparesthelibrarycacheonanOracleinstanceby
extractingSQLandPL/SQLfromaremoteinstanceand
compilingthisSQLlocallywithoutexecution.*
DBMS_LOBGeneralpurposeroutinesforoperationsonOracleLarge
Object(LOBs)datatypesBLOB,CLOB(readwrite),
Oracle Complete PLSQL Reference
170
andBFILEs(readonly).
DBMS_LOCKRequest,convertandreleaselocksthroughOracleLock
Managementservices.
DBMS_LOGMNRFunctionstoinitializeandrunthelogreader.
DBMS_LOGMNR_CDC_PUBLISH
Identifynewdatathathasbeenaddedto,modified,or
removedfrom,relationaltablesandpublishthechanged
datainaformthatisusablebyanapplication.*
DBMS_LOGMNR_CDC_SUBSCRIBE
Viewandquerythechangedatathatwascaptured
andpublishedwiththeDBMS_LOGMNR_CDC_PUBLISHpackage.*
DBMS_LOGMNR_D
Querythedictionarytablesofthecurrentdatabase,and
createatextbasedfilecontainingtheircontents.
DBMS_METADATA
Retrievecompletedatabaseobjectdefinitions(metadata)
fromthedictionary.*
DBMS_MVIEWRefreshsnapshotsthatarenotpartofthesame
refreshgroupandpurgelogs.DBMS_SNAPSHOTisasynonym.
DBMS_OBFUSCATION_TOOLKIT
ProceduresforDataEncryptionStandards.
DBMS_ODCIGettheCPUcostofauserfunctionbasedonthe
elapsedtimeofthefunction.*
DBMS_OFFLINE_OG
PublicAPIsforofflineinstantiationofmastergroups.
DBMS_OFFLINE_SNAPSHOT
PublicAPIsforofflineinstantiationofsnapshots.
DBMS_OLAPProceduresforsummaries,dimensions,andqueryrewrites.
DBMS_ORACLE_TRACE_AGENT
ClientcallableinterfacestotheOracleTRACE
instrumentationwithintheOracle7Server.
DBMS_ORACLE_TRACE_USER
PublicaccesstotheOraclerelease7Server
OracleTRACEinstrumentationforthecallinguser.
171
DBMS_OUTLNInterfaceforproceduresandfunctionsassociatedwith
managementofstoredoutlines.SynonymouswithOUTLN_PKG
DBMS_OUTLN_EDIT
Editaninvoker'srightspackage.*
DBMS_OUTPUTAccumulateinformationinabuffersothatitcanbe
retrievedoutlater.
DBMS_PCLXUTILIntrapartitionparallelismforcreatingpartitionwise
localindexes.
DBMS_PIPEADBMSpipeservicewhichenablesmessagestobesent
betweensessions.
DBMS_PROFILERAProbeProfilerAPItoprofilePL/SQLapplications
andidentifyperformancebottlenecks.
Toinstallthisrunprofload.sql(asSYS)andproftab.sql(as
user)
DBMS_RANDOMAbuiltinrandomnumbergenerator.
Optionstogeneraterandomnumberswithinarangeor
distribution.
DBMS_RECTIFIER_DIFF
APIsusedtodetectandresolvedatainconsistencies
betweentworeplicatedsites.
DBMS_REDEFINITION
Reorganiseatable(changeit'sstructure)whileit's
stillonlineandinuse.*
DBMS_REFRESHCreategroupsofsnapshotsthatcanberefreshedtogether
toatransactionallyconsistentpointintime.
RequirestheDistributedOption.
DBMS_REPAIRRepairdatacorruption.
DBMS_REPCATAdministerandupdatethereplicationcatalogandenvironment.
RequirestheReplicationOption.
DBMS_REPCAT_ADMIN
Createuserswiththeprivilegesneededbythesymmetric
replicationfacility.RequirestheReplicationOption.
DBMS_REPCAT_INSTATIATE
Instantiatesdeploymenttemplates.
RequirestheReplicationOption.
172
DBMS_REPCAT_RGT
Defineandmaintainrefreshgrouptemplates.
RequirestheReplicationOption.
DBMS_REPUTIL
Generateshadowtables,triggers,andpackages
fortablereplication.
DBMS_RESOURCE_MANAGER
Maintainplans,consumergroups,andplandirectives;
alsoprovidessemanticssothatyoumaygrouptogether
changestotheplanschema.
DBMS_RESOURCE_MANAGER_PRIVS
Maintainprivilegesassociatedwithresourceconsumergroups.
DBMS_RESUMABLE
Suspendlargeoperationsthatrunoutofspaceorreachspace
limitsafterexecutingforalongtime,fixtheproblem,and
makethestatementresumeexecution.
DBMS_RLSRowlevelsecurityadministrativeinterface.
DBMS_ROWIDProcedurestocreaterowidsandtointerprettheircontents.
DBMS_SESSIONAccesstoSQLALTERSESSIONstatements,andothersession
information,fromstoredprocedures.
DBMS_SHARED_POOL
Keepobjectsinsharedmemory,sothattheywillnotbeaged
outwiththenormalLRUmechanism.
DBMS_SNAPSHOT
SynonymforDBMS_MVIEW
DBMS_SPACESegmentspaceinformationnotavailablethroughstandardSQL.
Howmuchspaceisleftbeforeanewextentgetsallocated?
HowmanyblocksareabovethesegmentsHighWaterMark?
Howmanyblocksareinthefreelist(s)
DBMS_SPACE_ADMIN
Tablespaceandsegmentspaceadministrationnotavailable
throughthestandardSQL.
DBMS_SQLUsedynamicSQLtoaccessthedatabase.
DBMS_STANDARD
Languagefacilitiesthathelpyourapplicationinteract
withOracle.
Oracle Complete PLSQL Reference
173
174
DBMS_STATSViewandmodifyoptimizerstatisticsgatheredfordatabase
objects.Inasmalltestenvironmentthisallowsfakingthestatstosimulate
runningalargeproductiondatabase.
DBMS_TRACERoutinestostartandstopPL/SQLtracing.
DBMS_TRANSACTION
AccesstoSQLtransactionstatementsfromstored
proceduresandmonitorstransactionactivities.
DBMS_TRANSFORM
Aninterfacetothemessageformattransformationfeatures
ofOracleAdvancedQueuing.*
DBMS_TTSCheckifatransportablesetisselfcontained.
DBMS_TYPESConstants,whichrepresentthebuiltinanduserdefined
types.
DBMS_URLOracleSpatialconnection_type??
DBMS_UTILITYUtilityroutines,Analyze,Time,Conversionetc.
DBMS_WMDatabaseWorkspaceManager(longtransactions)*
DBMS_XMLGENConverttheresultsofaSQLquerytoacanonicalXMLformat.
*
DMBS_XMLQUERY
DatabasetoXMLTypefunctionality.*
DBMS_XMLSAVE
XMLtodatabasetypefunctionality.*
DEBUG_EXTPROC
Debugexternalproceduresonplatformswithdebuggers
thatcanattachtoarunningprocess.
OUTLN_PKGSynonymofDBMS_OUTLN.
PLITBLMHandleindextableoperations.(Don'tcalldirectly)
SDO_CS,SDO_GEOM,SDO_LRS,SDO_MIGRATE,SDO_TUNE
seeOracleSpatialUser'sGuideandReference
SpatialpackagesareinstalledinuserMDSYSwithpublic
synonyms.
STANDARDTypes,exceptions,andsubprogramswhichare
Oracle Complete PLSQL Reference
175
availableautomaticallytoeveryPL/SQLprogram.
UTL_COLLCollectionlocatorsqueryandupdatefromaPL/SQLprogram.
UTL_ENCODEEncodeRAWdataintoastandardencodedformat
sothatthedatacanbetransportedbetweenhosts.*
UTL_FILEReadandwriteOStextfilesviaPL/SQL.
ArestrictedversionofstandardOSstreamfileI/O.
UTL_HTTPEnableHTTPcalloutsfromPL/SQLandSQLtoaccessdata
ontheInternetortocallOracleWebServerCartridges.
UTL_INADDRAproceduretosupportinternetaddressing.
UTL_PGConvertCOBOLnumericdataintoOraclenumbers
andconvertOraclenumbersintoCOBOLnumericdata.
UTL_RAWSQLfunctionsforRAWdatatypesthatconcat,
substr,etc.toandfromRAWS.
UTL_REFEnableaPL/SQLprogramtoaccessanobjectbyprovidinga
referencetotheobject.
UTL_SMTPSendSMTPemail.Themailerprogramneedstorunonthe
server,
butcanbeinvokedfromaclient.
UTL_TCPSimpleTCP/IPbasedcommunicationbetweenserversandthe
outsideworld.
UTL_URLEscapeandunescapemechanismforURLcharacters.
ANYDATATYPEAselfdescribingdatainstanceTYPE.
ANYDATASETTYPE
DescribeagivenTYPEplusasetofdatainstancesofthat
type.
ANYTYPETYPEContainsatypedescriptionofanypersistentSQLtype,
namedorunnamed,includingobjecttypesandcollectiontypes.
Seealso
EXECExecuteaPL/SQLpackage
DESCDescribeapackage
RelatedViews
ALL_ARGUMENTSUSER_ARGUMENTS
Oracle Complete PLSQL Reference
176
DBA_OBJECTSALL_OBJECTSUSER_OBJECTSSYS_OBJECTS
ALL_PROCEDURESUSER_PROCEDURES
DBA_SOURCEALL_SOURCEUSER_SOURCE
177
2.MorganLibraryvipvip
Version
LastModified
Comment
ActiveSessionHistory
Topic
11gR1
25Dec2007
AddBindingClause
11gR1
19Sep2007
ADDMDemo
11gR1
01Feb2008
ADRCommandInterpreter
11gR1
09Aug2008
AdvancedCompression
11gR1
09Nov2008
AdvancedQueuingDemo
11gR1
05Mar2008
AnalyticFunctions
11gR1
16Oct2007
Analyze
11gR1
09Jul2007
AnonymousBlock
11gR1
21Jul2007
AnydataDataType
11gR1
28Jul2007
ApplicationServer
10.1.2.0.2
07Feb2007
ApplicationServer
10.1.3.0.0
07Feb2007
ArchiveLogs
11gR1
06Oct2007
ArrayProcessing
11gR1
18Aug2008
Arrays:IndexbyBINARY_INTEGER
11gR1
07Jul2007
Arrays:IndexbyVARCHAR2
11gR1
07Jul2007
ASOFQueries
11gR1
14Sep2007
ASH
11gR1
25Dec2007
AssociateStatistics
11gR1
03Jan2008
AssociativeArrays
11gR1
07Jul2007
AuditVault
10.2.3
14Jun2008
Auditing
11gR1
06Aug2007
AUTHID(DEFINER)andCURRENT_USER)
11gR1
01Sep2008
AutomaticDiagnosticRepository
11gR1
28Sep2007
AutomaticWorkloadRepository
11gR1
17Aug2007
AutomaticWorkloadRepositoryReport
11gR1
17Aug2007
AutonomousTransactions
11gR1
30Jan2008
Autotrace
11gR1
08Jul2007
AWR
11gR1
17Aug2007
AWRReport
11gR1
17Aug2007
Backup&Recovery
10gR2
07Mar2006
B*TreeIndexes
11gR1
03Nov2008
BidirectionalCursor
11gR1
06Aug2007
BindVariables
11gR1
20Jul2007
BitmapIndexes
11gR1
03Nov2008
BitmapJoinIndexes
11gR1
03Nov2008
BLAST_CUR
11gR1
14Dec2007
BlockChangeTracking
11gR1
20Jul2007
BlockDump
11gR1
16Oct2007
BreakingOracle(demosfromUKOUG
presentation)
11gR1
03Dec2008
BSQFiles
11gR1
19Oct2007
BuiltinPackages
11gR1
06Oct2007
BufferPool
11gR1
15Jul2007
BulkBinding/BulkCollection
11gR1
17Aug2008
CASEFunction
11gR1
15Aug2007
CastFunction
11gR1
21Jul2007
ChainedRows
11gR1
30Jul2007
ChangeDataCaptureSync
11gR1
01Jun2008
ChangeDataCaptureHotLog
11gR1
01Jun2008
ChangeDataCaptureAutoLog
10gR2
178
CharacterSets
11gR1
30Jul2007
CharacterSetFunctions
11gR1
21Jul2007
CheckConstraint
11gR1
25Nov2007
ClusteringFactor
11gR1
12Aug2007
Clusters
11gR1
20Jul2007
Codd'sRules
07Jul2007
Collections
11gR1
30Nov2008
CollectionFunctions
11gR1
08Oct2007
ColoredSQL
11gR1
17Aug2007
COLUMN_VALUE
11gR1
25Aug2007
Commit
11gR1
07Jul2007
CommonTableExpressions
11gR1
10Feb2008
Compilation:InterpretedandNative
11gR1
09Aug2007
CompoundTriggers
11gR1
12Aug2007
CompositePartitioning
11gR1
25Nov2007
CompressedIndexes
11gR1
09Nov2008
CompressedTables
11gR1
09Nov2008
ConditionalCompilation
11gR1
25Nov2007
Conditions
11gR1
24Nov2007
ConnectBy
11gR1
26Nov2008
Constants
11gR1
21Aug2007
Constraints
11gR1
29Feb2008
ConsumerGroups
11gR1
25Dec2007
Contexts
11gR1
06Oct2007
ContinueStatement
11gR1
09Aug2007
ControlFiles
11gR1
16Nov2008
ControlStructures
11gR1
19Dec2007
ConversionFunctions
11gR1
04Apr2008
CreateDatabase
11gR1
01May2008
CreateSchema
11gR1
08Jul2007
CrossTabulationandPivotOperator
11gR1
02Oct2007
CRS_STAT
11gR1
07Feb2006
CTX_DDL
11gR1
24Dec2007
Cube
11gR1
06Oct2007
CursorSharing
11gR1
26Oct2007
Cursors&CursorLoops
11gR1
19Dec2007
DANGLING
11gR1
23Nov2007
DataControlLanguage(DCL)
11gR1
07Jul2007
DataDictionary
11gR1
02Sep2008
DataFiles
11gR1
07Oct2007
DataGuard
10gR2
30May2007
PhysicalOnly
DataIntegrity
11gR1
26Oct2007
DataMiningFunctions
11gR1
05Oct2007
DataPump(API)
11gR1
27Dec2007
DataPump(Executable)
11gR1
07Sep2008
DataTypes&SubTypes
11gR1
09Oct2007
Database
11gR1
01May2008
DatabaseLinks
11gR1
23Nov2007
DateFunctions
11gR1
08Nov2008
DBMSOBJG
11gR1
08Jul2007
DBMS_ADDM
11gR1
16Nov2007
DBMS_ADVANCED_REWRITE
11gR1
11Aug2007
DBMS_ADVISOR
11gR1
01Feb2008
DBMS_ALERT
11gR1
08Jul2007
DBMS_AMD
11gR1
08Jul2007
DBMS_APPLICATION_INFO
11gR1
06Jan2008
179
DBMS_APPLY_ADM
11gR1
12Dec2007
incomplete
DBMS_AQ
11gR1
05Nov2007
DBMS_AQADM
11gR1
06Apr2008
DBMS_AQELM
11gR1
08Oct2007
DBMS_ASSERT
11gR1
12Aug2007
DBMS_ASYNCRPC_PUSH
11gR1
08Jul2007
DBMS_AUTO_TASK
11gR1
24Aug2007
DBMS_AUTO_TASK_ADMIN
11gR1
10Oct2007
DBMS_AUTO_TASK_EXPORT
11gR1
10Oct2007
DBMS_AUTO_TASK_IMMEDIATE
11gR1
10Oct2007
DBMS_AW
11gR1
15Feb2008
DBMS_AW_STATS
11gR1
15Feb2008
DBMS_BACKUP_RESTORE
11gR1
28May2008
DBMS_CAPTURE_ADM
11gR1
17Oct2007
DBMS_CDC_PUBLISH
11gR1
20Sep2008
DBMS_CDC_SUBSCRIBE
11gR1
18Oct2007
DBMS_CDC_UTILITY
11gR1
20Sep2008
DBMS_CHANGE_NOTIFICATION
11gR1
07Apr2008
DBMS_CLUSTDB
11gR1
08Jul2007
DBMS_COMPARISON
11gR1
30Oct2008
DBMS_CONNECTION_POOL
11gR1
12Aug2007
DBMS_CQ_NOTIFICATIONS
11gR1
25Dec2007
DBMS_CRYPTO
11gR1
11Aug2007
DBMS_CRYPTO_TOOLKIT_TYPES
11gR1
29Jul2007
DBMS_CSX_ADMIN
11gR1
13Sep2007
DBMS_CUBE
11gR1
15Feb2008
DBMS_DATAPUMP
11gR1
27Dec2007
DBMS_DBLINK
11gR1
29Jul2007
DBMS_DB_VERSION
11gR1
25Nov2007
DBMS_DBVERIFY
11gR1
23Aug2007
DBMS_DDL
11gR1
18Mar2008
DBMS_DDL_INTERNAL
11gR1
18Aug2007
DBMS_DESCRIBE
11gR1
18Dec2007
DBMS_DG
11gR1
24Aug2007
DBMS_DIMENSION
11gR1
04Dec2007
DBMS_DISTRIBUTED_TRUST_ADMIN
11gR1
16Mar2008
DBMS_DRS
11gR1
14Dec2007
DBMS_EDITIONS_UTILITIES
11gR1
13Sep2007
DBMS_EPG
11gR1
18Mar2008
DBMS_ERRLOG
11gR1
24Aug2007
DBMS_EXPFIL
11gR1
25Dec2007
DBMS_EXTENDED_TTS_CHECKS
11gR1
07Dec2007
DBMS_FBT
11gR1
26Sep2008
DBMS_FEATURE_USAGE
11gR1
17Aug2007
DBMS_FEATURE_USAGE_REPORT
11gR1
17Aug2007
DBMS_FGA
11gR1
24Dec2007
DBMS_FILE_TRANSFER
11gR1
09Aug2007
DBMS_FLASHBACK
11gR1
14Sep2007
DBMS_FREQUENT_ITEMSET
11gR1
18Mar2008
DBMS_HA_ALERTS
11gR1
14Aug2007
DBMS_HA_ALERTS_PRVT
11gR1
14Aug2007
DBMS_HM
11gR1
24Sep2007
DBMS_HPROF
11gR1
23Aug2007
DBMS_I_INDEX_UTL
11gR1
14Mar2008
DBMS_INDEX_UTL
11gR1
09Aug2007
DBMS_INDEXING
11gR1
09Aug2007
180
DBMS_IOT
11gR1
17Aug2007
DBMS_IR
11gR1
13Sep2007
DBMS_JOB
11gR1
24Aug2007
SeeDBMS_SCHEDULERtoo
DBMS_LCR
11gR1
29Jul2007
DBMS_LDAP
11gR1
13Dec2007
DBMS_LOB
11gR1
25Sep2007
DBMS_LOBUTIL
11gR1
26Sep2007
DBMS_LOCK
11gR1
18Aug2007
DBMS_LOGMNR
11gR1
25Dec2007
DBMS_LOGMNR_D
11gR1
24Apr2008
DBMS_LOGSTDBY
11gR1
17Sep2007
DBMS_MANAGEMENT_PACKS
11gR1
26Sep2007
DBMS_METADATA
11gR1
29Jul2008
DBMS_METADATA_UTIL
11gR1
11Apr2008
DBMS_MONITOR
11gR1
01Feb2008
DBMS_MVIEW
11gR1
04Dec2007
DBMS_NETWORK_ACL_ADMIN
11gR1
26Dec2007
DBMS_NETWORK_ACL_UTILITY
11gR1
09Aug2007
DBMS_OBFUSCATION_TOOLKIT
DeprecatedSeeDBMS_CRYPTO
DBMS_OBJECT_UTILS
11gR1
17Dec2007
DBMS_ODCI
11gR1
09Aug2007
DBMS_OUTLN
11gR1
30Mar2008
DBMS_OUTLN_EDIT
11gR1
30Mar2008
DBMS_OUTPUT
11gR1
10Jul2007
DBMS_PCLXUTIL
11gR1
10Jul2007
DBMS_PREDICTIVE_ANALYTICS
11gR1
13Aug2007
DBMS_PREPROCESSOR
11gR1
13Aug2007
DBMS_PROFILER
11gR1
20Aug2007
DBMS_PROPAGATION_ADM
11gR1
30Mar2008
DBMS_RANDOM
11gR1
10Jul2007
SeeDBMS_CRYPTOtoo
DBMS_RECTIFIER_DIFF
11gR1
30Oct2008
DBMS_RECTIFIER_FRIENDS
11gR1
10Jul2007
DBMS_REDEFINITION
11gR1
29Mar2008
DBMS_REFRESH
11gR1
20Aug2007
DBMS_REGISTRY
11gR1
17Aug2008
DBMS_REGISTRY_SERVER
11gR1
24Dec2007
DBMS_REGXDB
11gR1
20Aug2007
DBMS_REPAIR
11gR1
24Dec2007
DBMS_REPUTIL
11gR1
20Sep2007
DBMS_RESOURCE_MANAGER
11gR1
25Dec2007
DBMS_RESOURCE_MANAGER_PRIVS
11gR1
24Nov2007
DBMS_RESULT_CACHE
11gR1
02Dec2007
DBMS_RESUMABLE
11gR1
24Nov2007
DBMS_RLS
11gR1
17May2008
DBMS_ROWID
11gR1
26Nov2007
DBMS_SCHEDULER
11gR1
19May2008
DBMS_SCHEMA_COPY
10gR2
06May2006
Droppedfrom11.1.0.6
DBMS_SERVER_ALERT
11gR1
07Apr2008
DBMS_SERVER_TRACE
11gR1
30Mar2008
DBMS_SERVICE
11gR1
22Dec2007
DBMS_SESSION
11gR1
14Sep2007
DBMS_SESSION_STATE
11gR1
14Dec2007
DBMS_SHARED_POOL
11gR1
20Nov2007
DBMS_SNAPSHOT
11gR1
07Sep2007
DBMS_SPACE
11gR1
23Aug2007
DBMS_SPACE_ADMIN
11gR1
23Aug2007
181
DBMS_SPM
11gR1
13Sep2007
DBMS_SQL
11gR1
14Apr2008
DBMS_SQLDIAG
11gR1
28Sep2007
DBMS_SQLHASH
11gR1
29Aug2007
DBMS_SQLJTYPE
11gR1
19Aug2007
DBMS_SQLPA
11gR1
13Sep2007
DBMS_SQLPLUS_SCRIPT
11gR1
06Dec2007
DBMS_SQLTUNE
11gR1
02Dec2008
DBMS_STAT_FUNCS
11gR1
01Apr2008
DBMS_STATS
11gR1
27Nov2008
DBMS_STORAGE_MAP
11gR1
19Aug2007
DBMS_STREAMS
11gR1
01Apr2008
DBMS_STREAMS_ADM
11gR1
01Apr2008
DBMS_STREAMS_AUTH
11gR1
18Dec2007
DBMS_SUPPORT
11gR1
29Jan2008
DBMS_SYSTEM
11gR1
28Mar2008
DBMS_TDB
11gR1
24Dec2007
DBMS_TRACE
11gR1
29Jan2008
DBMS_TRANSACTION
11gR1
03Nov2007
DBMS_TRANSFORM
11gR1
04Apr2008
DBMS_TTS
11gR1
07Apr2008
DBMS_TYPES
11gR1
29Jul2007
DBMS_UNDO_ADV
11gR1
19Aug2007
DBMS_UTILITY
11gR1
04Nov2008
DBMS_WARNING
11gR1
06Jan2008
DBMS_WARNING_INTERNAL
11gR1
15Jul2007
DBMS_WLM
11gR1
19Sep2007
DBMS_WMSynonym
10gR2
17Dec2005
DBMS_WORKLOAD_CAPTURE
11gR1
07Sep2007
DBMS_WORKLOAD_REPLAY
11gR1
07Sep2007
DBMS_WORKLOAD_REPOSITORY
11gR1
17Aug2007
DBMS_XA
11gR1
13Aug2007
DBMS_XDBUTIL_INT
11gR1
26Dec2007
DBMS_XMLGEN
11gR1
29Mar2008
DBMS_XPLAN
11gR1
28Apr2008
DBMS_ZHELP
11gR1
13Jul2007
DBMS_ZHELP_IR
11gR1
13Jul2007
DBV(databaseverify)
11gR1
05Oct2007
DCLStatements
11gR1
29Jul2007
DDLEventTriggers
11gR1
18Mar2008
Deadlocks
11gR1
08Dec2007
DECODEFunction
11gR1
15Aug2007
DeferrableConstraints
11gR1
21Jun2008
DeleteStatement
11gR1
12Aug2007
DescendingIndexes
11gR1
03Nov2008
DICOM
11gR1
24Sep2008
Dimensions
11gR1
02Dec2008
Directories
11gR1
29Jul2007
DisassociateStatistics
11gR1
03Jan2008
DIUTIL
11gR1
11Jul2007
DMLStatements
11gR1
07Jul2007
DumpingOracle
11gR1
10Apr2008
DynamicPerformanceViews
11gR1
28Aug2008
11.5.10
29Sep2007
Editions
11gR1
11Aug2007
EncryptedTablespaces
11gR1
30Sep2007
EBusinessSuite
182
EnvironmentVariables
11gR1
30Mar2008
Errors
11gR1
30Jul2007
Events
11gR1
04Sep2008
ExceptionHandling
11gR1
01Dec2008
ExcludedNodes
11gR1
27Sep2008
Exists
11gR1
08Jul2007
ExplainPlan
11gR1
16Aug2007
Export
11gR1
27Oct2007
10g
28Apr2005
ExternalTables
11gR1
10Feb2008
FilesOfInterest
11gR1
25Sep2008
FineGrainedAccessControl(FGAC)
11gR1
17May2008
FineGrainedAccessControlDemo
11gR1
17Nov2008
FineGrainedAuditing(FGA)
11gR1
24Dec2007
Flashback
11gR1
14Aug2007
FlashbackArchive
11gR1
15Oct2007
FlashbackDatabase
11gR1
14Aug2007
FlashbackDrop
11gR1
14Aug2007
FlashbackQuery
11gR1
14Aug2007
FlashbackTable
11gR1
14Aug2007
FlashbackTransaction
11gR1
14Aug2007
FlashbackVersion
11gR1
14Aug2007
FOLLOWSClause(Triggers)
11gR1
12Aug2007
FORUPDATE
11gR1
07Jul2007
FORALL
11gR1
17Aug2008
ForeignKeyConstraint
11gR1
29Feb2008
10g
24Jan2005
FunctionBasedIndexes
11gR1
03Nov2008
Functions:Deterministic
11gR1
27Sep2008
Functions:Miscellaneous
11gR1
19Aug2007
Functions:UserDefined
11gR1
10Jan2008
FusionMiddleWareApplicationServer
10.1.2.0.2
02Jan2007
FusionMiddleWareApplicationServer
10.1.3.0.0
02Jan2007
GlobalHints
10gR2
22Aug2006
GlobalPartitionedIndexes
11gR1
25Nov2007
GlobalTemporaryTables
11gR1
01Nov2007
GlobalizationToolkit
11gR1
10Oct2007
10.2.0.4
01Jan2008
GROUPBYClauses
11gR1
22Oct2007
GROUPID
11gR1
22Oct2007
GROUPINGSETS
11gR1
22Oct2007
GuaranteedRestorePoint
11gR1
29Jul2007
GV$Views
11gR1
01Nov2007
HashPartitioning
11gR1
25Nov2007
HAVINGClauses
11gR1
22Oct2007
HeapTables
11gR1
26Nov2008
Hints
10gR2
08Apr2008
Histograms
11gR1
02Mar2008
HostEnvironment
11gR1
02Mar2008
HTP
11gR1
30Mar2008
IFStatements
11gR1
06Aug2007
Import
11gR1
27Oct2007
Indexes
11gR1
03Nov2008
IndexOrganizedTables(IOT)
11gR1
09Nov2007
InitSIDDotOra
11gR1
13Nov2008
InlineViews
11gR1
02Mar2008
ExpressionFiltering
FORMs
GridControl
183
InsertStatements
11gR1
29Oct2007
InsteadOfTriggers
11gR1
08Nov2008
InstringFunction
11gR1
27Jul2007
IntermediaAudio
11gR1
25Aug2008
IntermediaVideo
11gR1
25Aug2008
Interval
11gR1
20Dec2007
IntervalPartitioning
11gR1
25Nov2007
InvisibleIndexes
11gR1
03Nov2008
InvitedNodes
11gR1
27Sep2008
ISNOTOFTYPE
11gR1
17Aug2008
ISOFONLY
11gR1
17Aug2008
ISOFTYPE
11gR1
17Aug2008
JavaFunctions
11gR1
20Mar2008
Joins
11gR1
16Aug2008
KeepPool
11gR1
15Jul2007
KillingSessions
11gR1
08Feb2008
LargeObjects
11gR1
18Oct2008
LCR$_XML_SCHEMA
11gR1
18Oct2008
Licensing
10gR2
30Sep2006
Licensing
11gR1
08Feb2008
LinuxInstallationforOracleRDBMS
10gR2
16Jan2008
LinuxInstallationforOracleRDBMS
11gR1
16Jan2008
ListPartitioning
11gR1
25Nov2007
Listener
11gR1
03Mar2008
LOBCompression
11gR1
29Jul2007
LOBs
11gR1
18Oct2008
LocalPartitionedIndexes
11gR1
25Nov2007
Locks
11gR1
09Feb2008
LogFiles
11gR1
27Nov2007
LONGToCLOB
11gR1
09Feb2008
Loops
11gR1
19Dec2007
LTBuiltinPackage
10gR2
17Dec2005
MaterializedViews
11gR1
06Jun2008
MergeStatement
11gR1
12Aug2007
24Apr2007
MicrosoftSQLServer2005Comparison
MicrosoftVistaEnterpriseandOracle
21Apr2007
10g
09Dec2006
MultimediaAudio
11gR1
25Aug2008
MultimediaVideo
11gR1
25Aug2008
Multiset
11gR1
21Jul2007
MultiversionConcurrencyControl(MVCC)
11gR1
11Nov2007
NativeCompilation
11gR1
09Aug2007
NativeDynamicSQL(NDS)
11gR1
20Feb2008
NestedLoops
11gR1
24Dec2007
NestedTables
11gR1
02Dec2008
NestedTableConstraints
11gR1
23Nov2007
NetAppFilerHead
11gR1
10Oct2008
NetServices
11gR1
13Nov2008
ModelClause
NetworkApplianceFilerManagement
16Jan2007
NID(changeinternaldatabaseidentifier)
11gR1
05Oct2007
NoSegmentIndexes
11gR1
03Nov2008
NOCOPY
11gR1
14Sep2007
28May2007
NOWAIT
11gR1
07Jul2007
NumericFunctions
11gR1
16Oct2008
NULL
11gR1
14Sep2007
Normalization
184
NULLPruning
11gR1
04Dec2007
ObjectPrivileges
11gR1
24Dec2007
10g
17Nov2004
ObjectTables:SeeNestedTablesandVarrays
11gR1
20Sep2008
OBJECT_ID
11gR1
25Aug2007
Operators:Builtin
11gR1
16Aug2008
Operators:UserDefined
11gR1
19Sep2007
ORA_HASH
11gR1
13Jul2007
ORA_NAME_LIST_T
11gR1
22Dec2007
ORA_ROWSCN
11gR1
25Aug2007
ORADEBUG
11gR1
25Sep2008
ORADIM
10gR2
23Nov2005
ORAPWD
11gR1
13Dec2007
ORDERBYClause
11gR1
22Oct2007
Outlines
11gR1
30Mar2008
OUTLN_EDIT_PKG
11gR1
30Mar2008
OUTLN_PKG
11gR1
30Mar2008
OWA
11gR1
18Dec2007
OWA_CUSTOM
11gR1
15Sep2007
OWA_CX
11gR1
15Sep2007
OWA_OPT_LOCK
11gR1
15Sep2007
OWA_SEC
11gR1
15Sep2007
OWA_TEXT
11gR1
15Sep2007
OWA_UTIL
11gR1
09Apr2008
Packages:UserDefined
11gR1
17Oct2008
ParentCorrelationName
11gR1
06Aug2007
Partitioning(tablesandindexes)
11gR1
25Nov2007
PartitioningbyReference
11gR1
25Nov2007
PartitionbySystem
11gR1
29Dec2007
PartitioningEliminationDemo
11gR1
25Nov2007
PartitioningPruningDemo
11gR1
25Nov2007
PasswordFile
11gR1
19Nov2008
PipelinedTableFunctions
11gR1
17Dec2007
Pivot
11gR1
02Oct2007
PLSHPROF
11gR1
23Aug2007
PLSQL_CCFLAGS
11gR1
25Nov2007
PL/Scope
11gR1
02Feb2008
PL/SQLObjectSettings
11gR1
09Aug2007
PL/SQLWarnings
11gR1
16Jan2008
PRAGMAS
11gR1
27Jan2008
PRAGMAAutonomous_Transaction
11gR1
30Jan2008
PRAGMAException_Init
11gR1
02Oct2007
PRAGMAInline
11gR1
02Oct2007
ObjectRelationalViews
PRAGMASeriallyReusable
11gR1
02Oct2007
Primary
KeyConstraint
11gR1
25Nov2007
Procedures
11gR1
17Dec2007
ProductUserProfiles
11gR1
17Oct2007
Profiles
11gR1
20Dec2007
Protocol.ora
11gR1
27Sep2008
DeprecatedSee:SQLNET.ORA
PseudoColumns
11gR1
25Aug2007
PublicSynonyms
11gR1
21Jul2007
PurgeRecyclebin
11gR1
14Aug2007
PurgeTable
11gR1
14Sep2007
QuoteDelimiters
11gR1
14Sep2007
RAC
11gR1
15Oct2008
RAID
11gR1
09Feb2008
185
RangePartitioning
11gR1
25Nov2007
Rank
11gR1
02Mar2008
RDA
10gR2
05Oct2006
RealApplicationClusters
11gR1
15Oct2008
RecycleBin
11gR1
30Dec2007
RecyclePool
11gR1
15Jul2007
Redo
11gR1
01Oct2007
RefCursors
11gR1
05Dec2007
ReferentialConstraint
11gR1
29Feb2008
ReferentialPartition
11gR1
25Nov2007
RegularExpressions
11gR1
09Feb2008
RemoteDiagnosticAgent
10gR2
05Oct2006
ReplaceBuiltinFunction
11gR1
07Aug2007
RestorePoint
11gR1
29Jul2007
ResultCache(SQL)
11gR1
02Dec2007
ResultCache(PL/SQL)
11gR1
02Dec2007
ResumableTransactions_
11gR1
03Nov2007
ReverseKeyIndexes
11gR1
03Nov2008
RewriteEquivalence
11gR1
11Aug2007
RMAN
10gR2
26Apr2006
incomplete
RMANDemo
11gR1
20Oct2008
Roles
11gR1
03Oct2007
Rollback
11gR1
07Jul2007
Rollup
11gR1
06Oct2007
ROWDEPENDENCIES
11gR1
25Aug2007
ROWID
11gR1
25Aug2007
RowLevelSecurity
11gR1
17May2008
ROWNUM
11gR1
25Aug2007
16Apr2004
Deprecated
SampleClause
11gR1
29Oct2008
Savepoint
11gR1
07Jul2007
Schema
11gR1
08Jul2007
SecureFiles
11gR1
19Jul2008
Security
11gR1
27May2008
Segments
11gR1
18Oct2008
SelectStatement
11gR1
29Oct2008
SelectIntoStatement
11gR1
29Oct2008
Sequences
11gR1
11Aug2007
Services
11gR1
22Dec2007
Sessions
11gR1
11Sep2008
SetOperators
11gR1
19Sep2007
SETTRANSACTION
11gR1
15Dec2007
SHOW
11gR1
24Dec2007
SKIPLOCKED
11gR1
07Jul2007
SLEEP
11gR1
25Aug2007
Snapshots
11gR1
21Nov2007
SortedHashClusters
11gR1
20Jul2007
Soundex
11gR1
14Sep2007
SPFile
11gR1
13Nov2008
SQLInjection
10gR2
05Mar2007
SQL*Loader
10gR2
17Dec2007
SQL*Plus
11gR1
16Dec2007
SQLNET.ORA
11gR1
27Sep2008
Standard
11gR1
01Dec2008
Starting&StoppingTheDatabase
11gR1
05Apr2008
StartupParameters
11gR1
13Nov2008
RuleBasedOptimizer(RBO)
186
StoredOutlines
11gR1
30Mar2008
StoredProcedures
11gR1
17Dec2007
19Oct2006
StreamsDemo1
10gR2
07Jun2007
StreamsDemo2
10gR2
07Jun2007
StreamsDemo3
10gR2
07Jun2007
StringFunctions
11gR1
16Oct2008
Subqueries
11gR1
08Jul2007
SubstringFunction
11gR1
27Jul2007
26Jan2007
Synonyms
11gR1
21Jul2007
SYS_CONTEXTBuiltinFunction
11gR1
19Aug2007
SYS_GUID
11gR1
09Dec2006
SYS_OP_COMBINED_HASH
11gR1
18Aug2008
SYS_OP_DESCEND
11gR1
25Aug2007
SYS_OP_DISTINCT
11gR1
25Aug2007
SYS_OP_GUID
11gR1
25Aug2007
SYS_OP_LBID
11gR1
25Aug2007
SYS_OP_MAP_NONNULL
11gR1
25Aug2007
SYS_OP_RAWTONUM
11gR1
25Aug2007
SYS_OP_RPB
11gR1
25Aug2007
SYS_OP_TOSETID
11gR1
25Aug2007
SYS_TYPEID
11gR1
25Aug2007
System
11gR1
20Sep2008
SystemEvents
11gR1
18Mar2008
SystemEventTriggers
11gR1
06Jan2008
SystemPrivileges
11gR1
08Jan2008
SystemStatistics
11gR1
08Apr2008
TableCollectionExpression
11gR1
30Nov2008
Tables
11gR1
26Nov2008
TableTriggers
11gR1
13Feb2008
Tablespaces
11gR1
23Oct2008
TablespaceGroups
11gR1
22Nov2007
Timestamp
11gR1
20Dec2007
TimeZones
11gR1
20Dec2007
TKPROF
11gR1
04Sep2008
TotalRecall
11gR1
09Aug2007
TraceFileIdentifier
11gR1
19Feb2008
Tracing
11gR1
04Sep2008
TransactionBackout
11gR1
16Oct2007
Transactions
11gR1
15Dec2007
TranslateBuiltinFunction
11gR1
07Aug2007
TransparentDataEncryption
11gR1
29Oct2007
TransportableTablespaces
11gR1
21Jun2008
Truncate(Tables&Partitions)
11gR1
30Jul2007
Tuning
11gR1
15Aug2008
Types
11gR1
02Dec2008
UndoTablespace
11gR1
20Nov2008
UndocumentedOracle
11gR1
17Aug2008
09Apr2008
UniqueConstraint
11gR1
25Nov2007
Unpivot
11gR1
02Oct2007
UpdateStatement
11gR1
02Nov2007
USERENV
11gR1
25Aug2007
SeeSYS_CONTEXT
Users
11gR1
22Apr2008
USER_LOCK
11gR1
27Jul2007
Storage
SybaseASE15.0.1Comparison
UNIX/vi
187
Utilities
11gR1
19Nov2008
UTL_COLL
11gR1
29Jul2007
UTL_COMPRESS
11gR1
29Jul2007
UTL_ENCODE
11gR1
10Oct2007
UTL_FILE
11gR1
18Mar2008
UTL_GDK
11gR1
10Oct2007
UTL_HTTP
11gR1
23Jan2008
UTL_I18N
11gR1
27Jul2007
UTL_INADDR
11gR1
07Jul2007
UTL_LMS
11gR1
07Jul2007
UTL_MAIL
11gR1
11Aug2007
UTL_MATCH
11gR1
10Oct2007
UTL_RAW
11gR1
10Oct2007
UTL_RECOMP
11gR1
30Jul2007
UTL_REF
11gR1
31Mar2008
UTL_SMTP
11gR1
18Dec2007
Deprecated:SeeUTL_MAIL
UTL_SPADV
11gR1
18Mar2008
UTL_TCP
11gR1
12Aug2007
UTL_URL
11gR1
11Aug2007
UTL_XML
11gR1
01Apr2008
Variables
11gR1
21Aug2007
VARRAYS
11gR1
01Apr2008
VERSIONSBETWEEN
11gR1
25Aug2007
Views
11gR1
26Oct2007
VirtualColumns
11gR1
18Oct2007
VirtualColumnPartitioning
11gR1
25Nov2007
VirtualIndexes
11gR1
03Nov2008
VirtualPrivateDatabase
11gR1
17May2008
V$Views
11gR1
01Nov2007
WAIT
11gR1
07Jul2007
WhereClause
11gR1
29Jul2007
Wildcards
11gR1
14Sep2007
WITHClause
11gR1
10Feb2008
WM_CONCAT
11gR1
03Dec2007
WorkspaceManager
10gR2
17Dec2005
WPG_DOCLOAD
11gR1
17Dec2007
Wrap
11gR1
05Oct2007
WriteCLOBtofile
11gR1
01Feb2008
XMLFunctions
11gR1
14Sep2007
XMLQuery
11gR1
27Jan2008
XMLTable
11gR1
26Jan2008
XMLTYPE
11gR1
14Jul2007
XMLTables
11gR1
26Jan2008
XMLSCHEMA_NAME_PRESENT
11gR1
17Jun2008
188
3.builtinPKG
OracleBuiltinPackages
Version11.1
189
CommonName
Owner
Undocumented
SYS
BaselineStatistics
DBSNMP
Undocumented
PackageName
BLAST_CUR
BSLN
BSLN_INTERNAL
ORDSYS CARTRIDGE
ContextAdministration
Last
Modified
14Dec2007
CTX_ADM
Context
CTX_CATSEARCH
Context
CTX_CLS
Context
CTX_CONTAINS
Context
CTX_DDL
24Dec2007
Context
CTX_DOC
Context
CTXSYS CTX_MATCHES
Context
CTX_OUTPUT
Context
CTX_QUERY
Context
CTX_REPORT
CTX_THES
Context
CTX_ULEXER
Context
CTX_XPCONTAINS
CWM2_OLAP_INSTALLER
ContextThesaurus
ValidatesOLAPInstallation
SYS
ExportSupportforSQLTuningBase
DBMSHSXP
Internal
ReplicationObjectGenerator
DBMSOBJG
08Jul2007
GeneratePartitionedObjectStorage
DBMSOBJG2
Internal
DBMSOBJGWRAPPER
Internal
GenerateDDL
DBMSOBJG_DP
Internal
Undocumented
DBMSZEXP_SYSPKGGRNT
Internal
SYS
GenerateandrollbackDDL
ADDM
SYS
DBMS_ADDM
16Nov2007
QueryEquivalence
SYS
DBMS_ADVANCED_REWRITE
11Aug2007
ADDM
SYS
DBMS_ADVISOR
01Feb2008
AsynchronousMessaging
SYS
DBMS_ALERT
08Jul2007
MoveOLAPCatalog
SYS
DBMS_AMD
08Jul2007
Contexts/Security
SYS
DBMS_APPCTX
Internal
RegisterCodeForTracking
SYS
DBMS_APPLICATION_INFO
06-Jan2008
StreamsApplyProcess
DBMS_APPLY_ADM
StreamsApplyProcessInternalProcesses
StreamsApplyProcessErrorHandling
SYS
StreamsInternalNewin11g
StreamsInternal
SYS
AdvancedQueuingInterface
AdvancedQueuingAdministrator
UsedbyDBMS_AQADMtomanageStreamsAQ
Internal
DBMS_APPLY_ERROR
Internal
DBMS_APPLY_POSITION
Internal
DBMS_APPLY_PROCESS
Internal
DBMS_AQ
05Nov2007
DBMS_AQADM
06Apr2008
DBMS_AQADM_SYS
AdvancedQueuing
DBMS_AQADM_SYSCALLS
Email&HTTPAsynchronousNotification
DBMS_AQELM
SecureAccessToJMSInterfaces
DBMS_AQIN
JMSInterface
DBMS_AQJMS
JMSInterfaceInternal
12Dec2007
DBMS_APPLY_ADM_INTERNAL
DBMS_AQJMS_INTERNAL
Internal
08Oct2007
*
Internal
AdvancedQueuing
DBMS_AQ_BQVIEW
AdvancedQueuing
DBMS_AQ_EXP_CMT_TIME_TABLES
AdvancedQueuing
DBMS_AQ_EXP_HISTORY_TABLES
DBMS_AQ_EXP_INDEX_TABLES
AdvancedQueuing
AdvancedQueuing
Oracle Complete PLSQL Reference
190
191
192
SQL> ed;
Wrote file afiedt.buf
1 create or replace procedure rep1
2 is
3 v1 number(5);
4 v2 varchar2(20);
5 v3 varchar2(20);
6 begin
7 select deptno , dnaem , loc
8 into v1 , v2 , v3
9 from dept;
10 dbms_output.put_line(v1 || ' ' || v2 || ' ' || v3);
11 end
12* ;
13 /
Warning: Procedure created with compilation errors.
SQL> show err;
Errors for PROCEDURE REP1:
LINE/COL ERROR
-------- ----------------------------------------------------------------7/1
PL/SQL: SQL Statement ignored
7/17 PL/SQL: ORA-00904: "DNAEM": invalid identifier
SQL> ed;
Wrote file afiedt.buf
1 create or replace procedure rep1
2 is
3 v1 number(5);
4 v2 varchar2(20);
5 v3 varchar2(20);
6 begin
7 select deptno , dname , loc
8 into v1 , v2 , v3
9 from dept;
10 dbms_output.put_line(v1 || ' ' || v2 || ' ' || v3);
11 end
12* ;
SQL> /
Procedure created.
SQL> exex rep1;
SP2-0042: unknown command "exex rep1" - rest of line ignored.
SQL> exec rep1;
BEGIN rep1; END;
*
ERROR at line 1:
Oracle Complete PLSQL Reference
193
194
17 end
18* ;
19 /
Procedure created.
SQL> exec rep1;
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
PL/SQL procedure successfully completed.
SQL> ed;
Wrote file afiedt.buf
1 create or replace procedure rep1
2 is
3 v1 number(5);
4 v2 varchar2(20);
5 v3 varchar2(20);
6 v_counter number(5) := 10;
7 vmax number(5);
8 begin
9 select max(deptno) into vmax from dept;
10 LOOP
11 select deptno , dname , loc
12 into v1 , v2 , v3
13 from dept
14 where deptno = v_counter;
15 dbms_output.put_line(v1 || ' ' || v2 || ' ' || v3);
16 v_counter := v_counter + 10 ;
17 exit when v_counter = vmax+1;
18 end loop;
19 end
20* ;
21 /
Procedure created.
SQL> exec rep1;
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
BEGIN rep1; END;
*
ERROR at line 1:
ORA-01403: no data found
ORA-06512: at "SCOTT.REP1", line 11
Oracle Complete PLSQL Reference
195
ORA-06512: at line 1
SQL> ed;
Wrote file afiedt.buf
1 create or replace procedure rep1
2 is
3 v1 number(5);
4 v2 varchar2(20);
5 v3 varchar2(20);
6 v_counter number(5) := 10;
7 vmax number(5);
8 begin
9 select max(deptno) into vmax from dept;
10 LOOP
11 select deptno , dname , loc
12 into v1 , v2 , v3
13 from dept
14 where deptno = v_counter;
15 dbms_output.put_line(v1 || ' ' || v2 || ' ' || v3);
16 v_counter := v_counter + 10 ;
17 exit when v_counter > vmax;
18 end loop;
19 end
20* ;
SQL> /
Procedure created.
SQL> exec rep1;
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
PL/SQL procedure successfully completed.
SQL> select * from dept;
DEPTNO DNAME
LOC
---------- -------------- ------------10 ACCOUNTING NEW YORK
20 RESEARCH
DALLAS
30 SALES
CHICAGO
40 OPERATIONS BOSTON
SQL> insert into dept values(50,'a','a');
1 row created.
SQL> ed;
Oracle Complete PLSQL Reference
196
197
30 SALES CHICAGO
40 OPERATIONS BOSTON
50 a
60 a a
70 a a
PL/SQL procedure successfully completed.
SQL> create or replace procedure rep1
2 is
3 v1 number(5);
4 v2 varchar2(20);
5 v3 varchar2(20);
6 v_counter number(5) := 10;
7 vmax number(5);
8 begin
9 select max(deptno) into vmax from dept;
10 for i in 1..7 loop
11 select deptno , dname , loc
12 into v1 , v2 , v3
13 from dept
14 where deptno = v_counter;
15 dbms_output.put_line(v1 || ' ' || v2 || ' ' || v3);
16 v_counter := v_counter + 10 ;
17
18 end loop;
19 end
20 ;
21 /
Procedure created.
SQL> exec rep1;
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
50 a
60 a a
70 a a
PL/SQL procedure successfully completed.
SQL> select * from dept;
DEPTNO DNAME
LOC
---------- -------------- ------------10 ACCOUNTING NEW YORK
20 RESEARCH
DALLAS
30 SALES
CHICAGO
40 OPERATIONS BOSTON
50
a
Oracle Complete PLSQL Reference
198
60 a
70 a
a
a
7 rows selected.
SQL> create or replace procedure rep1
2 is
3 v1 number(5);
4 v2 varchar2(20);
5 v3 varchar2(20);
6 v_counter number(5) := 10;
7 x number(5);
8 begin
9
10 select count(*) into x from dept;
11 for i in 1..x loop
12 select deptno , dname , loc
13 into v1 , v2 , v3
14 from dept
15 where deptno = v_counter;
16 dbms_output.put_line(v1 || ' ' || v2 || ' ' || v3);
17 v_counter := v_counter + 10 ;
18
19 end loop;
20 end
21 ;
22 /
Procedure created.
SQL> exec rep1;
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
50 a
60 a a
70 a a
PL/SQL procedure successfully completed.
SQL> delete from dept where deptno > 50;
2 rows deleted.
SQL> commit;
Commit complete.
SQL> select * from dept;
DEPTNO DNAME
Oracle Complete PLSQL Reference
LOC
199
200
201
202
Procedure created.
SQL> exec rep1;
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
PL/SQL procedure successfully completed.
SQL> select * from dept;
DEPTNO DNAME
LOC
---------- -------------- ------------10 ACCOUNTING NEW YORK
20 RESEARCH
DALLAS
30 SALES
CHICAGO
40 OPERATIONS BOSTON
50
a
SQL> create or replace procedure rep1
2 is
3 v1 number(5);
4 v2 varchar2(20);
5 v3 varchar2(20);
6 v_counter number(5) := 10;
7 x number(5);
8 begin
9 select max(deptno) into x from dept;
10 while v_counter < x loop
11 select deptno , dname , loc
12 into v1 , v2 , v3
13 from dept
14 where deptno = v_counter;
15 dbms_output.put_line(v1 || ' ' || v2 || ' ' || v3);
16 v_counter := v_counter + 10 ;
17 end loop;
18 end;
19 /
Procedure created.
SQL> ed;
Wrote file afiedt.buf
1
2
3
4
5
6
7
203
8 begin
9 select max(deptno) into x from dept;
10 while v_counter <= x loop
11 select deptno , dname , loc
12 into v1 , v2 , v3
13 from dept
14 where deptno = v_counter;
15 dbms_output.put_line(v1 || ' ' || v2 || ' ' || v3);
16 v_counter := v_counter + 10 ;
17 end loop;
18* end;
SQL> /
Procedure created.
SQL> exec rep1;
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
50 a
PL/SQL procedure successfully completed.
SQL> insert into dept values (60,'b','b');
1 row created.
SQL> commit;
Commit complete.
SQL> exec rep1;
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
50 a
60 b b
PL/SQL procedure successfully completed.
SQL> select * from emp;
EMPNO ENAME JOB
MGR HIREDATE
SAL
COMM DEPTNO
---------- ---------- --------- ---------- -------- ---------- ---------- ---------7369 SMITH
CLERK
7902 17/12/80
800
20
7499 ALLEN
SALESMAN
7698 20/02/81
1600
300
30
7521 WARD
SALESMAN
7698 22/02/81
1250
500
30
7566 JONES
MANAGER
7839 02/04/81
2975
20
7654 MARTIN SALESMAN
7698 28/09/81
1250
1400
30
7698 BLAKE MANAGER
7839 01/05/81
2850
30
Oracle Complete PLSQL Reference
204
7782 CLARK
MANAGER
7839 09/06/81
2450
7788 SCOTT ANALYST
7566 19/04/87
3000
7839 KING
PRESIDENT
17/11/81
5000
7844 TURNER SALESMAN
7698 08/09/81
1500
7876 ADAMS
CLERK
7788 23/05/87
1100
7900 JAMES
CLERK
7698 03/12/81
950
7902 FORD
ANALYST
7566 03/12/81
3000
7934 MILLER CLERK
7782 23/01/82
1300
14 rows selected.
SQL> create or replace procedure rep1
2 is
3 v1 number(5);
4 v2 varchar2(20);
5 v3 varchar2(20);
6
7 begin
8
9 for i in 1..14 loop
10
11 select empno , ename , job
12 into v1 , v2 , v3
13 from emp;
14 dbms_output.put_line(v1 || ' ' || v2 || ' ' || v3);
15
16 end loop;
17 end;
18 /
Procedure created.
SQL> exec rep1;
BEGIN rep1; END;
*
ERROR at line 1:
ORA-01422: exact fetch returns more than requested number of rows
ORA-06512: at "SCOTT.REP1", line 11
ORA-06512: at line 1
SQL> select empno , ename , job from emp;
EMPNO ENAME JOB
---------- ---------- --------7369 SMITH
CLERK
7499 ALLEN
SALESMAN
7521 WARD
SALESMAN
7566 JONES
MANAGER
7654 MARTIN SALESMAN
7698 BLAKE MANAGER
Oracle Complete PLSQL Reference
205
10
20
10
0
30
20
30
20
10
7782 CLARK
MANAGER
7788 SCOTT ANALYST
7839 KING
PRESIDENT
7844 TURNER SALESMAN
7876 ADAMS
CLERK
7900 JAMES
CLERK
7902 FORD
ANALYST
7934 MILLER CLERK
14 rows selected.
SQL> create or replace procedure rep1
2 is
3 v1 number(5);
4 v2 varchar2(20);
5 v3 varchar2(20);
6
7 begin
8
9 for i in (select empno , ename , job from emp) loop
10 select empno , ename , job
11 into v1 , v2 , v3
12 from emp;
13 dbms_output.put_line(I.v1 || ' ' || I.v2 || ' ' || I.v3);
14
15 end loop;
16 end
17 ;
18 /
Warning: Procedure created with compilation errors.
SQL> SHOW ERR;
Errors for PROCEDURE REP1:
LINE/COL ERROR
-------- ----------------------------------------------------------------13/1 PL/SQL: Statement ignored
13/24 PLS-00302: component 'V1' must be declared
SQL> ED;
Wrote file afiedt.buf
1 create or replace procedure rep1
2 is
3 v1 number(5);
4 v2 varchar2(20);
5 v3 varchar2(20);
6 begin
7 for i in (select empno , ename , job from emp) loop
8 select empno , ename , job
9 into v1 , v2 , v3
10 from emp;
Oracle Complete PLSQL Reference
206
207
4 v2 varchar2(20);
5 v3 varchar2(20);
6 begin
7 for i in (select empno , ename , job from emp) loop
8 select empno , ename , job
9 into v1,v2,v3
10 from emp;
11 dbms_output.put_line(i.v1 || ' ' || i.v2 || ' ' || i.v3);
12 end loop;
13 end
14* ;
SQL> /
Warning: Procedure created with compilation errors.
SQL> show err;
Errors for PROCEDURE REP1:
LINE/COL ERROR
-------- ----------------------------------------------------------------11/1 PL/SQL: Statement ignored
11/24 PLS-00302: component 'V1' must be declared
SQL>
SQL>
SQL> ed;
Wrote file afiedt.buf
1 create or replace procedure rep1
2 is
3 v1 number(5);
4 v2 varchar2(20);
5 v3 varchar2(20);
6 begin
7 for i in (select empno , ename , job from emp) loop
8 dbms_output.put_line(i.v1 || ' ' || i.v2 || ' ' || i.v3);
9 end loop;
10 end
11* ;
SQL> /
Warning: Procedure created with compilation errors.
SQL> show err;
Errors for PROCEDURE REP1:
LINE/COL ERROR
-------- ----------------------------------------------------------------8/1
PL/SQL: Statement ignored
8/24 PLS-00302: component 'V1' must be declared
SQL>
SQL> ed;
Wrote file afiedt.buf
Oracle Complete PLSQL Reference
208
209
2 is
3 v1 number(5);
4 v2 varchar2(20);
5 v3 varchar2(20);
6 begin
7 for i in (select empno , ename , job from emp) loop
8 v1 := i.empno;
9 v2 := i.ename;
10 v3 := i.job;
11 dbms_output.put_line(v1 || ' ' || v2 || ' ' || v3);
12 end loop;
13 end
14* ;
SQL> /
Procedure created.
SQL> exec rep1;
7369 SMITH CLERK
7499 ALLEN SALESMAN
7521 WARD SALESMAN
7566 JONES MANAGER
7654 MARTIN SALESMAN
7698 BLAKE MANAGER
7782 CLARK MANAGER
7788 SCOTT ANALYST
7839 KING PRESIDENT
7844 TURNER SALESMAN
7876 ADAMS CLERK
7900 JAMES CLERK
7902 FORD ANALYST
7934 MILLER CLERK
PL/SQL procedure successfully completed.
SQL>
SQL>
SQL> spool off;
210
211
212
213
5
6 v1 number(5);
7 v2 varchar2(20);
8 v3 varchar2(20);
9
10
11 begin
12 open omar;
13
14 fetch omar into v1,v2,v3;
15 dbms_output.put_line(v1 || ' ' || v2 || ' ' || v3 );
16
17 close omar;
18
19 end ;
20 /
Warning: Procedure created with compilation errors.
SQL> show err;
Errors for PROCEDURE REP1:
LINE/COL ERROR
-------- ----------------------------------------------------------------4/16 PL/SQL: SQL Statement ignored
4/39 PL/SQL: ORA-00904: "JOB": invalid identifier
SQL> ed;
Wrote file afiedt.buf
1 create or replace procedure rep1
2 is
3 cursor omar is select empno , ename , job from emp;
4 v1 number(5);
5 v2 varchar2(20);
6 v3 varchar2(20);
7 begin
8 open omar;
9 fetch omar into v1,v2,v3;
10 dbms_output.put_line(v1 || ' ' || v2 || ' ' || v3 );
11 close omar;
12* end ;
13 /
Procedure created.
SQL> exec rep1;
7369 SMITH CLERK
PL/SQL procedure successfully completed.
214
SQL> ed;
Wrote file afiedt.buf
1 create or replace procedure rep1
2 is
3 cursor omar is select empno , ename , job from emp;
4 v1 number(5);
5 v2 varchar2(20);
6 v3 varchar2(20);
7 begin
8 open omar;
9 for i in 1..14 loop
10 fetch omar into v1,v2,v3;
11 dbms_output.put_line(v1 || ' ' || v2 || ' ' || v3 );
12 end loop;
13 close omar;
14* end ;
15 /
Procedure created.
SQL> exec rep1;
7369 SMITH CLERK
7499 ALLEN SALESMAN
7521 WARD SALESMAN
7566 JONES MANAGER
7654 MARTIN SALESMAN
7698 BLAKE MANAGER
7782 CLARK MANAGER
7788 SCOTT ANALYST
7839 KING PRESIDENT
7844 TURNER SALESMAN
7876 ADAMS CLERK
7900 JAMES CLERK
7902 FORD ANALYST
7934 MILLER CLERK
PL/SQL procedure successfully completed.
SQL> ed;
Wrote file afiedt.buf
1 create or replace procedure rep1
2 is
3 cursor omar is select empno , ename , job, sal from emp;
4 v1 number(5);
5 v2 varchar2(20);
6 v3 varchar2(20);
7 v4 number(5);
8 begin
9 open omar;
10 for i in 1..14 loop
Oracle Complete PLSQL Reference
215
216
217
218
13 end loop;
14 close omar;
15* end ;
SQL> /
Procedure created.
SQL> exec rep1;
7369 SMITH CLERK 800
7900 JAMES CLERK 950
7876 ADAMS CLERK 1100
7521 WARD SALESMAN 1250
7654 MARTIN SALESMAN 1250
PL/SQL procedure successfully completed.
SQL> ed;
Wrote file afiedt.buf
1 create or replace procedure rep1
2 is
3 cursor omar is select empno , ename , job , sal from emp where deptno = 10;
4 v1 number(5);
5 v2 varchar2(20);
6 v3 varchar2(20);
7 v4 number(5);
8 begin
9 open omar;
10 for i in 1..14 loop
11 fetch omar into v1,v2,v3,v4;
12 dbms_output.put_line(v1 || ' ' || v2 || ' ' || v3 ||' ' || v4 );
13 end loop;
14 close omar;
15* end ;
SQL> /
Procedure created.
SQL> exec rep1;
7782 CLARK MANAGER 2450
7839 KING PRESIDENT 5000
7934 MILLER CLERK 1300
7934 MILLER CLERK 1300
7934 MILLER CLERK 1300
7934 MILLER CLERK 1300
7934 MILLER CLERK 1300
7934 MILLER CLERK 1300
7934 MILLER CLERK 1300
7934 MILLER CLERK 1300
7934 MILLER CLERK 1300
7934 MILLER CLERK 1300
7934 MILLER CLERK 1300
Oracle Complete PLSQL Reference
219
220
DEPTNO
13 end loop;
14 close omar;
15* end ;
SQL> /
Procedure created.
SQL> exec rep1;
7782 CLARK MANAGER 2450
7839 KING PRESIDENT 5000
7934 MILLER CLERK 1300
PL/SQL procedure successfully completed.
SQL> ed;
Wrote file afiedt.buf
1 create or replace procedure rep1
2 is
3 cursor omar is select empno , ename , job , sal from emp where deptno = 10;
4 v1 number(5);
5 v2 varchar2(20);
6 v3 varchar2(20);
7 v4 number(5);
8 x number(5);
9 begin
10 select count(*) into x from emp where deptno = 10;
11 open omar;
12 for i in 1..x loop
13 fetch omar into v1,v2,v3,v4;
14 dbms_output.put_line(v1 || ' ' || v2 || ' ' || v3 ||' ' || v4 );
15 end loop;
16 close omar;
17* end ;
SQL> /
Procedure created.
SQL> exec rep1;
7782 CLARK MANAGER 2450
7839 KING PRESIDENT 5000
7934 MILLER CLERK 1300
PL/SQL procedure successfully completed.
SQL> update emp set deptno = 10 where ename = 'FORD';
1 row updated.
SQL> commit;
Commit complete.
Oracle Complete PLSQL Reference
221
222
223
224
225
21 /
Procedure created.
SQL> exec rep1(10);
fe bayanat estana 7ageb7alak
7782 CLARK MANAGER 2450
fe bayanat estana 7ageb7alak
7839 KING PRESIDENT 5000
fe bayanat estana 7ageb7alak
7902 FORD ANALYST 3000
fe bayanat estana 7ageb7alak
7934 MILLER CLERK 1300
PL/SQL procedure successfully completed.
SQL> ed;
Wrote file afiedt.buf
1 create or replace procedure rep1(m number)
2 is
3 cursor omar is select empno , ename , job , sal from emp where deptno = m;
4 v1 number(5);
5 v2 varchar2(20);
6 v3 varchar2(20);
7 v4 number(5);
8 x number(5);
9 begin
10 select count(*) into x from emp where deptno = m;
11 open omar;
12 for i in 1..x loop
13 fetch omar into v1,v2,v3,v4;
14 if omar%NOTfound then
15 dbms_output.put_line('mafesh bayanat mesh 7ageb7alak');
16 end if;
17 dbms_output.put_line(v1 || ' ' || v2 || ' ' || v3 ||' ' || v4 );
18 end loop;
19 close omar;
20* end ;
SQL> /
Procedure created.
SQL> exec rep1(70);
PL/SQL procedure successfully completed.
SQL> exec rep1(40);
PL/SQL procedure successfully completed.
SQL> ed;
Oracle Complete PLSQL Reference
226
227
1400
30
30
14 rows selected.
SQL> create or replace procedure rep1(m number)
2 is
3 cursor omar is select empno , ename , job , sal from emp where deptno = m;
4 v1 number(5);
5 v2 varchar2(20);
6 v3 varchar2(20);
7 v4 number(5);
8 x number(5);
9 begin
10 select count(*) into x from emp where deptno = m;
11 open omar;
12 for i in 1..x+1 loop
13 fetch omar into v1,v2,v3,v4;
14 if omar%NOTfound then
15 dbms_output.put_line('mafesh bayanat mesh 7ageb7alak');
16 end if;
17 dbms_output.put_line(v1 || ' ' || v2 || ' ' || v3 ||' ' || v4 );
18 end loop;
19 close omar;
20 end ;
21 /
Procedure created.
SQL> ed;
Wrote file afiedt.buf
1 create or replace procedure rep1(m number)
2 is
3 cursor omar is select empno , ename , job , sal from emp where deptno = m;
4 v1 number(5);
5 v2 varchar2(20);
6 v3 varchar2(20);
7 v4 number(5);
8 x number(5);
9 begin
10 select count(*) into x from emp where deptno = m;
11 open omar;
12 for i in 1..x+5 loop
13 fetch omar into v1,v2,v3,v4;
14 if omar%NOTfound then
15 dbms_output.put_line('mafesh bayanat mesh 7ageb7alak');
16 end if;
17 dbms_output.put_line(v1 || ' ' || v2 || ' ' || v3 ||' ' || v4 );
18 end loop;
19 close omar;
20* end ;
Oracle Complete PLSQL Reference
228
SQL> /
Procedure created.
SQL> exec rep1(10);
7782 CLARK MANAGER 2450
7839 KING PRESIDENT 5000
7902 FORD ANALYST 3000
7934 MILLER CLERK 1300
mafesh bayanat mesh 7ageb7alak
7934 MILLER CLERK 1300
mafesh bayanat mesh 7ageb7alak
7934 MILLER CLERK 1300
mafesh bayanat mesh 7ageb7alak
7934 MILLER CLERK 1300
mafesh bayanat mesh 7ageb7alak
7934 MILLER CLERK 1300
mafesh bayanat mesh 7ageb7alak
7934 MILLER CLERK 1300
PL/SQL procedure successfully completed.
SQL> ed;
Wrote file afiedt.buf
1 create or replace procedure rep1(m number)
2 is
3 cursor omar is select empno , ename , job , sal from emp where deptno = m;
4 v1 number(5);
5 v2 varchar2(20);
6 v3 varchar2(20);
7 v4 number(5);
8 x number(5);
9 begin
10 select count(*) into x from emp where deptno = m;
11 open omar;
12 for i in 1..x loop
13 fetch omar into v1,v2,v3,v4;
14 dbms_output.put_line(v1 || ' ' || v2 || ' ' || v3 ||' ' || v4 );
15 end loop;
16 dbms_output.put_line(omar%rowcount || '' || 'records');
17 close omar;
18* end ;
SQL> /
Procedure created.
229
230
231