You are on page 1of 7

NAMED PROCEDURE PACKAGE FUNCTION TRIGGER UNNAMED(ANONYMOUS) VARIABLE.

-TEMPORARY STORAGE,EASY MANIPULATION RULES-SHOULDN'T HAVE SAME NAME AS DATABASE COLUMN NAME. MAX LENGTH DEPENDENT ON VERSIONS OF ORACLE. CONSTANTS. SQL> 2 3 4 BEGIN NULL; END; /

PL/SQL procedure successfully completed. ERROR SQL> BEGIN 2 NULL 3 END; 4 5 / END; * ERROR at line 3: ORA-06550: line 3, column 1: PLS-00103: Encountered the symbol "END" when expecting one of the following: ; The symbol ";" was substituted for "END" to continue.

SQL> ED Wrote file afiedt.buf 1 DECLARE 2 V_SAL NUMBER; 3 V_ENAME VARCHAR2(20); 4 BEGIN 5 SELECT ENAME,SAL INTO V_ENAME,V_SAL FROM EMP WHERE EMPNO=7900; 6 DBMS_OUTPUT.PUT_LINE(V_ENAME || ' ' ||V_SAL); 7* END; SQL> / JAMES 950 PL/SQL procedure successfully completed. SQL> ED Wrote file afiedt.buf 1 DECLARE

2 V_SAL EMP.SAL%TYPE; 3 V_ENAME EMP.ENAME%TYPE; 4 BEGIN 5 SELECT ENAME,SAL INTO V_ENAME,V_SAL FROM EMP WHERE EMPNO=7900; 6 DBMS_OUTPUT.PUT_LINE(V_ENAME || ' ' ||V_SAL); 7* END; SQL> / JAMES 950 PL/SQL procedure successfully completed.

SQL> ED Wrote file afiedt.buf

IF YOU WANT TO USE * THEN WRITE COLUMN NAMES IN ORDER THEY APPEAR.(ON LINE 5); SELECT * INTO )ORDERWISE) FROM EMPWHERE CONDITION; FOR MAINTAINCE THE ABOVE COMMAND IS USED. PERFORMANCE DEGRADE.IT WILL AUTO FIND TYPE AND LENGTH.

1 DECLARE 2 V_SAL EMP.SAL%TYPE; 3 V_ENAME EMP.ENAME%TYPE; 4 V_DEPTNO EMP.DEPTNO%TYPE; 5 V_MGR EMP.MGR%TYPE; 6 BEGIN 7 SELECT ENAME,SAL,DEPTNO,MGR INTO V_ENAME,V_SAL,V_DEPTNO,V_MGR FROM EMP W HERE EMPNO=7900; 8 DBMS_OUTPUT.PUT_LINE(V_ENAME || ' ' ||V_SAL||V_DEPTNO); 9 DBMS_OUTPUT.PUT_LINE(V_MGR); 10* END; SQL> / JAMES 95030 7698 PL/SQL procedure successfully completed.

DBMS_OUTPUT-TAKES SINGLE ARGUMENT IF COLUMNS NAMES TO BE GIVEN THEN EARLIER PRINT DBMSOUTPUT AS CONCATENATED COLUM N NAMES. SQL> DECLARE 2 V_VARIABLE NUMBER:=10;

3 4 5 6

BEGIN DBMS_OUTPUT.PUT_LINE(V_VARIABLE); END; /

PL/SQL procedure successfully completed. SQL> SET SERVEROUTPUT_ON SP2-0265: serveroutput must be set ON or OFF SQL> /

SQL> ED Wrote file afiedt.buf 1 DECLARE 2 V_VARIABLE NUMBER:=10; 3 CHAR_B VARCHAR(6):='KISHOR'; 4 BEGIN 5 DBMS_OUTPUT.PUT_LINE(CHAR_B); 6* END; SQL> / KISHOR PL/SQL procedure successfully completed. SQL> ED Wrote file afiedt.buf 1 2 3 4 5 6 7* SQL> 120 DECLARE V_VARIABLE NUMBER:=10; C_CO CONSTANT NUMBER:=120; CHAR_B VARCHAR(6):='KISHOR'; BEGIN DBMS_OUTPUT.PUT_LINE(C_CO); END; /

PL/SQL procedure successfully completed. SQL> ED Wrote file afiedt.buf 1 DECLARE 2 V_VARIABLE NUMBER:=10; 3 C_CO CONSTANT NUMBER:=120; 4 D_DATE DATE:='01-JAN-45'; 5 CHAR_B VARCHAR(6):='KISHOR'; 6 BEGIN 7 DBMS_OUTPUT.PUT_LINE(D_DATE); 8* END; SQL> / 01-JAN-45 PL/SQL procedure successfully completed. SQL> ED Wrote file afiedt.buf

1 DECLARE 2 V_VARIABLE NUMBER:=10; 3 C_CO CONSTANT NUMBER:=120; 4 D_DATE DATE:='01-MON-45'; 5 CHAR_B VARCHAR(6):='KISHOR'; 6 BEGIN 7 DBMS_OUTPUT.PUT_LINE(D_DATE); 8* END; SQL> / V_VARIABLE NUMBER:=10; * ERROR at line 2: ORA-01843: not a valid month ORA-06512: at line 4 SQL> ED Wrote file afiedt.buf 1 DECLARE 2 V_VARIABLE NUMBER:=10; 3 C_CO CONSTANT NUMBER:=120; 4 D_DATE DATE:='01-MAY-45'; 5 CHAR_B VARCHAR(6):='KISHOR'; 6 BEGIN 7 DBMS_OUTPUT.PUT_LINE(D_DATE); 8* END; SQL> / 01-MAY-45 PL/SQL procedure successfully completed. 1 2 3 4 5 6* L> 0 DECLARE V_VARIABLE NUMBER:=10; BEGIN SELECT SAL INTO V_VARIABLE FROM EMP WHERE EMPNO=7900; DBMS_OUTPUT.PUT_LINE(V_VARIABLE); END; /

