Powered By Blogger

Saturday 31 March 2012

PL/SQL PROGRAM


/*****************************************************************

****                                        Amstrong Number                                       ****

**        if a number =Addition of it's individual element's cube         *

***                              EX:  153=1*1*1 + 5*5*5 + 3*3*3                        ****

*****************************************************************/

DECLARE

    V_Num       NUMBER(3) := &Num; 

    V_Rem       NUMBER ;

    V_Save       NUMBER ;

    V_Result    NUMBER  := 0;

    V_Mesage VARCHAR2(200) := ' ';

BEGIN

IF(V_Num IS NOT NULL )            THEN

            V_Mesage := 'Inserted Number   ' || V_Num ||' and Sum of digits = ';

            V_Save := V_Num;

            <<OuterLoop>>

            LOOP

EXIT WHEN V_Num <= 0

                         V_Rem := MOD(V_Num,10);                              -- Action State

                         V_Result := V_Result + POWER(V_Rem,3);     --  Action State

                         V_Num          := TRUNC(V_Num/10);                       -- Updation State      

            END LOOP OuterLoop;

            IF( V_Save = V_Result ) THEN

                        V_Mesage := '   is an AMSTRONG Number ';

            ELSE

                        V_Mesage := '   is NOT an AMSTRONG Number ';

            END IF;

            DBMS_OUTPUT.PUT_LINE(V_Mesage || V_Result );

 

ELSE

            DBMS_OUTPUT.PUT_LINE('Fatal Error !  NULL Encounted Can''t Proceed Forther   Try Again ');

END IF;

END;

/************************************

***                  REVERSE Number         ***

***                  EX:  153=351                   ***

**************************************/

DECLARE

    V_Num       NUMBER(3) := &Num; 

    V_Rem       NUMBER ;

    V_Result    NUMBER  := 0;

    V_Mesage VARCHAR2(200) := ' ';

BEGIN

IF(V_Num IS NOT NULL )            THEN

            V_Mesage := 'Inserted Number   ' || V_Num ||' and It'' Reverse is    ';

            <<OuterLoop>>

            LOOP

                        EXIT WHEN V_Num <= 0 ;                                

                         V_Rem := MOD(V_Num,10);                               -- Action State

                         V_Result := V_Result*10 + V_Rem;                     --  Action State

                         V_Num          := TRUNC(V_Num/10);                  -- Updation State      

            END LOOP OuterLoop;

            DBMS_OUTPUT.PUT_LINE(V_Mesage || V_Result );

ELSE

            DBMS_OUTPUT.PUT_LINE('Fatal Error !  NULL Encounted Can''t Proceed Forther   Try Again ');

END IF;

END;

/************************************************

*****              Palindron Number                             ***

************************************************/

DECLARE

    V_Num       NUMBER(3) := &Num;

    V_Rem       NUMBER ;

    V_Result    NUMBER  := 0;

     V_Save      NUMBER ;

    V_Mesage             VARCHAR2(200) := ' ';

