Vous êtes sur la page 1sur 16

BEGIN

DBMS_OUTPUT.PUT_LINE('Welcome to PL/SQL');
END;
/
Declare
myname varchar2(12):='Sundeep';
Begin
dbms_output.put_line('My Name is : '||myname);
myname:='Yashwanth';
dbms_output.put_line('My Name is : '||myname);
End;
/
set serveroutput on
Declare
event varchar2(20);
Begin
--event:='Father's day';
event:=q'!Father's day!';
dbms_output.put_line('3rd Sunday in June is : '|| event);
event:=q'[Mother's day]';
dbms_output.put_line('2rd Sunday in May is : '|| event);
End;
/
SET SERVEROUTPUT ON
SET VERIFY OFF
Declare
a number(3);
b number(3);
r number(3);
Begin
a:=&a;
b:=&b;
r:=a+b;
dbms_output.put_line('Addition is : '||r);
End;
/
Declare
name1 varchar2(12) Default 'John';
num Constant number(3):=50;
name2 varchar2(12);
--name3 varchar2(12) NOT NULL ; -- error
name3 varchar2(12) NOT NULL:='Scott';
Begin
dbms_output.put_line('Name 1 : '||name1) ;
dbms_output.put_line('Name 2 : '||name2) ;
dbms_output.put_line('Name 3 : '||name3) ;
dbms_output.put_line('Max Value : '||num) ;
name1:='Steven';
name2:='Allen';
name3:='Miller';
--num:=60; -- error
dbms_output.put_line('Name 1 : '||name1) ;
dbms_output.put_line('Name 2 : '||name2) ;
dbms_output.put_line('Name 3 : '||name3) ;
dbms_output.put_line('Max Value : '||num) ;
name1:=NULL;
dbms_output.put_line('Name 1 : '||name1) ;
--name3:=NULL; -- error
End;
/
Declare
a number(3);
b number(3);
r number(3);
Begin
a:=12;
b:=15;
r:=a+b;
dbms_output.put_line('Addition is : '||r);
End;
/
Variable desig varchar2(12)
Begin
Select job into :desig from emp where empno=&eno;
End;
/
Print desig
Select * From Emp Where Job = :desig;
variable emp_sal number
set Autoprint on
Begin
Select Sal into :emp_sal From Emp Where Empno=&eno;
End;
/

Set Serveroutput on
Set Verify OFF
Declare
empname emp.ename%type;
empjob emp.job%type;
Begin
Select Ename,Job INTO empname,empjob From Emp Where Empno=&empno;
dbms_output.put_line('Employee Name : '||empname);
dbms_output.put_line('Employee Job : '||empjob);
End;
/
variable emp_sal number
set Autoprint on
set Verify off
ACCEPT num PROMPT 'Please enter a valid employee number: '
Declare
eno number(5):=#
Begin
Select Sal into :emp_sal From Emp Where Empno=eno;
End;
/