Wrote file afiedt.buf 1 DECLARE 2 V_VARIABLE NUMBER:=10; 3 BEGIN 4 SELECT SAL INTO V_VARIABLE FROM EMP; 5 DBMS_OUTPUT.PUT_LINE(V_VARIABLE); 6* END; 7 / DECLARE * ERROR at line 1: ORA-01422: exact fetch returns more than requested number of rows ORA-06512: at line 4

PL/SQL procedure successfully completed. SQL> SET SERVEROUTPUT ON SQL> / 10 PL/SQL procedure successfully completed.

SQL> ED Wrote file afiedt.buf 1 2 3 4 5 6* SQL> 950 DECLARE V_VARIABLE NUMBER:=10; BEGIN SELECT SAL INTO V_VARIABLE FROM EMP WHERE EMPNO=7900; DBMS_OUTPUT.PUT_LINE(V_VARIABLE); END; /

PL/SQL procedure successfully completed. SQL> SELECT * FROM EMP; EMPNO EPTNO -------------7369 20 7499 30 7521 30 7566 20 7654 30 7698 30 7782 10 7788 20 7839 10 7844 30 7876 20 7900 30 7902 20 7934 10 ENAME JOB MGR HIREDATE SAL COMM D

---------- --------- ---------- --------- ---------- ---------- ----SMITH ALLEN WARD JONES MARTIN BLAKE CLARK SCOTT KING TURNER ADAMS JAMES FORD MILLER CLERK SALESMAN SALESMAN MANAGER SALESMAN MANAGER MANAGER ANALYST PRESIDENT SALESMAN CLERK CLERK ANALYST CLERK 7902 17-DEC-80 7698 20-FEB-81 7698 22-FEB-81 7839 02-APR-81 7698 28-SEP-81 7839 01-MAY-81 7839 09-JUN-81 7566 19-APR-87 17-NOV-81 7698 08-SEP-81 7788 23-MAY-87 7698 03-DEC-81 7566 03-DEC-81 7782 23-JAN-82 800 1600 1250 2975 1250 2850 2450 3000 5000 1500 1100 950 3000 1300 0 1400 300 500

14 rows selected.

SQL> ED Wrote file afiedt.buf 1* SQL> 2 3 4 5 6 7 8 950 SELECT * FROM EMP DECLARE V_VARIABLE NUMBER:=10; BEGIN SELECT SAL INTO V_VARIABLE FROM EMP WHERE EMPNO=7900; DBMS_OUTPUT.PUT_LINE(V_VARIABLE); END; /

PL/SQL procedure successfully completed. SQL> SQL> ED Wrote file afiedt.buf 1 DECLARE 2 V_VARIABLE NUMBER:=10; 3 BEGIN 4 SELECT SAL INTO V_VARIABLE FROM EMP; 5 DBMS_OUTPUT.PUT_LINE(V_VARIABLE); 6* END; 7 / DECLARE * ERROR at line 1: ORA-01422: exact fetch returns more than requested number of rows ORA-06512: at line 4 HERE BELOW. CREATES A ROW TYPE VARIABLE. ENTIRE ROW GETS COPIED BY *. IF DIFFERENT COLUMN NAMES ARE GIVEN THEN DIFFERENT VARIABLES ARE GIVEN. U CAN COLLECT THE DATA TOGETHER BUT CANNOT PRINT THEM TOGETHER PRINT COMPONENT W ISE. SQL> ED Wrote file afiedt.buf 1 DECLARE 2 V_RECORD EMP%ROWTYPE;--RECORD TYPE VARIABLE 3 BEGIN 4 SELECT * INTO V_RECORD FROM EMP WHERE EMPNO=7900; 5 DBMS_OUTPUT.PUT_LINE(V_RECORD.ENAME || ' ' ||V_RECORD.SAL||V_RECORD.DEPT NO); 6* END; SQL> / JAMES 95030 PL/SQL procedure successfully completed.

SQL> ED Wrote file afiedt.buf 1 DECLARE 2 TYPE THREECOLUMNS IS RECORD--USER DEFINED RECORD TYPE. 3 ( 4 ENAME EMP.ENAME%TYPE, 5 SAL EMP.SAL%TYPE, 6 HIREDATE EMP.HIREDATE%TYPE 7 ); 8 V_RECORD THREECOLUMNS;--CUSTOMIZED RECORD TYPE VARIABLE 9 BEGIN 10 SELECT ENAME,SAL,HIREDATE INTO V_RECORD FROM EMP WHERE EMPNO=7900; 11 DBMS_OUTPUT.PUT_LINE(V_RECORD.ENAME || ' ' ||V_RECORD.SAL||V_RECORD.HIRE DATE); 12* END; SQL> / JAMES 95003-DEC-81 PL/SQL procedure successfully completed. LINE 10-OBSERVE ONLY 3 ARGUMENTS. LIKE STRUCTURE.

You might also like