Beruflich Dokumente
Kultur Dokumente
0 Features
" Returning into " clause:
Used to return the values thru " DML" stmts.
Used with update and delete stmts.
Ex:
>var a varchar2(20)
>var b number
> update emp set sal = sal + 3000
where empno = 7900
returning ename,sal into :a,:b;
> print a b
> delete from emp where empno = 7902
returning ename,sal into :a,:b;
> print a b
--------------------------------------------------------------* Bulk Collect:
Used to return bulk data into pl/sql variables.
Variables must be of pl/sql Table type only.
Improves performance while retrieving data.
Used with select, update, delete, Fetch stmts.
select ename,sal into a,b from emp
where empno = &ecode;
enter value for ecode : 101
declare
type names is table of emp.ename%type index by
binary_integer;
type pays is table of emp.sal%type index by
binary_integer;
n names; p pays;
begin
-- retrieving all employees in 1 transaction
select ename,sal bulk collect into n,p from emp;
-- printing table contents
dbms_output.put_line(' EMPLOY DETAILS ARE : ');
for i in 1 .. n.count loop
dbms_output.put_line(n(i)||' '||p(i));
end loop;
end;
In above code replace Select with these stmts
* update emp set sal = sal + 1000
where deptno = 30
returning ename,sal bulk collect into n,p;
* delete from emp where job = 'CLERK'
returning ename,sal bulk collect into n,p;
--------------------------------------------------------------Using Bulk collect in Fetch stmt :
declare
type names is table of emp.ename%type index by
binary_integer;
type pays is table of emp.sal%type index by
binary_integer;
n names; p pays;
* cursor c1 is select ename,sal from emp;
begin
* open c1;
* fetch c1 bulk collect into n,p;
-- printing table contents
for i in 1 .. n.count loop
dbms_output.put_line(n(i)||' '||p(i));
end loop;
close c1;
end;
--------------------------------------------------------------Dynamic SQL:
Supports to execute " DDL" stmts in Pl/sql block.
syntax: execute immediate(' DDL stmt ');
>begin
execute immediate(' create table employ1
(ecode number(4),
ename varchar2(20),
sal number(10)) ');
end;
Note: Table cannot be manipulated in same pl/sql
block .
begin
execute immediate(' drop table employ1 ');
end;
--------------------------------------------------------------Using Long and Raw Data types: ( 7.x )
Long :
Used to represent numbers or character values.
Max limit is 2 Gb.
But only once it can be used in Table.
Raw(n):
used to represent Images
Max limit is 256 Bytes(7.x) / 2000 Bytes(8.0)
Long Raw :
used to represent Images upto 2 Gb.
* Raw and Long Raw can be manipulated by Gui
tools only
begin