SET SERVEROUTPUT ON
SET VERIFY OFF
DEFINE empname=JONES
DECLARE
desig Varchar2(12);
BEGIN
SELECT job INTO desig From Emp Where ename='&empname';
DBMS_OUTPUT.PUT_LINE('Job : '||desig);
END;
/
set serveroutput on
Declare
x number(3):=10;
Begin
Declare
y number(3):=20;
Begin
dbms_output.put_line('Value of x : '||x);
dbms_output.put_line('Value of y : '||y);
End;
dbms_output.put_line('Value of x : '||x);
--dbms_output.put_line('Value of y : '||y);
End;
/
-- scope and visibility
set serveroutput on
Declare
father_name varchar2(12):='Patrick';
date_of_birth date:='20-Apr-1972';
Begin
Declare
child_name varchar2(12):='Mike';
date_of_birth date:='12-Dec-2002';
Begin
dbms_output.put_line('Father''s Name : '||father_name);
dbms_output.put_line('Date of Birth '||date_of_birth);
dbms_output.put_line('Child''s Name : '||child_name);
dbms_output.put_line('Date of Birth '||date_of_birth);
End;
dbms_output.put_line('Date of Birth '||date_of_birth);
End;
/
-- Qualify an Identifier
set serveroutput on
Begin <<outer>>
Declare
father_name varchar2(12):='Patrick';
date_of_birth date:='20-Apr-1972';
Begin
Declare
child_name varchar2(12):='Mike';
date_of_birth date:='12-Dec-2002';
Begin
dbms_output.put_line('Father''s Name : '||father_name);
dbms_output.put_line('Date of Birth '||outer.date_of_birth);
dbms_output.put_line('Child''s Name : '||child_name);
dbms_output.put_line('Date of Birth '||date_of_birth);
End;
End;
End outer;
/
Begin
-- Create Table Emp_Table As Select * From Emp;
EXECUTE IMMEDIATE 'Create Table Emp_Table As Select * From Emp';
End;
/
SET SERVEROUTPUT ON
SET VERIFY OFF
DECLARE
name emp.ename%type;
desig emp.job%type;
BEGIN
-- Queries must return only one row
SELECT ename,job
INTO name,desig
FROM emp
WHERE empno=&eno;
DBMS_OUTPUT.PUT_LINE('Employee Name : '||name);
DBMS_OUTPUT.PUT_LINE('Employee Job : '||desig);
END;
/

Set Serveroutput on
Set Verify OFF
Declare
--ename varchar2(12);
empname varchar2(12);
Begin
Select Ename INTO empname From Emp Where Empno=&empno;
dbms_output.put_line('Employee Name : '||empname);
End;
/
SET SERVEROUTPUT ON
SET VERIFY OFF
ACCEPT dptno PROMPT 'Enter Department Number : '
DECLARE
sum_sal number(10,2);
dptno number(3):=&dptno;
BEGIN
SELECT sum(sal)
INTO sum_sal
FROM emp
WHERE deptno=dptno;
DBMS_OUTPUT.PUT_LINE('Total Salary : '||sum_sal);
END;
/
SET SERVEROUTPUT ON
BEGIN
INSERT INTO student
values(&sno,'&sname','&course','&doj',&fees);
COMMIT;
END;
/

SET SERVEROUTPUT ON
BEGIN
UPDATE student
set course='Oracle'
where sno=&sno;
COMMIT;
END;
/
SET SERVEROUTPUT ON
BEGIN
DELETE from student
where sno=&sno;
END;
/
SET SERVEROUTPUT ON
SET VERIFY OFF
DECLARE
x number(3);
r number(3);
BEGIN
x:=&x;
r:=mod(x,2);
IF r=0 THEN
DBMS_OUTPUT.PUT_LINE('Even Number');
ELSE
DBMS_OUTPUT.PUT_LINE('Odd Number');
END IF;
END;
/
SET SERVEROUTPUT ON
SET VERIFY OFF
DECLARE
a number(3):=&a;
b number(3):=&b;
ch number(3):=&ch;
r number(4);
BEGIN
IF ch=1 THEN
r:=a+b;
DBMS_OUTPUT.PUT_LINE('Addition : '||r);
ELSIF ch=2 THEN
r:=a-b;
DBMS_OUTPUT.PUT_LINE('Subtraction : '||r);
ELSIF ch=3 THEN
r:=a*b;
DBMS_OUTPUT.PUT_LINE('Multiplication : '||r);
ELSIF ch=4 THEN
r:=a/b;
DBMS_OUTPUT.PUT_LINE('Division : '||r);
ELSIF ch=5 THEN
r:=mod(a,b);
DBMS_OUTPUT.PUT_LINE('Remainder : '||r);
ELSE
DBMS_OUTPUT.PUT_LINE('Invalid Choice... ');
END IF;
END;
/

