Update DBMS/SQL/Week6/writeup.md

This commit is contained in:
Aadit Agrawal 2025-02-11 15:54:11 +05:30
parent 78565b88cb
commit 3f57583a7b

View File

@ -76,20 +76,20 @@ PL/SQL procedure successfully completed.
```SQL ```SQL
SQL> CREATE OR REPLACE PROCEDURE GetDriversWithoutAccidents AS SQL> CREATE OR REPLACE PROCEDURE GetDriversWithoutAccidents AS
2 BEGIN begin
3 FOR rec IN ( for rec in (
4 SELECT p.DRIVER_ID#, p.NAME, p.ADDRESS select p.driver_id#, p.name, p.address
5 FROM person p from person p
6 LEFT JOIN participated pa ON p.DRIVER_ID# = pa.DRIVER_ID# left join participated pa on p.driver_id# = pa.driver_id#
7 WHERE pa.REPORT_NUMBER IS NULL where pa.report_number is null
8 ) LOOP ) loop
9 DBMS_OUTPUT.PUT_LINE('Driver ID: ' || rec.DRIVER_ID# || dbms_output.put_line('driver id: ' || rec.driver_id# ||
10 ', Name: ' || rec.NAME || ', name: ' || rec.name ||
11 ', Address: ' || rec.ADDRESS); ', address: ' || rec.address);
12 END LOOP; end loop;
13 END; end;
14 / /
Procedure created. Procedure created.
``` ```
@ -101,3 +101,33 @@ Driver ID: 1235, Name: Rohit, Address: Banglalore India
PL/SQL procedure successfully completed. PL/SQL procedure successfully completed.
``` ```
Q5. Write a function that takes a REGNO as input and returns the total number of accidents in which the car was involved
```sql
SQL> create or replace function gettotalaccidentsbyregno(p_regno in varchar2)
return number
is
v_total_accidents number;
begin
select count(*)
into v_total_accidents
from participated
where regno = p_regno;
return v_total_accidents;
exception
when no_data_found then
return 0;
when others then
raise;
end;
/
Function created.
```
```SQL
SQL> SELECT GetTotalAccidentsByRegno('ABCD0001') AS Total_Accidents
2 FROM dual;
TOTAL_ACCIDENTS
---------------
1
```