Sie sind auf Seite 1von 6

PL/SQL

USERNAME - scott
PASSWORD - tiger

SET SERVEROUTPUT ON;

-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------
******************** Simple PL/SQL Program ( To print Hello
World)*************************

BEGIN
DBMS_OUTPUT.PUT_LINE('Hello World!');
END;
/

-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
------------------------------------------------------

******************** Simple Program using variable *******************************

DECLARE
l_msg VARCHAR2(255) := 'Hello World!';
BEGIN
DBMS_OUTPUT.PUT_LINE(l_msg);
END;
/

-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
------------------------------------------------------

DECLARE
l_total_sales NUMBER(15,2);
l_credit_limit NUMBER (10,0);
l_contact_name VARCHAR2(255);
BEGIN
NULL;
END;
/

-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
------------------------------------------------------

********************** Addition of two numbers **********************


DECLARE
a INTEGER := 20;
b INTEGER := 30;
c INTEGER;
BEGIN
c := a + b;
DBMS_OUTPUT.PUT_LINE(c);
END;
/

-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
------------------------------------------------------

************************** Accept value from user to add two numbers


************************
DECLARE
a INTEGER;
b INTEGER;
c INTEGER;
BEGIN
a := &a;
b := &b;
c := a + b;
DBMS_OUTPUT.PUT_LINE(c);
END;
/

-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
------------------------------------------------------
************************** SUM, DIFFERENCE, MULTICATION, DIVISION
*******************************

DECLARE
v_num1 NUMBER(3);
v_num2 NUMBER(3);
v_sum NUMBER(3);
v_diff NUMBER(3);
v_mul NUMBER(3);
v_div NUMBER(3);
BEGIN
v_num1 := &v_num1;
v_num2 := &v_num2;

v_sum := v_num1 + v_num2;


DBMS_OUTPUT.PUT_LINE('Addition of ' || v_num1 || ' and ' || v_num2 || ' is '
|| v_sum);

v_diff := v_num1 - v_num2;