SET SERVEROUTPUT ON
SET VERIFY OFF
ACCEPT num PROMPT 'Enter Day Of The Week : '
DECLARE
n number(3):=&num;
day varchar2(20);
BEGIN
day:=
CASE n
WHEN 1 THEN 'Sunday'
WHEN 2 THEN 'Monday'
WHEN 3 THEN 'Tuesday'
WHEN 4 THEN 'Wednesday'
WHEN 5 THEN 'Thursday'
WHEN 6 THEN 'Friday'
WHEN 7 THEN 'Saturday'
ELSE 'Invalid Input'
END;
DBMS_OUTPUT.PUT_LINE(day);
END;
/
SET SERVEROUTPUT ON
SET VERIFY OFF
DECLARE
mgrid number(5):=&mgrid;
totemp number(5);
BEGIN
CASE mgrid
WHEN 7788 THEN
SELECT count(*) INTO totemp FROM emp where mgr=mgrid;
WHEN 7566 THEN
SELECT count(*) INTO totemp FROM emp where mgr=mgrid;
ELSE
totemp:=0;
END CASE;
DBMS_OUTPUT.PUT_LINE('There are '|| totemp||' Employees Working under '|
|mgrid);
END;
/
SET SERVEROUTPUT ON
SET VERIFY OFF
DECLARE
i number(3);
n number(3):=&n;
BEGIN
i:=1;
LOOP
DBMS_OUTPUT.PUT_LINE(i);
i:=i+1;
EXIT WHEN i>n;
END LOOP;
END;
/
SET SERVEROUTPUT ON
SET VERIFY OFF
DECLARE
i number(3);
n number(3):=&n;
BEGIN
i:=1;
WHILE i<=n
LOOP
DBMS_OUTPUT.PUT_LINE(i);
i:=i+1;
END LOOP;
END;
/
SET SERVEROUTPUT ON
SET VERIFY OFF
DECLARE
n number(3):=&n;
BEGIN
FOR i IN 1.. n
LOOP
DBMS_OUTPUT.PUT_LINE(i);
END LOOP;
END;
/
SET SERVEROUTPUT ON
SET VERIFY OFF
DECLARE
n number(3):=&n;
BEGIN
FOR i IN REVERSE 1.. n
LOOP
DBMS_OUTPUT.PUT_LINE(i);
END LOOP;
END;
/
SET SERVEROUTPUT ON
SET VERIFY OFF
DECLARE
str varchar2(12);
BEGIN
<<outer_loop>>
FOR i IN 1.. 20
LOOP
str:=null;
<<inner_loop>>
FOR j IN 1.. 5
LOOP
str:=concat(str,j);
EXIT outer_loop WHEN i=6;
END LOOP;
DBMS_OUTPUT.PUT_LINE(str);
END LOOP;
END;
/
SET SERVEROUTPUT ON
SET VERIFY OFF
DECLARE
TYPE student_record IS RECORD(
sno_id Number(6),
sname varchar2(12),
course varchar2(12));
stud_rec student_record;
BEGIN
stud_rec.sno_id:=&sno;
stud_rec.sname:='&sname';
stud_rec.course:='&course';
INSERT INTO STUDENT VALUES stud_rec;
END;
/
SET SERVEROUTPUT ON
SET VERIFY OFF
DECLARE
emp_rec emp%ROWTYPE;
eno emp.empno%TYPE;
BEGIN
eno:=&eno;
SELECT * INTO emp_rec FROM emp
WHERE empno=eno;
DBMS_OUTPUT.PUT_LINE('Employee Name : '||emp_rec.ename);
DBMS_OUTPUT.PUT_LINE('Employee Job : '||emp_rec.job);
DBMS_OUTPUT.PUT_LINE('Employee Salary : '||emp_rec.sal);
END;
/