BEGIN

            IF(V_Num IS NOT NULLTHEN

             V_Mesage := 'Inserted Number   ' || V_Num ||' and It'' Reverse is    ';

             V_Save := V_Num;

             <<OuterLoop>>

            LOOP

                        EXIT WHEN V_Num <= 0

                        V_Rem := MOD(V_Num,10);                                 -- Action State

                        V_Result := V_Result*10 + V_Rem;                     --  Action State

                        V_Num := TRUNC(V_Num/10);                          -- Updation State

             END LOOP OuterLoop;

            V_Mesage := V_Mesage  ||   V_Result ;

            IF( V_Save = V_Result ) THEN

                        V_Mesage :=  V_Mesage  ||  CHR(10) || V_Save || ' = ' ||  V_Result  || CHR(10) || ' SO it''s   PALINDRON  ';

            ELSE

                        V_Mesage :=  V_Mesage  ||  CHR(10) || V_Save || ' != ' ||  V_Result || CHR(10) || ' SO it''s not   PALINDRON   ';

             END IF;

            DBMS_OUTPUT.PUT_LINE(V_Mesage);

ELSE

            DBMS_OUTPUT.PUT_LINE('Fatal Error !  NULL Encounted Can''t Proceed Forther   Try Again ');

END IF;

END;


/* *************************************************

****               Print Stars in a Step wise                      *****

***                              *                                                      *****

***                              * *                                                   *****

***                              * * *                                                *****                                         

**************************************************/

DECLARE

    V_Num       NUMBER(3) := &Num;

    V_Mesage             VARCHAR2(200) := ' ';

BEGIN

            IF(V_Num IS NOT NULLTHEN

            DBMS_OUTPUT.PUT_LINE( 'Number of line * will be printed = ' || V_Num);

             <<OuterLoop>>

            LOOP

                        EXIT WHEN V_Num <= 0 ;                                  

                        V_Mesage := V_Mesage || ' * ';                         -- Action State

                        V_Num := V_Num -1 ;                                            -- Updation State

                        DBMS_OUTPUT.PUT_LINE(V_Mesage);

            END LOOP OuterLoop;

ELSE

             DBMS_OUTPUT.PUT_LINE('Fatal Error !  NULL Encounted Can''t Proceed Forther   Try Again ');

END IF;

END;

/**************************************************

****                                        1                                         *****

****                                       2 3 4                                  *****

****                                        5 6 7 8 9                           *****

**************************************************/

DECLARE

    V_Num  NUMBER(3) := &Num;

    V_InNum  NUMBER;

    V_OutNum  NUMBER(3) := 1;

    V_InCont    NUMBER(3) := 1;

    V_Counter   NUMBER(3) := 1;

    V_Mesage VARCHAR2(200) := ' ';

BEGIN

IF(V_Num IS NOT NULLTHEN

 DBMS_OUTPUT.PUT_LINE( 'Number of line * will be printed = ' || V_Num);

 <<OuterLoop>>

 LOOP

  EXIT WHEN V_Num < V_OutNum ;

            V_InNum :=  2 * (V_OutNum -1) + 1;

            V_Mesage := ' ';

            V_InCont := 1;

            <<InnrLoop>>

            LOOP

            EXIT WHEN V_InNum <  V_InCont ;                                           

                         V_Mesage := V_Mesage || '   '  ||V_Counter  ; 

                         V_Counter := V_Counter + 1;

                                 V_InCont :=  V_InCont + 1;

            END LOOP InnrLoop;

                DBMS_OUTPUT.PUT_LINE(V_Mesage);

     V_OutNum := V_OutNum + 1 ;                                      

 END LOOP OuterLoop;

ELSE

 DBMS_OUTPUT.PUT_LINE('Fatal Error !  NULL Encounted Can''t Proceed Forther   Try Again ');

END IF;

END;

/*****************************************************************

*****  Sin X =x - (x^3) / 3! + (x^5 / 5!) -( x^7 / 7! )............           ***

*****************************************************************/

DECLARE

    V_X                         NUMBER(3) := &X;

    V_InNum              NUMBER;

    V_OutNum            NUMBER(3) := 1;

    V_InCont               NUMBER(3) := 1;

    V_Fact                   NUMBER ;

    V_Ratio                  NUMBER ;

    V_Result                NUMBER := 0 ;

    V_Message           VARCHAR2(200) := ' ';

BEGIN

IF(V_X IS NOT NULLTHEN

 <<OuterLoop>>

 LOOP

 EXIT WHEN  20 < V_OutNum ;

            V_InNum :=  2 * (V_OutNum -1) + 1;

            V_InCont := 1;

            V_Fact := 1;

            V_Ratio := 1;

            <<InnrLoop>>

            LOOP

            EXIT WHEN V_InNum <  V_InCont ;                                           

                        V_Fact := V_Fact *V_InCont;

                        V_InCont := V_InCont + 1;           

            END LOOP InnrLoop;

                V_Ratio := POWER(V_X,V_InNum)/ V_Fact;

            IF ( MOD(V_OutNum,2) = 0 ) THEN

                         V_Result :=  V_Result - V_Ratio;

            ELSE

                        V_Result :=  V_Result + V_Ratio;

            END IF;         

     V_OutNum := V_OutNum + 1 ;                                      

 END LOOP OuterLoop;

            DBMS_OUTPUT.PUT_LINE(V_Result);

ELSE

            DBMS_OUTPUT.PUT_LINE('Fatal Error !  NULL Encounted Can''t Proceed Forther   Try Again ');

END IF;

END;

/*****************************************************************

*****                          Cos X =1 - (x^2 / 2! )+ (x^4 / 4!) -( x^6 / 6! )...........   ***

*****************************************************************/

DECLARE

    V_X                         NUMBER(3) := &X;

    V_InNum              NUMBER;

    V_OutNum            NUMBER(3) := 1;

    V_InCont               NUMBER(3) := 1;

    V_Fact                   NUMBER ;

    V_Ratio                  NUMBER ;

    V_Result                NUMBER := 1 ;

    V_Message           VARCHAR2(200) := ' ';

BEGIN

IF(V_X IS NOT NULL )  THEN

 <<OuterLoop>>

 LOOP

 EXIT WHEN  50 < V_OutNum ;

            V_InNum :=  2 * V_OutNum ;

            V_InCont := 1;

            V_Fact := 1;

            V_Ratio := 1;

            <<InnrLoop>>

            LOOP

            EXIT WHEN V_InNum <  V_InCont ;                                           

                        V_Fact := V_Fact *V_InCont;

                        V_InCont := V_InCont + 1;                       

            END LOOP InnrLoop;

                V_Ratio := POWER(V_X,V_InNum) /  V_Fact;

            IF ( MOD(V_OutNum,2) != 0 ) THEN

                         V_Result :=  V_Result - V_Ratio;

            ELSE

                        V_Result :=  V_Result + V_Ratio;

            END IF;         

     V_OutNum := V_OutNum + 1 ;                                      

 END LOOP OuterLoop;

            DBMS_OUTPUT.PUT_LINE(V_Result);

ELSE

            DBMS_OUTPUT.PUT_LINE('Fatal Error !  NULL Encounted Can''t Proceed Forther   Try Again ');

END IF;

END;              ========================================================

                                                            While Loop                          ========================================================

/* ************************************************

 ***********             Factorial of a Number      *************

**************************************************/

DECLARE

V_Num           NUMBER := &Num ;

V_Result       NUMBER := 1 ;

V_Message   VARCHAR2(100) := ' ';

BEGIN

IF ( V_Num IS NOT NULLTHEN                     /*  Check For NULL Encounted */

            V_Message := 'Factorial of ' || V_Num || ' = ' ;

            WHILE  V_Num > 0

            LOOP

                        V_Result := V_Result * V_Num;

                        V_Num := V_Num - 1;       

            END LOOP ;

            DBMS_OUTPUT.PUT_LINE(V_Message || V_Result);

ELSE

            DBMS_OUTPUT.PUT_LINE('Fatal Error !  NULL Encounted Can''t Proceed Forther   Try Again ');

END IF;

END ;        

 

 

/* ************************************************

 ***********             Reverse of a Number             ***********

**************************************************/ 

DECLARE

V_Num           NUMBER := &Num ;

V_Result        NUMBER := 0 ;

V_Rem           NUMBER ;

V_Message   VARCHAR2(100) := ' ';

BEGIN

IF ( V_Num IS NOT NULLTHEN                     /*  Check For NULL Encounted */

            V_Message := 'Reverse of  ' || V_Num || ' = ' ;

            WHILE  V_Num > 0

            LOOP

                        V_Rem := MOD(V_Num,10);

                        V_Result := V_Result *10 +  V_Rem;

                        V_Num := TRUNC(V_Num / 10) ;         

            END LOOP ;

            DBMS_OUTPUT.PUT_LINE(V_Message || V_Result);

ELSE

            DBMS_OUTPUT.PUT_LINE('Fatal Error !  NULL Encounted Can''t Proceed Forther   Try Again ');

END IF;

END ;

/* ************************************************

 ****               Sum of the digits of a Number        *****

**************************************************/

DECLARE

V_Num           NUMBER := &Num ;

V_Result        NUMBER := 0 ;

V_Rem           NUMBER ;

V_Message   VARCHAR2(100) := ' ';

BEGIN

IF ( V_Num IS NOT NULLTHEN                     /*  Check For NULL Encounted */

            V_Message := 'Sum of the digits of  Number  ' || V_Num || ' = ' ;

            WHILE  V_Num > 0

            LOOP

                        V_Rem := MOD(V_Num,10);

                        V_Result := V_Result +  V_Rem;

                        V_Num := TRUNC(V_Num / 10) ;         

            END LOOP ;

            DBMS_OUTPUT.PUT_LINE(V_Message || V_Result);

ELSE

            DBMS_OUTPUT.PUT_LINE('Fatal Error !  NULL Encounted Can''t Proceed Forther   Try Again ');

END IF;

END ;

/* ************************************************

 *******         Sum of number upto n                  *******

**************************************************/

DECLARE

V_Num                       NUMBER := &Num ;

V_Result                    NUMBER := 0 ;

V_Message               VARCHAR2(100) := ' ';

BEGIN

IF ( V_Num IS NOT NULLTHEN                     /*  Check For NULL Encounted */

            IF( V_Num  > 0)  THEN

                        V_Message := 'Sum of number from 1 to   ' || V_Num || ' = ' ;

                        WHILE  V_Num > 0

                        LOOP

                                    V_Result := V_Result +  V_Num;

                                    V_Num := V_Num - 1 ;      

                        END LOOP ;

            DBMS_OUTPUT.PUT_LINE(V_Message || V_Result);

            ELSE  

                        DBMS_OUTPUT.PUT_LINE('Sorry _ve Value Inserted .. Try again with +ve Value ');

            END IF;

ELSE

            DBMS_OUTPUT.PUT_LINE('Fatal Error !  NULL Encounted Can''t Proceed Forther   Try Again ');

END IF;

END ;

/*****************************************************************

****                                        Amstrong Number                                    ****

*****************************************************************/

DECLARE

    V_Num                   NUMBER := &Num; 

    V_Rem                   NUMBER ;

    V_Save                   NUMBER ;

    V_Result                NUMBER  := 0;

    V_Mesage             VARCHAR2(200) := ' ';

BEGIN

IF(V_Num IS NOT NULL )            THEN

            V_Mesage := ' Inserted Number   ' || V_Num ||' and Cube /Sum of digits = ';

            V_Save := V_Num;

            WHILE  V_Num > 0

            LOOP                            

                         V_Rem := MOD(V_Num,10);                           

                         V_Result := V_Result + POWER(V_Rem,3);  

                         V_Num          := TRUNC(V_Num/10);                      

            END LOOP ;

            V_Mesage := V_Mesage || V_Result  || CHR(10) ;

            IF( V_Save = V_Result ) THEN

                        V_Mesage := V_Mesage || '   It is an AMSTRONG Number ';

            ELSE

                        V_Mesage := V_Mesage ||  'It  is NOT an AMSTRONG Number ';

            END IF;

            DBMS_OUTPUT.PUT_LINE(V_Mesage );

ELSE

            DBMS_OUTPUT.PUT_LINE('Fatal Error !  NULL Encounted Can''t Proceed Forther   Try Again ');

END IF;

END;

/************************************************

*****                          Palindron Number                   ***

************************************************/

DECLARE

    V_Num       NUMBER := &Num;

    V_Rem       NUMBER ;

    V_Result    NUMBER  := 0;

     V_Save      NUMBER ;

    V_Mesage             VARCHAR2(200) := ' ';

BEGIN

            IF(V_Num IS NOT NULLTHEN

             V_Mesage := 'Inserted Number   ' || V_Num ||' and It'' Reverse is    ';

             V_Save := V_Num;

            WHILE V_Num >  0

            LOOP                             

                        V_Rem := MOD(V_Num,10);                          

                        V_Result := V_Result*10 + V_Rem;   

                        V_Num := TRUNC(V_Num/10);                      

             END LOOP OuterLoop;

            V_Mesage := V_Mesage  ||   V_Result ;

            IF( V_Save = V_Result ) THEN

                        V_Mesage :=  V_Mesage  ||  CHR(10) || V_Save || ' = ' ||  V_Result  || CHR(10) || ' SO it''s   PALINDRON  ';

            ELSE

                        V_Mesage :=  V_Mesage  ||   CHR(10) || V_Save || ' != ' ||  V_Result || CHR(10) || ' SO it''s not   PALINDRON   ';

             END IF;

            DBMS_OUTPUT.PUT_LINE(V_Mesage);

ELSE

            DBMS_OUTPUT.PUT_LINE('Fatal Error !  NULL Encounted Can''t Proceed Forther   Try Again ');

END IF;

END;              =======================================================

                                                            FOR LOOP                =======================================================

/* ************************************************

 *******         Factorial of a Number                  ********

**************************************************/

DECLARE

V_Num                       NUMBER := &Num ;

V_Result                    NUMBER := 1 ;

V_Message               VARCHAR2(100) := ' ';

BEGIN

IF ( V_Num IS NOT NULLTHEN                     /*  Check For NULL Encounted */

            V_Message := 'Factorial of ' || V_Num || ' = ' ;

            FOR IndexI IN 1 .. V_Num

            LOOP

                        V_Result := V_Result * IndexI;   

            END LOOP ;

            DBMS_OUTPUT.PUT_LINE(V_Message || V_Result);

ELSE

            DBMS_OUTPUT.PUT_LINE('Fatal Error !  NULL Encounted Can''t Proceed Forther   Try Again ');

END IF;

END

/* ************************************************

 *******         Reverse of a Number                     *******

**************************************************/ 

DECLARE

V_Num                       NUMBER := &Num ;

V_Result                   NUMBER := 0 ;

V_Rem                       NUMBER ;

V_Message               VARCHAR2(100) := ' ';

BEGIN

IF ( V_Num IS NOT NULLTHEN                     /*  Check For NULL Encounted */

            V_Message := 'Reverse of  ' || V_Num || ' = ' ;

            FOR IndexI IN 1 .. LENGTH(V_Num)

            LOOP

                        V_Rem := MOD(V_Num,10);

                        V_Result := V_Result *10 +  V_Rem;

                        V_Num := TRUNC(V_Num / 10) ;         

            END LOOP ;

            DBMS_OUTPUT.PUT_LINE(V_Message || V_Result);

ELSE

            DBMS_OUTPUT.PUT_LINE('Fatal Error !  NULL Encounted Can''t Proceed Forther   Try Again ');

END IF;

END ;

/* ************************************************

 ****               Sum of the digits of a Number       *****

**************************************************/

DECLARE

V_Num                       NUMBER := &Num ;

V_Result                   NUMBER := 0 ;

V_Rem                       NUMBER ;

V_Message               VARCHAR2(100) := ' ';

BEGIN

IF ( V_Num IS NOT NULLTHEN                     /*  Check For NULL Encounted */

            V_Message := 'Sum of the digits of  Number  ' || V_Num || ' = ' ;

            FOR IndexI IN 1 .. LENGTH(V_Num)

            LOOP

                        V_Rem := MOD(V_Num,10);

                        V_Result := V_Result +  V_Rem;

                        V_Num := TRUNC(V_Num / 10) ;         

            END LOOP ;

            DBMS_OUTPUT.PUT_LINE(V_Message || V_Result);

ELSE

            DBMS_OUTPUT.PUT_LINE('Fatal Error !  NULL Encounted Can''t Proceed Forther   Try Again ');

END IF;

END ;

/* ************************************************

 *****             Sum of number upto n                 s********

**************************************************/

DECLARE

V_Num                       NUMBER := &Num ;

V_Result                    NUMBER := 0 ;

V_Message               VARCHAR2(100) := ' ';

BEGIN

IF ( V_Num IS NOT NULLTHEN                     /*  Check For NULL Encounted */

            IF( V_Num  > 0)  THEN

                        V_Message := 'Sum of number from 1 to   ' || V_Num || ' = ' ;

                        FOR IndexI IN 1 ..  V_Num

                        LOOP

                                    V_Result := V_Result + IndexI;  

                        END LOOP ;

            DBMS_OUTPUT.PUT_LINE(V_Message || V_Result);

            ELSE  

                        DBMS_OUTPUT.PUT_LINE('Sorry _ve Value Inserted .. Try again with +ve Value ');

            END IF;

ELSE

            DBMS_OUTPUT.PUT_LINE('Fatal Error !  NULL Encounted Can''t Proceed Forther   Try Again ');

END IF;

END ;

/*****************************************************************

****                                        Amstrong Number                                      ****

*****************************************************************/

DECLARE

    V_Num                   NUMBER := &Num; 

    V_Rem                   NUMBER ;

    V_Save                   NUMBER ;

    V_Result                NUMBER  := 0;

    V_Mesage             VARCHAR2(200) := ' ';

BEGIN

IF(V_Num IS NOT NULL )            THEN

            V_Mesage := ' Inserted Number   ' || V_Num ||' and Cube Sum of digits = ';

            V_Save := V_Num;

            FOR IndexI IN 1 ..  LENGTH(V_Num)

            LOOP                            

                         V_Rem := MOD(V_Num,10);                           

                         V_Result := V_Result + POWER(V_Rem,3);  

                         V_Num := TRUNC(V_Num/10);                      

            END LOOP ;

            V_Mesage := V_Mesage || V_Result  || CHR(10) ;

            IF( V_Save = V_Result ) THEN

                        V_Mesage := V_Mesage || '   It is an AMSTRONG Number ';

            ELSE

                        V_Mesage := V_Mesage ||  'It  is NOT an AMSTRONG Number ';

            END IF;

            DBMS_OUTPUT.PUT_LINE(V_Mesage );

ELSE

            DBMS_OUTPUT.PUT_LINE('Fatal Error !  NULL Encounted Can''t Proceed Forther   Try Again ');

END IF;

END;


/************************************************

*****             Palindron Number                                ***

************************************************/

DECLARE

    V_Num       NUMBER := &Num;

    V_Rem       NUMBER ;

    V_Result    NUMBER  := 0;

     V_Save      NUMBER ;

    V_Mesage             VARCHAR2(200) := ' ';

BEGIN

            IF(V_Num IS NOT NULLTHEN

             V_Mesage := 'Inserted Number   ' || V_Num ||' and It'' Reverse is    ';

             V_Save := V_Num;

            FOR IndexI IN 1 ..  LENGTH(V_Num)

            LOOP                             

                        V_Rem := MOD(V_Num,10);                          

                        V_Result := V_Result*10 + V_Rem;   

                        V_Num := TRUNC(V_Num/10);                      

             END LOOP OuterLoop;

            V_Mesage := V_Mesage  ||   V_Result ;

            IF( V_Save = V_Result ) THEN

                        V_Mesage :=  V_Mesage  ||  CHR(10) || V_Save || ' = ' ||  V_Result  || CHR(10) || ' SO it''s   PALINDRON  ';

            ELSE

                        V_Mesage :=  V_Mesage  ||   CHR(10) || V_Save || ' != ' ||  V_Result || CHR(10) || ' SO it''s not   PALINDRON   ';

             END IF;

            DBMS_OUTPUT.PUT_LINE(V_Mesage);

ELSE

            DBMS_OUTPUT.PUT_LINE('Fatal Error !  NULL Encounted Can''t Proceed Forther   Try Again ');

END IF;

END;

/****************************************************************

***                                          Print 1 to N                                             *******

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

DECLARE

    V_Num       NUMBER := &Num;

    V_Mesage             VARCHAR2(200) := ' ';

BEGIN

            IF(V_Num IS NOT NULLTHEN

             V_Mesage := ' Numbers  from 1 to ' || V_Num ||'  are   ';

            FOR IndexI IN 1 ..  V_Num

            LOOP                            

                           V_Mesage :=  V_Mesage ||'    ' ||  IndexI ;             

             END LOOP ;

            DBMS_OUTPUT.PUT_LINE(V_Mesage);

ELSE

            DBMS_OUTPUT.PUT_LINE('Fatal Error !  NULL Encounted Can''t Proceed Forther   Try Again ');

END IF;

END;

 

/****************************************************************

***                              Print 1 to N Rverse Order                             *******

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

DECLARE

    V_Num       NUMBER := &Num;

    V_Mesage             VARCHAR2(200) := ' ';

BEGIN

            IF(V_Num IS NOT NULLTHEN

             V_Mesage := ' Numbers  from 1 to ' || V_Num ||'  are   ';

            FOR IndexI IN REVERSE 1 ..   V_Num

            LOOP                            

                           V_Mesage :=  V_Mesage ||'    ' ||  IndexI ;             

             END LOOP ;

            DBMS_OUTPUT.PUT_LINE(V_Mesage);

ELSE

            DBMS_OUTPUT.PUT_LINE('Fatal Error !  NULL Encounted Can''t Proceed Forther   Try Again ');

END IF;

END;

/* *************************************************

****                  Print Stars in a Step wise                  *****

***                              *                                                      *****

***                               * *                                                  *****

***                              * * *                                                *****

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

***                              * * *                                               *****

***                              * *                                                    *****

***                                *                                                     *****                                        

**************************************************/

DECLARE

    V_Num                   NUMBER := &Num;

    V_Mesage                         VARCHAR2(200) := ' ';

    V_Inner                 NUMBER;

BEGIN

            IF(V_Num IS NOT NULLTHEN

            DBMS_OUTPUT.PUT_LINE( 'Number of line * will be printed = ' || V_Num);

            <<OuterLoop1>>

            FOR IndexI IN   1 ..   V_Num

            LOOP

                        V_Inner  := IndexI;  

                        <<InnerLoop1>>

                         FOR IndexI IN  1 ..  V_Inner 

                        LOOP                        

                                    V_Mesage := V_Mesage || ' * ';

                         END LOOP InnerLoop1;                         

                        DBMS_OUTPUT.PUT_LINE(V_Mesage);

            V_Mesage := ' ';

            END LOOP OuterLoop1;

             <<OuterLoop2>>

            FOR IndexI IN  REVERSE 1 ..   V_Num+1

            LOOP

                        V_Inner  := IndexI;  

                        <<InnerLoop2>>

                         FOR IndexI IN  1 ..  V_Inner 

                        LOOP                        

                                    V_Mesage := V_Mesage || ' * ';

                                 END LOOP InnerLoop2;                             

                        DBMS_OUTPUT.PUT_LINE(V_Mesage);

            V_Mesage := ' ';

            END LOOP OuterLoop2;

ELSE

             DBMS_OUTPUT.PUT_LINE('Fatal Error !  NULL Encounted Can''t Proceed Forther   Try Again ');

END IF;

END;

 

/**********************************************

****                                        1                                  *****

****                                       2 3 4                           *****

****                                        5 6 7 8 9                    *****

**********************************************/

DECLARE

    V_Num       NUMBER(3) := &Num;

    V_InNum  NUMBER;

    V_Counter NUMBER := 1;

    V_Mesage             VARCHAR2(200) := ' ';

BEGIN

IF(V_Num IS NOT NULL )  THEN

 DBMS_OUTPUT.PUT_LINE( 'Number of line * will be printed = ' || V_Num);

 <<OuterLoop>>

FOR IndexI IN 1 .. V_Num

LOOP

            V_InNum :=  2 * (IndexI -1) + 1;

            <<InnrLoop>>

            FOR IndexI IN 1 .. V_InNum

            LOOP                                      

                         V_Mesage := V_Mesage || '   '  ||  V_Counter  ; 

                        V_Counter := V_Counter + 1;

            END LOOP InnrLoop;

                DBMS_OUTPUT.PUT_LINE(V_Mesage);

            V_Mesage := ' ';                                  

END LOOP OuterLoop;

ELSE

 DBMS_OUTPUT.PUT_LINE('Fatal Error !  NULL Encounted Can''t Proceed Forther   Try Again ');

END IF;

END;

/**************************************************

****                                        1 2 3                                 *****

****                                       2 3 4                                   *****

****                                         3 4 5                                *****

**************************************************/

DECLARE

    V_Num  NUMBER(3) := &Num;

    V_InNum  NUMBER;

    V_Mesage VARCHAR2(200) := ' ';

BEGIN

IF(V_Num IS NOT NULLTHEN

 DBMS_OUTPUT.PUT_LINE( 'Number of line * will be printed = ' || V_Num);

 <<OuterLoop>>

FOR IndexI IN 1 .. V_Num

LOOP

            <<InnrLoop>>

            FOR IndexJ IN 1 .. V_Num

            LOOP                                      

                         V_Mesage := V_Mesage || '   '  ||  ( IndexI + IndexJ - 1)  ; 

            END LOOP InnrLoop;

                DBMS_OUTPUT.PUT_LINE(V_Mesage);

            V_Mesage := ' ';                                  

END LOOP OuterLoop;

ELSE

 DBMS_OUTPUT.PUT_LINE('Fatal Error !  NULL Encounted Can''t Proceed Forther   Try Again ');

END IF;

END;

/*************************************************************

****                 Co-Ordinate Poition of a matrix                          *****

*************************************************************/

DECLARE

    V_Num       NUMBER(3) := &Num;

    V_InNum  NUMBER;

    V_Mesage             VARCHAR2(200) := ' ';

BEGINS

IF(V_Num IS NOT NULLTHEN

 DBMS_OUTPUT.PUT_LINE( 'Number of line * will be printed = ' || V_Num);

 <<OuterLoop>>

FOR IndexI IN 1 .. V_Num

LOOP

            <<InnrLoop>>

            FOR IndexJ IN 1 .. V_Num

            LOOP                                      

                         V_Mesage := V_Mesage || '    ( '  ||   ( IndexI -1 )  || ',' ||  (IndexJ - 1)  || ' )' ; 

            END LOOP InnrLoop;

                DBMS_OUTPUT.PUT_LINE(V_Mesage);

            V_Mesage := ' ';                                  

END LOOP OuterLoop;

ELSE

 DBMS_OUTPUT.PUT_LINE('Fatal Error !  NULL Encounted Can''t Proceed Forther   Try Again ');

END IF;

END;

/*************************************************************

*****                                      String Reverse                                       ****

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

DECLARE

    V_String   VARCHAR2 (50):='&String';

    V_Mesage VARCHAR2(200) := ' ';

BEGIN

IF(V_String IS NOT NULLTHEN

DBMS_OUTPUT.PUT_LINE( 'Entered String is  ' || V_String );

             <<OuterLoop>>

            FOR IndexI IN REVERSE 1 .. LENGTH(V_String)

            LOOP

                        V_Mesage :=   V_Mesage || SUBSTR(V_String, IndexI,1)  ;                 

            END LOOP OuterLoop;

             DBMS_OUTPUT.PUT_LINE('Reverse of the String is ' || V_Mesage );

ELSE

 DBMS_OUTPUT.PUT_LINE('Fatal Error !  NULL Encounted Can''t Proceed Forther   Try Again ');

END IF;

END;

 

DEGIN

V_Empno          NUMBER(4) :=&Empid;

V_Name         VARCHAR2(20) ;

V_Deptno      NUMBER(2) ;

V_Job              VARCHAR2(10);

V_Sal               NUMBER(4);

V_Comm         NUMBER(4);

V_HireDate   DATE;

V_Mgr             NUMBER(4);

BEGIN

DBMS_OUTPUT.PUT_LINE('CONNECT TO DATABASE...........');

SELECT EName,Deptno,Job,Sal,Comm,HireDate,Mgr

INTO

V_Name,V_Deptno,V_Job,V_Sal,V_Comm,V_HireDate,V_Mgr

FROM Emp

WHERE Empno=V_Empno;

DBMS_OUTPUT.PUT_LINE('Employee having Employe ID '|| V_Empno || ' has following details....');

DBMS_OUTPUT.PUT_LINE('Name is :'|| INITCAP(V_Name));

DBMS_OUTPUT.PUT_LINE('Department no is :' || V_Deptno);

DBMS_OUTPUT.PUT_LINE('Designation : '|| V_Job);

DBMS_OUTPUT.PUT_LINE('Salary as for Indian Rupees : '||  TO_CHAR(V_Sal,'L99G999D99','NLS_CURRENCY=INR'));

DBMS_OUTPUT.PUT_LINE('Commission : ' || NVL(TO_CHAR(V_Comm),'Sorry...No Commissino'));

DBMS_OUTPUT.PUT_LINE('Hired on : ' || TO_CHAR(V_HireDate,'DDTh Month  yyyySP '));

DBMS_OUTPUT.PUT_LINE('Working under manager ID ' || NVL(TO_CHAR(V_Mgr),'Can''t Controled ' ));

END;

/* Manager information with out selef join */

DECLARE

V_Empno          NUMBER(4) :=&Empid;

V_Name         VARCHAR2(20) ;

V_Deptno      NUMBER(2) ;

V_Job              VARCHAR2(10);

V_Sal                NUMBER(4);

V_Comm         NUMBER(4);

V_HireDate   DATE;

V_Mgr             NUMBER(4);

V_MgrName   VARCHAR2(20);

BEGIN

DBMS_OUTPUT.PUT_LINE('CONNECT TO DATABASE...........');

SELECT

EName,Deptno,Job,Sal,Comm,HireDate,Mgr

INTO

V_Name,V_Deptno,V_Job,V_Sal,V_Comm,V_HireDate,V_Mgr

FROM Emp

WHERE Empno=V_Empno;

IF(V_Mgr IS NOT NULL)  THEN

            SELECT EName

            INTO

            V_MgrName

            FROM Emp

            WHERE Empno=V_Mgr;

ELSE

            NULL;

END IF;

DBMS_OUTPUT.PUT_LINE(' DATABASE.Connection     Exit.');

DBMS_OUTPUT.PUT_LINE('Employee having Employe ID '|| V_Empno || ' has following details....');

DBMS_OUTPUT.PUT_LINE('Name is :'|| INITCAP(V_Name));

DBMS_OUTPUT.PUT_LINE('Department no is :' || V_Deptno);

DBMS_OUTPUT.PUT_LINE('Designation : '|| V_Job);

DBMS_OUTPUT.PUT_LINE('Salary as for Indian Rupees : '||  TO_CHAR(V_Sal,'L99G999D99','NLS_CURRENCY=INR'));

DBMS_OUTPUT.PUT_LINE('Commission : ' || NVL(TO_CHAR(V_Comm),'Sorry...No Commissino'));

DBMS_OUTPUT.PUT_LINE('Hired on : ' || TO_CHAR(V_HireDate,'DDTh Month  yyyySP '));

DBMS_OUTPUT.PUT_LINE('Working under manager ID ' || NVL(TO_CHAR(V_Mgr),'Can''t Controled ' )|| ' and manager name is ' || NVL(V_MgrName,V_Name)) ;

END;

 


/* Department Info with out join */

 

DECLARE

V_Empno          NUMBER(4) :=&Empid;

V_Name         VARCHAR2(20) ;

V_Deptno      NUMBER(2) ;

V_Job              VARCHAR2(10);

V_Sal               NUMBER(4);

V_Comm         NUMBER(4);

V_HireDate   DATE;

V_Mgr              NUMBER(4);

V_MgrName   VARCHAR2(20);

V_Dname       VARCHAR2(20);

V_LOC             VARCHAR2(20);

BEGIN

DBMS_OUTPUT.PUT_LINE('CONNECT TO DATABASE...........');

SELECT

 EName,Deptno,Job,Sal,Comm,HireDate,Mgr

INTO

V_Name,V_Deptno,V_Job,V_Sal,V_Comm,V_HireDate,V_Mgr

FROM Emp

WHERE Empno=V_Empno;

IF(V_Mgr IS NOT NULL)  THEN

            SELECT

 EName

            INTO

            V_MgrName

            FROM Emp

            WHERE Empno=V_Mgr;

ELSE

            NULL;

END IF;

IF(V_Deptno IS NOT NULL)  THEN

            SELECT

DName,LOC

            INTO

            V_Dname,V_Loc

            FROM Dept

            WHERE Deptno=V_Deptno;

ELSE

            NULL;

END IF;

DBMS_OUTPUT.PUT_LINE(' DATABASE.Connection     Exit.');

DBMS_OUTPUT.PUT_LINE('Employee having Employe ID '|| V_Empno || ' has following details....');

DBMS_OUTPUT.PUT_LINE('Name is :'|| INITCAP(V_Name));

DBMS_OUTPUT.PUT_LINE('Department no is :' || V_Deptno || '  Department name is  ' || V_DName || ' is Situated at ' || V_Loc);

DBMS_OUTPUT.PUT_LINE('Designation : '|| V_Job);

DBMS_OUTPUT.PUT_LINE('Salary as for Indian Rupees : '||  TO_CHAR(V_Sal,'L99G999D99','NLS_CURRENCY=INR'));

DBMS_OUTPUT.PUT_LINE('Commission : ' || NVL(TO_CHAR(V_Comm),'Sorry...No Commissino'));

DBMS_OUTPUT.PUT_LINE('Hired on : ' || TO_CHAR(V_HireDate,'DDTh Month  yyyySP '));

DBMS_OUTPUT.PUT_LINE('Working under manager ID ' || NVL(TO_CHAR(V_Mgr),'Can''t Controled ' )|| ' and manager name is ' || NVL(V_MgrName,V_Name)) ;

END;

/ Dpartment info salGrade info, manager info witho out nay join */

DECLARE

V_Empno          NUMBER(4) :=&Empid;

V_Name         VARCHAR2(20) ;

V_Deptno      NUMBER(2) ;

V_Job               VARCHAR2(10);

V_Sal               NUMBER(4);

V_Comm         NUMBER(4);

V_HireDate   DATE;

V_Mgr             NUMBER(4);

V_MgrName   VARCHAR2(20);

V_Dname       VARCHAR2(20);

V_LOC             VARCHAR2(20);

V_Grade         NUMBER(2);

BEGIN

DBMS_OUTPUT.PUT_LINE('CONNECT TO DATABASE...........');

SELECT EName,Deptno,Job,Sal,Comm,HireDate,Mgr

INTO

V_Name,V_Deptno,V_Job,V_Sal,V_Comm,V_HireDate,V_Mgr

FROM Emp

WHERE Empno=V_Empno;

IF(V_Mgr IS NOT NULL)  THEN

            SELECT

EName

            INTO

            V_MgrName

            FROM Emp

            WHERE Empno=V_Mgr;

ELSE

            NULL;

END IF;

IF(V_Deptno IS NOT NULL)  THEN

            SELECT

 DName,LOC

             INTO

            V_Dname,V_Loc

            FROM Dept

            WHERE Deptno=V_Deptno;

ELSE

            NULL;

END IF;

IF(V_Sal IS NOT NULL)  THEN

            SELECT

Grade

INTO

            V_Grade

            FROM SalGrade

            WHERE V_Sal BETWEEN LoSal AND HiSal;

ELSE

            NULL;

END IF;

DBMS_OUTPUT.PUT_LINE(' DATABASE.Connection     Exit.');

DBMS_OUTPUT.PUT_LINE('Employee having Employe ID '|| V_Empno || ' has following details....');

DBMS_OUTPUT.PUT_LINE('Name is :'|| INITCAP(V_Name));

DBMS_OUTPUT.PUT_LINE('Department no is :' || V_Deptno || '  Department name is  ' || V_DName || ' is Situated at ' || V_Loc);

DBMS_OUTPUT.PUT_LINE('Designation : '|| V_Job);

DBMS_OUTPUT.PUT_LINE('Salary as for Indian Rupees : '||  TO_CHAR(V_Sal,'L99G999D99','NLS_CURRENCY=INR') || 'and pay grade is ' || V_Grade);

DBMS_OUTPUT.PUT_LINE('Commission : ' || NVL(TO_CHAR(V_Comm),'Sorry...No Commissino'));

DBMS_OUTPUT.PUT_LINE('Hired on : ' || TO_CHAR(V_HireDate,'DDTh Month  yyyySP '));

DBMS_OUTPUT.PUT_LINE('Working under manager ID ' || NVL(TO_CHAR(V_Mgr),'Can''t Controled ' )|| ' and manager name is ' || NVL(V_MgrName,V_Name)) ;

END;


  ===========================================================

                                                Anchor   Data type format 

 ===========================================================

DECLARE

V_Empno                   Emp.Empno%TYPE :=&Empid;

V_Name                     Emp.Ename%TYPE;

V_Deptno                 Emp.Deptno%TYPE;

V_Job                          Emp.Job%TYPE;

V_Sal                           Emp.Sal%TYPE;

V_Comm                     Emp.Comm%TYPE;

V_HireDate              Emp.HireDate%TYPE;

V_Mgr                         Emp.Mgr%TYPE;

BEGIN

DBMS_OUTPUT.PUT_LINE('CONNECT TO DATABASE...........');

SELECT EName,Deptno,Job,Sal,Comm,HireDate,Mgr

INTO

V_Name,V_Deptno,V_Job,V_Sal,V_Comm,V_HireDate,V_Mgr

FROM Emp

WHERE Empno=V_Empno;

DBMS_OUTPUT.PUT_LINE('Employee having Employe ID '|| V_Empno || ' has following details....');

DBMS_OUTPUT.PUT_LINE('Name is :'|| INITCAP(V_Name));

DBMS_OUTPUT.PUT_LINE('Department no is :' || V_Deptno);

DBMS_OUTPUT.PUT_LINE('Designation : '|| V_Job);

DBMS_OUTPUT.PUT_LINE('Salary as for Indian Rupees : '||  TO_CHAR(V_Sal,'L99G999D99','NLS_CURRENCY=INR'));

DBMS_OUTPUT.PUT_LINE('Commission : ' || NVL(TO_CHAR(V_Comm),'Sorry...No Commissino'));

DBMS_OUTPUT.PUT_LINE('Hired on : ' || TO_CHAR(V_HireDate,'DDTh Month  yyyySP '));

DBMS_OUTPUT.PUT_LINE('Working under manager ID ' || NVL(TO_CHAR(V_Mgr),'Can''t Controled ' ));

END;

/* Manager information with out selef join */

DECLARE

V_Empno         Emp.Empno%TYPE :=&Empid;

V_Name         Emp.EName%TYPE;

V_Deptno      Emp.Deptno%TYPE;

V_Job              Emp.Job%TYPE;

V_Sal                Emp.Sal%TYPE;

V_Comm         Emp.Comm%TYPE;

V_HireDate   Emp.HireDate%TYPE;

V_Mgr             Emp.Mgr%TYPE;

V_MgrName   Emp.EName%TYPE;

BEGIN

DBMS_OUTPUT.PUT_LINE('CONNECT TO DATABASE...........');

SELECT

EName,Deptno,Job,Sal,Comm,HireDate,Mgr

INTO

V_Name,V_Deptno,V_Job,V_Sal,V_Comm,V_HireDate,V_Mgr

FROM Emp

WHERE Empno=V_Empno;

IF(V_Mgr IS NOT NULL)  THEN

            SELECT EName

            INTO

            V_MgrName

            FROM Emp

            WHERE Empno=V_Mgr;

ELSE

            NULL;

END IF;

DBMS_OUTPUT.PUT_LINE(' DATABASE.Connection     Exit.');

DBMS_OUTPUT.PUT_LINE('Employee having Employe ID '|| V_Empno || ' has following details....');

DBMS_OUTPUT.PUT_LINE('Name is :'|| INITCAP(V_Name));

DBMS_OUTPUT.PUT_LINE('Department no is :' || V_Deptno);

DBMS_OUTPUT.PUT_LINE('Designation : '|| V_Job);

DBMS_OUTPUT.PUT_LINE('Salary as for Indian Rupees : '||  TO_CHAR(V_Sal,'L99G999D99','NLS_CURRENCY=INR'));

DBMS_OUTPUT.PUT_LINE('Commission : ' || NVL(TO_CHAR(V_Comm),'Sorry...No Commissino'));

DBMS_OUTPUT.PUT_LINE('Hired on : ' || TO_CHAR(V_HireDate,'DDTh Month  yyyySP '));

DBMS_OUTPUT.PUT_LINE('Working under manager ID ' || NVL(TO_CHAR(V_Mgr),'Can''t Controled ' )|| ' and manager name is ' || NVL(V_MgrName,V_Name)) ;

END;

/* Department Info with out join */

DECLARE

V_Empno          Emp.Empno%TYPE :=&Empid;

V_Name         Emp.EName%TYPE ;

V_Deptno      Emp.Deptno%TYPE;

V_Job              Emp.Job%TYPE;

V_Sal               Emp.Sal%TYPE;

V_Comm         Emp.Comm%TYPE;

V_HireDate   Emp.HireDate%TYPE;

V_Mgr             Emp.Mgr%TYPE;

V_MgrName   Emp.EName%TYPE;

V_Dname       Dept.DName%TYPE;

V_LOC             Dept.LOC%TYPE;

BEGIN

DBMS_OUTPUT.PUT_LINE('CONNECT TO DATABASE...........');

SELECT

 EName,Deptno,Job,Sal,Comm,HireDate,Mgr

INTO

V_Name,V_Deptno,V_Job,V_Sal,V_Comm,V_HireDate,V_Mgr

FROM Emp

WHERE Empno=V_Empno;

IF(V_Mgr IS NOT NULL)  THEN

            SELECT

 EName

            INTO

            V_MgrName

            FROM Emp

            WHERE Empno=V_Mgr;

ELSE

            NULL;

END IF;

IF(V_Deptno IS NOT NULL)  THEN

            SELECT

DName,LOC

            INTO

            V_Dname,V_Loc

            FROM Dept

            WHERE Deptno=V_Deptno;

ELSE

            NULL;

END IF;

DBMS_OUTPUT.PUT_LINE(' DATABASE.Connection     Exit.');

DBMS_OUTPUT.PUT_LINE('Employee having Employe ID '|| V_Empno || ' has following details....');

DBMS_OUTPUT.PUT_LINE('Name is :'|| INITCAP(V_Name));

DBMS_OUTPUT.PUT_LINE('Department no is :' || V_Deptno || '  Department name is  ' || V_DName || ' is Situated at ' || V_Loc);

DBMS_OUTPUT.PUT_LINE('Designation : '|| V_Job);

DBMS_OUTPUT.PUT_LINE('Salary as for Indian Rupees : '||  TO_CHAR(V_Sal,'L99G999D99','NLS_CURRENCY=INR'));

DBMS_OUTPUT.PUT_LINE('Commission : ' || NVL(TO_CHAR(V_Comm),'Sorry...No Commission'));

DBMS_OUTPUT.PUT_LINE('Hired on : ' || TO_CHAR(V_HireDate,'DDTh Month  yyyySP '));

DBMS_OUTPUT.PUT_LINE('Working under manager ID ' || NVL(TO_CHAR(V_Mgr),'Can''t Controled ' )|| ' and manager name is ' || NVL(V_MgrName,V_Name)) ;

END;

DECLARE

s

V_Name         Emp.EName%TYPE ;

V_Deptno      Emp.Deptno%TYPE;

V_Job              Emp.Job%TYPE;

V_Sal               Emp.Sal%TYPE;

V_Comm         Emp.Comm%TYPE;

V_HireDate   Emp.HireDate%TYPE;

V_Mgr             Emp.Mgr%TYPE;

V_MgrName   Emp.EName%TYPE;

V_Dname       Dept.Dname%TYPE;

V_LOC             Dept.LOC%TYPE;

V_Grade         SalGrade.Grade%TYPE;

BEGIN

DBMS_OUTPUT.PUT_LINE('CONNECT TO DATABASE...........');

SELECT EName,Deptno,Job,Sal,Comm,HireDate,Mgr

INTO

V_Name,V_Deptno,V_Job,V_Sal,V_Comm,V_HireDate,V_Mgr

FROM Emp

WHERE Empno=V_Empno;

IF(V_Mgr IS NOT NULL)  THEN

            SELECT

EName

            INTO

            V_MgrName

            FROM Emp

            WHERE Empno=V_Mgr;

ELSE

            NULL;

END IF;

IF(V_Deptno IS NOT NULL)  THEN

            SELECT

 DName,LOC

             INTO

            V_Dname,V_Loc

            FROM Dept

            WHERE Deptno=V_Deptno;

ELSE

            NULL;

END IF;

IF(V_Sal IS NOT NULL)  THEN

            SELECT

Grade

INTO

            V_Grade

            FROM SalGrade

            WHERE V_Sal BETWEEN LoSal AND HiSal;

ELSE

            NULL;

END IF;

DBMS_OUTPUT.PUT_LINE(' DATABASE.Connection     Exit.');

DBMS_OUTPUT.PUT_LINE('Employee having Employe ID '|| V_Empno || ' has following details....');

DBMS_OUTPUT.PUT_LINE('Name is :'|| INITCAP(V_Name));

DBMS_OUTPUT.PUT_LINE('Department no is :' || V_Deptno || '  Department name is  ' || V_DName || ' is Situated at ' || V_Loc);

DBMS_OUTPUT.PUT_LINE('Designation : '|| V_Job);

DBMS_OUTPUT.PUT_LINE('Salary as for Indian Rupees : '||  TO_CHAR(V_Sal,'L99G999D99','NLS_CURRENCY=INR') || 'and pay grade is ' || V_Grade);

DBMS_OUTPUT.PUT_LINE('Commission : ' || NVL(TO_CHAR(V_Comm),'Sorry...No Commissino'));

DBMS_OUTPUT.PUT_LINE('Hired on : ' || TO_CHAR(V_HireDate,'DDTh Month  yyyySP '));

DBMS_OUTPUT.PUT_LINE('Working under manager ID ' || NVL(TO_CHAR(V_Mgr),'Can''t Controled ' )|| ' and manager name is ' || NVL(V_MgrName,V_Name)) ;

END;


 

=================================================================

                                                            Row Type Data

=================================================================

DECLARE

EmpRecode     Emp%ROWTYPE;

BEGIN

DBMS_OUTPUT.PUT_LINE('CONNECT TO DATABASE...........');

SELECT

*

INTO

EmpRecode

FROM Emp

WHERE Empno=&Empno;

DBMS_OUTPUT.PUT_LINE('Employee having Employe ID '|| EmpRecode.Empno || ' has following details....');

DBMS_OUTPUT.PUT_LINE('Name is :'|| INITCAP(EmpRecode.EName));

DBMS_OUTPUT.PUT_LINE('Department no is :' || EmpRecode.Deptno);

DBMS_OUTPUT.PUT_LINE('Designation : '||EmpRecode.Job);

DBMS_OUTPUT.PUT_LINE('Salary as for Indian Rupees : '||  TO_CHAR(EmpRecode.Sal,'L99G999D99','NLS_CURRENCY=INR'));

DBMS_OUTPUT.PUT_LINE('Commission : ' || NVL(TO_CHAR(EmpRecode.Comm),'Sorry...No Commissino'));

DBMS_OUTPUT.PUT_LINE('Hired on : ' || TO_CHAR(EmpRecode.HireDate,'DDTh Month  yyyySP '));

DBMS_OUTPUT.PUT_LINE('Working under manager ID ' || NVL(TO_CHAR(EmpRecode.Mgr),'Can''t Controled ' ));

END;

DECLARE

EmpRecode              Emp%ROWTYPE;

EmpRecodes           EmpRecode%TYPE;

V_MgrName              Emp.EName%TYPE;

BEGIN

DBMS_OUTPUT.PUT_LINE('CONNECT TO DATABASE...........');

SELECT

*

INTO

EmpRecodes

FROM Emp

WHERE Empno=&EmployeeID;

IF(EmpRecodes.Mgr IS NOT NULL)  THEN

             SELECT

             EName

             INTO

             V_MgrName

             FROM Emp

             WHERE Empno=EmpRecodes.Mgr;

ELSE

            NULL;

END IF;

DBMS_OUTPUT.PUT_LINE(' DATABASE.Connection     Exit.');

DBMS_OUTPUT.PUT_LINE('Employee having Employe ID '|| EmpRecodes.Empno || ' has following details....');

DBMS_OUTPUT.PUT_LINE('Name is :'|| INITCAP(EmpRecodes.EName));

DBMS_OUTPUT.PUT_LINE('Department no is :' || EmpRecodes.Deptno);

DBMS_OUTPUT.PUT_LINE('Designation : '|| EmpRecodes.Job);

DBMS_OUTPUT.PUT_LINE('Salary as for Indian Rupees : '||  TO_CHAR(EmpRecodes.Sal,'L99G999D99','NLS_CURRENCY=INR'));

DBMS_OUTPUT.PUT_LINE('Commission : ' || NVL(TO_CHAR(EmpRecodes.Comm),'Sorry...No Commissino'));

DBMS_OUTPUT.PUT_LINE('Hired on : ' || TO_CHAR(EmpRecodes.HireDate,'DDTh Month  yyyySP '));

DBMS_OUTPUT.PUT_LINE('Working under manager ID ' || NVL(TO_CHAR(EmpRecodes.Mgr),'Can''t Controled ' )|| ' and manager name is ' || NVL(V_MgrName,EmpRecodes.EName)) ;

END;

/* Department Info with out join */

DECLARE

EmpRecode              Emp%ROWTYPE;

EmpRecodes            EmpRecode%TYPE; 

V_MgrName              EmpRecodes.EName%TYPE;

Department             Dept%ROWTYPE;

V_LOC                         VARCHAR2(20);

BEGIN

DBMS_OUTPUT.PUT_LINE('CONNECT TO DATABASE...........');

SELECT

 *

INTO

EmpRecodes

FROM Emp

WHERE Empno=&Empno;

IF(EmpRecodes.Mgr IS NOT NULL)  THEN

            SELECT

            EName

            INTO

            V_MgrName

            FROM Emp

            WHERE Empno=EmpRecodes.Mgr;

ELSE

            NULL;

END IF;

IF(EmpRecodes.Deptno IS NOT NULL)  THEN

            SELECT

            *

            INTO

            Department

            FROM Dept

            WHERE Deptno=EmpRecodes.Deptno;

ELSE

            NULL;

END IF;

DBMS_OUTPUT.PUT_LINE(' DATABASE.Connection     Exit.');

DBMS_OUTPUT.PUT_LINE('Employee having Employe ID '|| EmpRecodes.Empno || ' has following details....');

DBMS_OUTPUT.PUT_LINE('Name is :'|| INITCAP(EmpRecodes.EName));

DBMS_OUTPUT.PUT_LINE('Department no is :' || EmpRecodes.Deptno || '  Department name is  ' || Department.DName || ' is Situated at ' || Department.Loc);

DBMS_OUTPUT.PUT_LINE('Designation : '|| EmpRecodes.Job);

DBMS_OUTPUT.PUT_LINE('Salary as for Indian Rupees : '||  TO_CHAR(EmpRecodes.Sal,'L99G999D99','NLS_CURRENCY=INR'));

DBMS_OUTPUT.PUT_LINE('Commission : ' || NVL(TO_CHAR(EmpRecodes.Comm),'Sorry...No Commissino'));

DBMS_OUTPUT.PUT_LINE('Hired on : ' || TO_CHAR(EmpRecodes.HireDate,'DDTh Month  yyyySP '));

DBMS_OUTPUT.PUT_LINE('Working under manager ID ' || NVL(TO_CHAR(EmpRecodes.Mgr),'Can''t Controled ' )|| ' and manager name is ' || NVL(V_MgrName,EmpRecodes.EName)) ;

END;

 

DECLARE

EmpRecode              Emp%ROWTYPE;

Employee                  EmpRecode%TYPE;

V_MgrName              Employee.EName%TYPE;

Department                         Dept%ROWTYPE;

SalaryGrade             SalGrade%ROWTYPE;

BEGIN

DBMS_OUTPUT.PUT_LINE('CONNECT TO DATABASE...........');

SELECT

*

INTO

Employee

FROM Emp

WHERE Empno=&Empno;

IF(Employee.Mgr IS NOT NULL)  THEN

            SELECT

            EName

            INTO

            V_MgrName

            FROM Emp

            WHERE Empno=Employee.Mgr;

ELSE

            NULL;

END IF;

IF(Employee.Deptno IS NOT NULL)  THEN

            SELECT

             *

             INTO

            Department

            FROM Dept

            WHERE Deptno=Employee.Deptno;

ELSE

            NULL;

END IF;

IF(Employee.Sal IS NOT NULL)  THEN

            SELECT

            Grade

            INTO

            SalaryGrade.Grade

            FROM SalGrade

            WHERE Employee.Sal BETWEEN LoSal AND HiSal;

ELSE

            NULL;

END IF;

DBMS_OUTPUT.PUT_LINE(' DATABASE.Connection     Exit.');

DBMS_OUTPUT.PUT_LINE('Employee having Employe ID '||Employee.Empno || ' has following details....');

DBMS_OUTPUT.PUT_LINE('Name is :'|| INITCAP(Employee.EName));

DBMS_OUTPUT.PUT_LINE('Department no is :' ||Employee.Deptno || '  Department name is  ' || Department.DName || ' is Situated at ' || Department.Loc);

DBMS_OUTPUT.PUT_LINE('Designation : '|| Employee.Job);

DBMS_OUTPUT.PUT_LINE('Salary as for Indian Rupees : '||  TO_CHAR(Employee.Sal,'L99G999D99','NLS_CURRENCY=INR') || 'and pay grade is ' || SalaryGrade.Grade);

DBMS_OUTPUT.PUT_LINE('Commission : ' || NVL(TO_CHAR(Employee.Comm),'Sorry...No Commissino'));

DBMS_OUTPUT.PUT_LINE('Hired on : ' || TO_CHAR(Employee.HireDate,'DDTh Month  yyyySP '));

DBMS_OUTPUT.PUT_LINE('Working under manager ID ' || NVL(TO_CHAR(Employee.Mgr),'Can''t Controled ' )|| ' and manager name is ' || NVL(V_MgrName,Employee.EName)) ;

END;


============================================================

                                                            User Type

===============================================================

DECLARE

 V_Empno     Emp.Empno%TYPE := &Empno;

 TYPE EmpRecodeType IS RECORD

 (

   EName         Emp.EName%TYPE,

   Deptno       Emp.Deptno%TYPE,

   Sal                Emp.Sal%TYPE

 );

 EmpRecode             EmpRecodeType;

 BEGIN

 SELECT EName,Deptno,Sal

 INTO

 EmpRecode.EName,EmpRecode.Deptno,EmpRecode.Sal

 FROM Emp

 WHERE Empno=V_Empno;

 DBMS_OUTPUT.PUT_LINE('The Details of the Employee having Employee number '|| V_Empno || 'are shown below ‘);

 DBMS_OUTPUT.PUT_LINE('Name : '|| EmpRecode.EName );

 DBMS_OUTPUT.PUT_LINE('Department Number is : '||EmpRecode.Deptno);

  DBMS_OUTPUT.PUT_LINE('Salary as for indian rupee is : ' || TO_CHAR(EmpRecode.Sal,'L99G999D99',

 END;

DECLARE

V_Empno     Emp.Empno%TYPE := &Empno;

TYPE EmpType IS RECORD

(

   Employee Emp%ROWTYPE

);

TYPE EmpDeptType IS RECORD

(

   Depatment   Dept%ROWTYPE,

   Employees   EmpType

);

TYPE EmpDeptGradeType IS RECORD

(

   SalGrades     SalGrade%ROWTYPE,

   Depatments  EmpDeptType

);

EmpDptGradeRecodes EmpDeptGradeType;

BEGIN

SELECT *

INTO

EmpDptGradeRecodes.Depatments.Employees.Employee

FROM Emp

WHERE Empno=V_Empno;

IF EmpDptGradeRecodes.Depatments.Employees.Employee.Deptno IS NOT NULL THEN

            SELECT *

            INTO

            EmpDptGradeRecodes.Depatments.Depatment

            FROM Dept

            WHERE Deptno=EmpDptGradeRecodes.Depatments.Employees.Employee.Deptno;

ELSE

            DBMS_OUTPUT.PUT_LINE('Sorry  Employee is not assign into any Depatment ');

END IF;

IF EmpDptGradeRecodes.Depatments.Employees.Employee.Sal IS NOT NULL THEN

            SELECT Grade

            INTO

            EmpDptGradeRecodes.SalGrades.Grade

            FROM SalGrade

            WHERE EmpDptGradeRecodes.Depatments.Employees.Employee.Sal

                        BETWEEN LoSal AND HiSal;

ELSE

            DBMS_OUTPUT.PUT_LINE('Sorry ..Salary is not given to the Employee ');

END IF;

DBMS_OUTPUT.PUT_LINE('The Details of the Employee having Employee number '|| V_Empno || ' are shown below...........');

DBMS_OUTPUT.PUT_LINE('Name : '|| EmpDptGradeRecodes.Depatments.Employees.Employee.EName );

DBMS_OUTPUT.PUT_LINE('Department Number is : '||EmpDptGradeRecodes.Depatments.Employees.Employee.Deptno || '  Departname is  '|| EmpDptGradeRecodes.Depatments.Depatment.DName || ' anr it''s situated at ' || EmpDptGradeRecodes.Depatments.Depatment.LOC);

DBMS_OUTPUT.PUT_LINE('Designation :'|| EmpDptGradeRecodes.Depatments.Employees.Employee.Job);

DBMS_OUTPUT.PUT_LINE('Hired on ' || TO_CHAR(EmpDptGradeRecodes.Depatments.Employees.Employee.HireDate,'DDTH MONTH DAY YYYYSP'));

DBMS_OUTPUT.PUT_LINE('Commison  : '|| NVL(TO_CHAR(EmpDptGradeRecodes.Depatments.Employees.Employee.Comm,'9G999D99'),'Sorry.. No Commision'));

DBMS_OUTPUT.PUT_LINE('Mamager ID :' ||  NVL(TO_CHAR(EmpDptGradeRecodes.Depatments.Employees.Employee.Mgr),'Cant''t Controled'));

DBMS_OUTPUT.PUT_LINE('Salary as for indian rupee is : ' || TO_CHAR(EmpDptGradeRecodes.Depatments.Employees.Employee.Sal,'L99G999D99','NLS_CURRENCY= INR') || '  and his grade as por pay grade is ' || EmpDptGradeRecodes.SalGrades.Grade );

END;