DBMS_OUTPUT.PUT_LINE('Subtraction of ' || v_num1 || ' and ' || v_num2 || ' is
' || v_diff);

v_mul := v_num1 * v_num2;


DBMS_OUTPUT.PUT_LINE('Multiplication of ' || v_num1 || ' and ' || v_num2 || '
is ' || v_mul);

v_div := v_num1 / v_num2;


DBMS_OUTPUT.PUT_LINE('Division of ' || v_num1 || ' and ' || v_num2 || ' is '
|| v_div);

END;
/

-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
--------------------------------------------------------

************************** Example of Local and Global variables


**************************
DECLARE
-- Global variables
v_num1 NUMBER(2) := 20;
v_num2 NUMBER(2) := 30;

BEGIN
DBMS_OUTPUT.PUT_LINE('Outer variable ' || v_num1);
DBMS_OUTPUT.PUT_LINE('Outer variable ' || v_num2);

DECLARE
-- Local variables
v_num1 NUMBER(2) := 40;
v_num2 NUMBER(2) := 50;

BEGIN
DBMS_OUTPUT.PUT_LINE('Inner variable ' || v_num1);
DBMS_OUTPUT.PUT_LINE('Inner variable ' || v_num2);

END;
END;
/

-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
--------------------------------------------------------

*************************** Example for constant variables ***********************

DECLARE
v_pi CONSTANT NUMBER := 3.14;
v_radius NUMBER(2);
v_area NUMBER(5, 2);

BEGIN
v_radius := &v_radius;

v_area := v_pi * v_radius ** 2;

DBMS_OUTPUT.PUT_LINE('Area is ' || v_area);


END;
/

-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
--------------------------------------------------------

********************************** IF statement
**************************************

DECLARE
v_salary NUMBER := 2000000;
BEGIN
IF v_salary > 10000 THEN
DBMS_OUTPUT.PUT_LINE('Salary is greater than 200k');
END IF;
END;
/
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
--------------------------------------------------------

*********************************** IF THEN ELSE statment


******************************

DECLARE
v_num1 NUMBER;

BEGIN
v_num1 := &v_num1;

IF v_num1 > 100 THEN


DBMS_OUTPUT.PUT_LINE(v_num1 || ' is greater than 100');
ELSE
DBMS_OUTPUT.PUT_LINE(v_num1 || ' is smaller than 100');
END IF;
END;
/

-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
--------------------------------------------------------

********************************** IF ELSIF THEN statements


******************************

DECLARE
v_marks NUMBER := 78;

BEGIN

IF v_marks > 80 THEN


DBMS_OUTPUT.PUT_LINE('Distinction');

ELSIF v_marks < 80 AND v_marks > 65 THEN


DBMS_OUTPUT.PUT_LINE('First Class ');

ELSIF v_marks < 65 AND v_marks > 50 THEN


DBMS_OUTPUT.PUT_LINE('Higher Second Class ');

ELSIF v_marks < 50 AND v_marks > 40 THEN


DBMS_OUTPUT.PUT_LINE('Pass');

ELSE
DBMS_OUTPUT.PUT_LINE('Fail');

END IF;
END;
/

-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-------------------------------------------------------

************************* NESTED IF statement *****************************


DECLARE
v_num1 NUMBER;
v_num2 NUMBER;
v_num3 NUMBER;

BEGIN
v_num1 := &v_num1;
v_num2 := &v_num2;
v_num3 := &v_num3;

IF (v_num1 > v_num2) THEN


IF (v_num1 > v_num3) THEN
DBMS_OUTPUT.PUT_LINE(v_num1 || ' is greater than ' || v_num3);
ELSE
DBMS_OUTPUT.PUT_LINE(v_num3 || ' is greater than ' || v_num1);
END IF;

ELSE
IF (v_num2 > v_num3 ) THEN
DBMS_OUTPUT.PUT_LINE(v_num2 || ' is greater than ' || v_num3);
ELSE
DBMS_OUTPUT.PUT_LINE(v_num3 || ' is greater than ' || v_num2);
END IF;
END IF;
END;
/

-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
--------------------------------------------------------

********************************* CASE statement *********************************

DECLARE
v_grade VARCHAR2(1);
BEGIN
v_grade := '&v_grade';

CASE
WHEN v_grade = 'A' THEN DBMS_OUTPUT.PUT_LINE('Excellent');
WHEN v_grade = 'B' THEN DBMS_OUTPUT.PUT_LINE('Very Good');
WHEN v_grade = 'C' THEN DBMS_OUTPUT.PUT_LINE('Good');
WHEN v_grade = 'D' THEN DBMS_OUTPUT.PUT_LINE('Fair');
WHEN v_grade = 'E' THEN DBMS_OUTPUT.PUT_LINE('Poor');
ELSE DBMS_OUTPUT.PUT_LINE('No such grade');
END CASE;
END;
/
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
---------------------------------------------------------

****************************** GOTO statements ********************************

BEGIN
GOTO second_message;

<<first_message>>
DBMS_OUTPUT.PUT_LINE('Hello! This is first message');
GOTO the_end;

<<second_message>>
DBMS_OUTPUT.PUT_LINE('Hello! This is second message');
GOTO first_message;

<<the_end>>
DBMS_OUTPUT.PUT_LINE('Good bye');

END;
/

-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
---------------------------------------------------------

********************************* CONTINUE statements


**************************************

DECLARE
v_num NUMBER(2);

BEGIN
v_num := &v_num;

WHILE v_num < 20 LOOP


DBMS_OUTPUT.PUT_LINE('Value is ' || v_num);
v_num := v_num + 1;

IF v_num = 15 THEN
v_num := v_num + 1;
CONTINUE;
END IF;
END LOOP;
END;
/

-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
---------------------------------------------------------

Das könnte Ihnen auch gefallen