SET SERVEROUTPUT ON
SET VERIFY OFF
DECLARE
stud_rec Student%ROWTYPE;
BEGIN
stud_rec.sno:=&sno;
SELECT * INTO stud_rec FROM Student
WHERE sno=stud_rec.sno;
stud_rec.course:='&course';
UPDATE STUDENT SET ROW = stud_rec
WHERE sno=stud_rec.sno;
END;
/
SET SERVEROUTPUT ON
DECLARE
TYPE enames_table IS TABLE OF
emp.ename%Type
INDEX BY PLS_INTEGER;
names enames_table;
m number(3);
n number(3);
BEGIN
names(1):='Kiran';
names(2):='Manoj';
names(3):='Harish';
names(4):='Anil';
names(5):='Sunil';
FOR i IN 1.. 5
LOOP
DBMS_OUTPUT.PUT_LINE(names(i));
END LOOP;
DBMS_OUTPUT.PUT_LINE('Number of Values : '||names.COUNT);
DBMS_OUTPUT.PUT_LINE('First Name in : '||names.FIRST);
DBMS_OUTPUT.PUT_LINE('Last Name in : '||names.LAST);
n:=&n;
IF names.EXISTS(n) THEN
DBMS_OUTPUT.PUT_LINE(names(n));
ELSE
DBMS_OUTPUT.PUT_LINE('No Record Found...');
END IF;
names.DELETE(5);
DBMS_OUTPUT.PUT_LINE('Availabe Names.....');
FOR i IN 1.. 4
LOOP
DBMS_OUTPUT.PUT_LINE(names(i));
END LOOP;
END;
/
SET SERVEROUTPUT ON
SET VERIFY OFF
DECLARE
x number(3):=&x;
y number(3):=&y;
r number(3);
BEGIN
r:=x/y;
DBMS_OUTPUT.PUT_LINE('Division : '||r);
END;
/

SET SERVEROUTPUT ON
SET VERIFY OFF
DECLARE
x number(3);
y number(3);
r number(3);
BEGIN
x:=&x;
y:=&y;
r:=x/y;
DBMS_OUTPUT.PUT_LINE('Division : '||r);
EXCEPTION
WHEN ZERO_DIVIDE THEN
DBMS_OUTPUT.PUT_LINE('Dividor should not be zero...');
DBMS_OUTPUT.PUT_LINE('SQL Code : '||sqlcode);
DBMS_OUTPUT.PUT_LINE('SQL Error : '||sqlerrm);
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('SQL Error : '||sqlerrm);
END;
/

SET SERVEROUTPUT ON
SET VERIFY OFF
DECLARE
emp_rec emp%ROWTYPE;
BEGIN
SELECT * INTO emp_rec FROM Emp WHERE empno=&eno;
DBMS_OUTPUT.PUT_LINE('Name : '||emp_rec.ename);
DBMS_OUTPUT.PUT_LINE('Job : '||emp_rec.job);
DBMS_OUTPUT.PUT_LINE('Salary : '||emp_rec.sal);
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('Not Such Record Found.....');
DBMS_OUTPUT.PUT_LINE('SQL Error : '||sqlerrm);
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('SQL Error : '||sqlerrm);
END;
/

SET SERVEROUTPUT ON
SET VERIFY OFF
DECLARE
stud_rec Student%ROWTYPE;
BEGIN
stud_rec.sno:=&sno;
stud_rec.sname:='&sname';
stud_rec.course:='&course';
INSERT INTO STUDENT VALUES stud_rec;
DBMS_OUTPUT.PUT_LINE('Record Added Succesfully....');
EXCEPTION
WHEN DUP_VAL_ON_INDEX THEN
DBMS_OUTPUT.PUT_LINE('Duplicate Value Found.....');
DBMS_OUTPUT.PUT_LINE('SQL Error : '||sqlerrm);
END;
/

SET SERVEROUTPUT ON
SET VERIFY OFF
DECLARE
dptno number(3):=&dptno;
desig emp.job%TYPE;
BEGIN
SELECT Job INTO desig FROM Emp WHERE Deptno=dptno;
EXCEPTION
WHEN TOO_MANY_ROWS THEN
DBMS_OUTPUT.PUT_LINE('More Than One Record Found.....');
DBMS_OUTPUT.PUT_LINE('SQL Error : '||sqlerrm);
END;
/

SET SERVEROUTPUT ON
SET VERIFY OFF
DECLARE
name varchar2(12);
age number(3);
AGE_EXCP Exception;
BEGIN
name :='&name';
age :=&age;
IF age>=18 THEN
DBMS_OUTPUT.PUT_LINE('Get Your Voter ID Card.....');
ELSE
RAISE AGE_EXCP;
END IF;
EXCEPTION
WHEN AGE_EXCP THEN
DBMS_OUTPUT.PUT_LINE('Age must be greater than 18');
DBMS_OUTPUT.PUT_LINE('SQL Code : '||sqlcode);
END;
/

