[SOLVED] DBS501 Assignment 1

$25

File Name: DBS501_Assignment_1.zip
File Size: 178.98 KB

SKU: [Solved] DBS501 Assignment1 Category: Tag:
5/5 - (1 vote)
assign2_part2 (1)
  1. Write the PL/SQL block that will as input accept the two letter Country Code (check table COUNTRIES for valid values) and then it will find all locations (Cities) with empty Province information. Then it will modify this blank value to a string of same symbols, with its length determined by the length of the Street Address string.

If the citys first letter is A, B, E or F then the string will contain only * symbol, if its first letter is C,D, G or H then it will be & symbol, otherwise it will be # symbol.

Show also the modified row from Locations table and then Undo your change.

You need also to code for following cases: there is MORE THAN ONE City with empty province and also if the Country Code does NOT have any Cities in the Locations table.

Here are the possible scenarios:

SQL> @q1;

Enter value for country: JP

City Hiroshima has modified its province to &&&&&&&&&&&&&&&

PL/SQL procedure successfully completed.

LOCATION_ID STREET_ADDRESS POSTAL_CODE

CITY STATE_PROVINCE CO

1300 9450 Kamiya-cho 6823

Hiroshima &&&&&&&&&&&&&&& JP

Rollback complete.

SQL> @q1;

Enter value for country: assign2_part2 (1)

City London has modified its province to ##############

LOCATION_ID STREET_ADDRESS POSTAL_CODE

CITY STATE_PROVINCE CO

2400 8204 Arthur St

London ############## UK

Rollback complete.

SQL> @q1;

Enter value for country: IT

This country has MORE THAN ONE City without province listed.

no rows selected

Rollback complete.

SQL> @q1;

Enter value for country: RS

This country has NO cities listed.

no rows selected

  1. Firstly, modify your table COUNTRIES by adding a new column called FLAG of fixed character length (7 characters).

Write the PL/SQL block that will as input accept Region Id (check table REGIONS for valid values) and then it will find all Countries with empty Location information (without City listed in that country). Then it will modify blank value in the column Flag for all such countries to become EMPTY_n (where n is their Region Id).

Next, it will display message about that country with NO city listed and also will count how many modifications were made in total.

Show also all modified rows from Countries table sorted by Region Id and then by country name and finally Undo your change.

You need also to code for following cases: there is MORE THAN ONE Country with empty Location in the provided Region and also if the provided Region does NOT exist.

Here are the possible scenarios:

SQL> @q2;

Enter value for region: 5

This region ID does NOT exist: 5

no rows selected

Rollback complete.

SQL> @q2;

Enter value for region: 1

This region ID has MORE THAN ONE country without cities listed: 1

no rows selected

Rollback complete.

SQL> @q2;

Enter value for region: 2

In the region 2 there is ONE country Argentina with NO city.

Number of countries with NO cities listed is: 11

CO COUNTRY_NAME REGION_ID FLAG

– – –

BE Belgium 1 Empty_1

DK Denmark 1 Empty_1

FR France 1 Empty_1

AR Argentina 2 Empty_2

HK HongKong 3 Empty_3

ZW Zimbabwe 4 Empty_4

IL Israel 4 Empty_4

KW Kuwait 4 Empty_4

NG Nigeria 4 Empty_4

ZM Zambia 4 Empty_4

EG Egypt 4 Empty_4

11 rows selected.

Rollback complete.

  1. Re-write the PL/SQL block from Question 2 so that will as input accept Region Id (check table REGIONS for valid values) and then it will find all Countries with empty Location information (without City listed in that country). Then it will modify blank value in the column Flag for all such countries to become EMPTY_n (where n is their Region Id) .

Next, it will populate INDEX TABLE with all country names (without cities) in the alphabetical order, so that their key values increase by 10 (starting from 10). Also, display all their elements, count total number of elements in the INDEX TABLE and finally display SECOND and BEFORE THE LAST element in the table (without using literal key value).

Then, it will display message about all countries with NO city listed for the provided Region Id in the alphabetical order including their total count.

Show also all modified rows from Countries table sorted by Region Id and then by country name and finally Undo your change.

You need also to code for the case: the provided Region does NOT exist.

Hint: Use Cursor For Loops where necessary and do NOT use Exception handler.

Here are the possible scenarios:

SQL> @q3;

Enter value for region: 5

This region ID does NOT exist: 5

no rows selected

Rollback complete.

SQL> @q3;

Enter value for region: 1

Index Table Key: 10 has a value of Argentina

Index Table Key: 20 has a value of Belgium

Index Table Key: 30 has a value of Denmark

Index Table Key: 40 has a value of Egypt

Index Table Key: 50 has a value of France

Index Table Key: 60 has a value of HongKong

Index Table Key: 70 has a value of Israel

Index Table Key: 80 has a value of Kuwait

Index Table Key: 90 has a value of Nigeria

Index Table Key: 100 has a value of Zambia

