PLSQL

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 4

1.

PLSQL E1 - AI=UTHOR WITH


PUBLISHER
SET SERVEROUTPUT ON;
DECLARE
CURSOR C1 IS SELECT BK.BOOKID, SUBSTR(BK.TITLE,1,10) AS TITLE, PB.P
UBLISHERNAME,
AU.FIRSTNAME||' '||AU.LASTNAME AS FULLNAME
FROM BOOK BK, PUBLISHER PB, AUTHOR AU 
WHERE BK.PUBLISHERID=PB.PUBLISHERID AND BK.AUTHOR_ID=AU.AUTHORID
ORDER BY BK.TITLE ASC;
C_REC C1%ROWTYPE;
BEGIN
DBMS_OUTPUT.PUT_LINE('BOOKID.............TITLE.............publishe
r.............Author');
OPEN C1;
LOOP 
FETCH C1 INTO C_REC;
EXIT WHEN C1%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(C_REC.BOOKID ||'...........'|| C_REC.TITLE ||'
...........'||C_REC.PUBLISHERNAME ||'...........'|| C_RE
C.FULLNAME);
END LOOP;
CLOSE C1;
END;
/
exit;

2. Pl/SQL E1 invalid dept in emp


table.
set serveroutput on;
declare
EMP_DEPTID emp.DEPT_ID%type;
DEPT_DEPTID DEPT.DEPT_ID%type;
cursor c is
select * from emp;
begin
for i in c loop
EMP_DEPTID:=i.DEPT_ID;
select d.DEPT_ID INTO DEPT_DEPTID FROM DEPT d where d.DEPT_ID=i.DEP
T_ID;
end loop;

Exception
    WHEN NO_DATA_FOUND THEN
      dbms_output.put_line('Dept ID :'||EMP_DEPTID||' is not a vali
d ID');  
END;
/

exit;

3. PL/SQL E1 insert new


publisher hackerrank solution.
  set serveroutput on
    
    declare
    l_publisherid publisher.publisherid%type;
    begin
    
        insert into publisher values (123, 'TTK Publisher')
        returning publisherid into l_publisherid;
           
        update book b set b.publisherid=l_publisherid
        where b.publisherid is null;
    
      declare
    
      cursor c is
    
        select * from book b
    left join author on authorid=author_id
    left join publisher p on b.publisherid=p.publisherid
    where p.publisherid=l_publisherid;
    
    
     begin
        dbms_output.put_line('BOOKID'||'.............'||'TITLE'||'.
............'||'publisher'||'.............'||'Author');
      for i in c loop
       dbms_output.put_line(i.bookid||'...........'||
substr(i.title,1,10)||'...........'||
i.publishername||'...........'||concat(i.firstname||' 
',i.lastname));
        end loop;
        END;
END;
/
exit;
4. PLSQL E1 handle exception
Hackerrank solution
set serveroutput on;
declare
d_id int;
d_name varchar2(200);
excep exception;
cursor cursor1 is
select distinct emp.dept_id as i,
dept.dept_name as n
from emp left outer join
dept on emp.dept_id=dept.dept_id;
begin
open cursor1;
loop
fetch cursor1 into d_id,d_name;
if d_name is null then
raise excep;
end if;
exit when cursor1%notfound;
dbms_output.put_line('Dept ID :'||d_id||' is '||d_name);
end loop;
close cursor1;
exception
when excep then
dbms_output.put_line('Dept ID :'||d_id||' is not a valid ID');
end;
/
exit;

You might also like