SET SERVEROUTPUT ON
SET VERIFY OFF
DECLARE
ocrs varchar2(12):='&ocrs';
ncrs varchar2(12):='&ncrs';
Invalid_Course EXCEPTION;
BEGIN
UPDATE Student Set Course=ncrs
Where Course=ocrs;
IF SQL%NOTFOUND THEN
RAISE Invalid_Course;
END IF;
DBMS_OUTPUT.PUT_LINE('Records Updated : '||SQL%ROWCOUNT);
COMMIT;
EXCEPTION
WHEN Invalid_Course THEN
DBMS_OUTPUT.PUT_LINE('No Such Course Found....');
END;
/

SET SERVEROUTPUT ON
SET VERIFY OFF
DECLARE
CURSOR emp_cur IS SELECT * FROM Emp;
Emp_Rec Emp%ROWTYPE;

BEGIN
OPEN emp_cur;
LOOP
FETCH emp_cur INTO Emp_Rec;
EXIT WHEN emp_cur%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(emp_rec.ename||' IS A '||emp_rec.job);
END LOOP;
CLOSE emp_cur;
END;
/
SET SERVEROUTPUT ON
SET VERIFY OFF
DECLARE
CURSOR emp_cur IS SELECT * FROM Emp WHERE Deptno=&deptno;
Emp_Rec Emp%ROWTYPE;
BEGIN
OPEN emp_cur;
LOOP
FETCH emp_cur INTO Emp_Rec;
EXIT WHEN emp_cur%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(emp_rec.ename||' Working As '||emp_rec.job|
|' In Department '||emp_rec.deptno );
END LOOP;
CLOSE emp_cur;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('Not Such Record Found.....');
DBMS_OUTPUT.PUT_LINE('SQL Error : '||sqlerrm);
END;
/

/* First n Rows */
SET SERVEROUTPUT ON
SET VERIFY OFF
DECLARE
CURSOR emp_cur IS SELECT * FROM Emp;
Emp_Rec Emp%ROWTYPE;
n number(3):=&n;
BEGIN
OPEN emp_cur;
LOOP
FETCH emp_cur INTO Emp_Rec;
EXIT WHEN emp_cur%ROWCOUNT>n;
DBMS_OUTPUT.PUT_LINE(emp_rec.ename||' '||emp_rec.job||' '||emp
_rec.sal );
END LOOP;
CLOSE emp_cur;
END;
/

/* Updating Cursor */
SET SERVEROUTPUT ON
SET VERIFY OFF
DECLARE
CURSOR empl_cur IS SELECT * FROM Empl FOR UPDATE OF Sal ;
Empl_Rec Empl%ROWTYPE;
cnt number(3):=0;
BEGIN
OPEN empl_cur;
LOOP
FETCH empl_cur INTO Empl_Rec;
EXIT WHEN empl_cur%NOTFOUND;
IF empl_rec.sal<2000 THEN
cnt:=cnt+1;
UPDATE Empl SET Sal=2000 WHERE CURRENT OF empl_cur;
END IF;
END LOOP;
DBMS_OUTPUT.PUT_LINE('Total Rows Fetched : '||empl_cur%ROWCOUNT);
DBMS_OUTPUT.PUT_LINE('Total Rows Updated : '||cnt);
CLOSE empl_cur;
END;
/

/* Using FOR Loop */


