Dual
Dual
1.Mathematical Functions:-
SQL> select abs(-19) from dual;
ABS(-19)
---------
19
POWER(3,2)
----------
9
ROUND(15.176,1)
---------------
15.2
ROUND(15.176,2)
---------------
15.18
SQRT(16)
---------
4
CEIL(25.6)
----------
26
TRUNC(25.563,2)
---------------
25.56
SQL> select mod(7,2) from dual;
MOD(7,2)
---------
1
2.String Functions:-
LOWER(
------
joseph
UPPER(
------
JOSEPH
INITCAP
------
Joseph
LENGTH('JOSEPH')
----------------
6
SUBSTR
--
se
LTRIM('XX
---------
josephxxx
RTRIM('XXX
----------
xxxxjoseph
SQL> select RPAD('joseph',10,'*') from dual;
RPAD('JOSE
----------
joseph****
LPAD('JOSE
----------
****joseph
Conversion Functions:-
SQL> select chr(97) from dual;
C
-
a
C
-
z
ASCII(‘a')
----------
97
SQL> select ASCII('b') from dual;
ASCII('B')
----------
98
Date Functions:-
SQL> select sysdate from dual;
SYSDATE
---------
08-APR-06
TO_CHAR(SYSDATE,'
-----------------
April 08,2006
TO_DATE('
---------
06-APR-08
MONTHS_BETWEEN('08-JUN-06','08-APR-06')
---------------------------------------
2
Cursors:-
1.Write a PL/SQL code to
SQL> declare
2 cursor c is select empno,sal from emp where deptno=20;
3 eno emp.empno%type;
4 salary emp.sal%type;
5 begin
6 open c;
7 loop
8 fetch c into eno,salary;
9 update emp set sal=salary + (salary*0.05) where empno=eno;
10 end loop;
11 commit;
12 end;
13 /
PL/SQL procedure successfully completed.
SQL> declare
2 sal number(7,2):=&sal;
3 begin
4 if sal>=5000 then
5 goto a2;
6 else
7 goto a1;
8 end if;
9 <<a1>>
10 sal:=sal+(sal*0.05);
11 dbms_output.put_line('salary='||sal);
12 <<a2>>
13 sal:=sal+(sal*0.02);
14 dbms_output.put_line('salary='||sal);
15 end;
16 /
Enter value for sal: 8000
old 2: sal number(7,2):=&sal;
new 2: sal number(7,2):=8000;
salary=8160