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;