SET SERVEROUTPUT ON
SET VERIFY OFF
DECLARE
CURSOR stud_cur IS SELECT * FROM Student;
BEGIN
FOR stud_rec IN stud_cur
LOOP
DBMS_OUTPUT.PUT_LINE(stud_rec.sname||' Joins '||stud_rec.course||'
Course');
END LOOP;
END;
/

/* Copying Rows*/
SET SERVEROUTPUT ON
SET VERIFY OFF
DECLARE
CURSOR emp_cur IS SELECT Empno,Ename,job,sal,deptno FROM Emp WHERE deptn
o=&dptno;
cnt number(3);
BEGIN
FOR emp_rec IN emp_cur
LOOP
INSERT INTO empl Values emp_rec;
cnt:=emp_cur%ROWCOUNT;
END LOOP;
DBMS_OUTPUT.PUT_LINE(cnt||' Rows Copied....');
END;
/

/* Using FOR Loop */


SET SERVEROUTPUT ON
SET VERIFY OFF
BEGIN
FOR stud_rec IN (Select * From Student Where Course='Java')
LOOP
DBMS_OUTPUT.PUT_LINE(stud_rec.sname||' Joins '||stud_rec.course||'
Course');
END LOOP;
END;
/

SET SERVEROUTPUT ON
SET VERIFY OFF
DECLARE
TYPE arrval IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
dptno arrval;
dptsal arrval;
nsal number(8):=0;
CURSOR emp_cur IS SELECT * FROM Emp;
BEGIN
dptno(1):=10;
dptno(2):=20;
dptno(3):=30;
dptsal(1):=0;
dptsal(2):=0;
dptsal(3):=0;
FOR emp_rec IN emp_cur
LOOP
IF emp_rec.deptno=dptno(1) THEN
dptsal(1):=dptsal(1)+emp_rec.sal;
ELSIF emp_rec.deptno=dptno(2) THEN
dptsal(2):=dptsal(2)+emp_rec.sal;
ELSIF emp_rec.deptno=dptno(3) THEN
dptsal(3):=dptsal(3)+emp_rec.sal;
END IF;
END LOOP;
FOR i IN 1.. 3
LOOP
nsal:=nsal+dptsal(i);
END LOOP;
DBMS_OUTPUT.PUT_LINE('Total Salary Of Department 10 : '||dptsal(1));
DBMS_OUTPUT.PUT_LINE('Total Salary Of Department 20 : '||dptsal(2));
DBMS_OUTPUT.PUT_LINE('Total Salary Of Department 30 : '||dptsal(3));
DBMS_OUTPUT.PUT_LINE('Net Salary : '||nsal);
END;
/
/* Cursor with Parameters */
SET SERVEROUTPUT ON
SET VERIFY OFF
DECLARE
CURSOR emp_cur(dptno NUMBER) IS
SELECT * FROM Emp WHERE deptno=dptno;
emp_rec Emp%ROWTYPE;
BEGIN
DBMS_OUTPUT.PUT_LINE('Deptartment 10 Details ');
OPEN emp_cur(10);
LOOP
FETCH emp_cur INTO emp_rec;
EXIT WHEN emp_cur%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(emp_rec.ename||' Working As a '||emp_rec
.job||' In '||emp_rec.deptno);
END LOOP;
CLOSE emp_cur;
DBMS_OUTPUT.PUT_LINE('Deptartment 30 Details ');
OPEN emp_cur(30);
LOOP
FETCH emp_cur INTO emp_rec;
EXIT WHEN emp_cur%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(emp_rec.ename||' Working As a '||emp_rec
.job||' In '||emp_rec.deptno);
END LOOP;
CLOSE emp_cur;
END;
/
SET SERVEROUTPUT ON
SET VERIFY OFF
DECLARE
ocrs varchar2(12):='&ocrs';
ncrs varchar2(12):='&ncrs';
Invalid_Course EXCEPTION;
BEGIN
UPDATE Student Set Course=ncrs
Where Course=ocrs;
IF SQL%NOTFOUND THEN
RAISE_APPLICATION_ERROR(-20202,'Such Course Not Found...');
END IF;
DBMS_OUTPUT.PUT_LINE('Records Updated : '||SQL%ROWCOUNT);
COMMIT;
END;
/

Declare
emp_rec Empl%RowType;
emp_no empl.empno%type;
Begin
emp_no:=&emp_no;
Select * INTO emp_rec From Empl Where Empno=emp_no;
Insert into retired values emp_rec;
Delete From Empl Where Empno=emp_no;
Dbms_output.put_line('Operation Completed.....');
End;
/

Vous aimerez peut-être aussi