Index Table Key: 110 has a value of Zimbabwe

======================================================================

Total number of elements in the Index Table or Number of countries with NO cities listed is: 11

Second element (Country) in the Index Table is: Belgium

Before the last element (Country) in the Index Table is: Zambia

======================================================================

In the region 1 there is country Belgium with NO city.

In the region 1 there is country Denmark with NO city.

In the region 1 there is country France with NO city.

======================================================================

Total Number of countries with NO cities listed in the Region 1 is: 3

CO COUNTRY_NAME REGION_ID FLAG

– – –

BE Belgium 1 Empty_1

DK Denmark 1 Empty_1

FR France 1 Empty_1

AR Argentina 2 Empty_2

HK HongKong 3 Empty_3

EG Egypt 4 Empty_4

IL Israel 4 Empty_4

KW Kuwait 4 Empty_4

NG Nigeria 4 Empty_4

ZM Zambia 4 Empty_4

ZW Zimbabwe 4 Empty_4

11 rows selected.

Rollback complete.

SQL> @q3;

Enter value for region: 2

Index Table Key: 10 has a value of Argentina

Index Table Key: 20 has a value of Belgium

Index Table Key: 30 has a value of Denmark

Index Table Key: 40 has a value of Egypt

Index Table Key: 50 has a value of France

Index Table Key: 60 has a value of HongKong

Index Table Key: 70 has a value of Israel

Index Table Key: 80 has a value of Kuwait

Index Table Key: 90 has a value of Nigeria

Index Table Key: 100 has a value of Zambia

Index Table Key: 110 has a value of Zimbabwe

======================================================================

Total number of elements in the Index Table or Number of countries with NO cities listed is: 11

Second element (Country) in the Index Table is: Belgium

Before the last element (Country) in the Index Table is: Zambia

======================================================================

In the region 2 there is country Argentina with NO city.

======================================================================

Total Number of countries with NO cities listed in the Region 2 is: 1

CO COUNTRY_NAME REGION_ID FLAG

– – –

BE Belgium 1 Empty_1

DK Denmark 1 Empty_1

FR France 1 Empty_1

AR Argentina 2 Empty_2

HK HongKong 3 Empty_3

EG Egypt 4 Empty_4

IL Israel 4 Empty_4

KW Kuwait 4 Empty_4

NG Nigeria 4 Empty_4

ZM Zambia 4 Empty_4

ZW Zimbabwe 4 Empty_4

11 rows selected.

Rollback complete.

  1. Write the PL/SQL block that will as input accept two strings:
  • Any piece of course description in UPPER case
  • Beginning of Instructors last name in UPPER CASE

Then, it will find for this input match the following items: Course Number, Course Description, Section Id, Instructors Surname and Course Section Number and next it will figure out about the current enrollment for that Section Id. Finally, it will provide the total number of enrolled students through all Sections found.

You need also to code for the case: provided two strings do NOT match and there is NO data.

Hint: Avoid CPU consuming and performance problematic Multiple Tables Join with Grouping. You should use Nested Cursor For Loops instead, where the Inner Loop will have a parameter and will execute only once. Also, do NOT use Exception handler.

Here are the possible scenarios:

SQL> @q4;

Enter the piece of the course description in UPPER case:DATA

Enter the beginning of Instructor last name in UPPER CASE:W

There is NO data for this input match between the course description piece and the surname start of Instructor. Try again!

SQL> @q4;

Enter the piece of the course description in UPPER case:INTRO

Enter the beginning of Instructor last name in UPPER CASE:W

Course No: 120 Intro to Java Programming with Section Id: 149 is taught by Wojick in the Course Section: 4

This Section Id has an enrollment of: 1

*********************************************************************

Course No: 25 Intro to Programming with Section Id: 88 is taught by Wojick in the Course Section: 4

This Section Id has an enrollment of: 5

*********************************************************************

Course No: 240 Intro to the Basic Language with Section Id: 102 is taught by Wojick in the Course Section: 2

This Section Id has an enrollment of: 1

*********************************************************************

This input match has a total enrollment of: 7 students.

SQL> @q4;

Enter the piece of the course description in UPPER case:JAVA

Enter the beginning of Instructor last name in UPPER CASE:S

Course No: 124 Advanced Java Programming with Section Id: 127 is taught by Schorin in the Course Section: 2

This Section Id has an enrollment of: 1

*********************************************************************

Course No: 122 Intermediate Java Programming with Section Id: 153 is taught by Smythe in the Course Section: 2

This Section Id has an enrollment of: 3

*********************************************************************

Course No: 120 Intro to Java Programming with Section Id: 150 is taught by Schorin in the Course Section: 5

This Section Id has an enrollment of: 3

*********************************************************************

This input match has a total enrollment of: 7 students.

Reviews

There are no reviews yet.

Only logged in customers who have purchased this product may leave a review.

Shopping Cart
[SOLVED] DBS501 Assignment 1
$25