PL/SQL Package for date calculation and format conversion
PL/SQL Package: Exercise-6 with Solution
Write a PL/SQL package that includes procedures and functions to handle date and time operations, such as calculating the difference between two dates and converting between different date formats.
Sample Solution:
PL/SQL Code:
CREATE OR REPLACE PACKAGE DateTimePackage AS
FUNCTION CalculateDateDifference(start_date IN DATE, end_date IN DATE) RETURN NUMBER;
FUNCTION ConvertDateFormat(date_value IN DATE, format IN VARCHAR2) RETURN VARCHAR2;
END DateTimePackage;
/
CREATE OR REPLACE PACKAGE BODY DateTimePackage AS
FUNCTION CalculateDateDifference(start_date IN DATE, end_date IN DATE) RETURN NUMBER IS
diff NUMBER;
BEGIN
diff := end_date - start_date;
RETURN diff;
EXCEPTION
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR(-20001, 'An error occurred while calculating date difference.');
END CalculateDateDifference;
FUNCTION ConvertDateFormat(date_value IN DATE, format IN VARCHAR2) RETURN VARCHAR2 IS
converted_dateVARCHAR2(100);
BEGIN
converted_date := TO_CHAR(date_value, format);
RETURN converted_date;
EXCEPTION
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR(-20002, 'An error occurred while converting date format.');
END ConvertDateFormat;
END DateTimePackage;
/
Sample Output:
Package created. Package Body created.
Flowchart:
To execute the package:
DECLARE
start_date DATE := TO_DATE('2022-01-01', 'YYYY-MM-DD');
end_date DATE := SYSDATE;
date_diff NUMBER;
converted_dateVARCHAR2(100);
BEGIN
date_diff := DateTimePackage.CalculateDateDifference(start_date, end_date);
DBMS_OUTPUT.PUT_LINE('Date Difference in Days: ' || date_diff);
converted_date := DateTimePackage.ConvertDateFormat(end_date, 'DD-MON-YYYY HH24:MI:SS');
DBMS_OUTPUT.PUT_LINE('Converted Date: ' || converted_date);
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(SQLERRM);
END;
/
Sample Output:
Statement processed. Date Difference in Days: 560.337395833333333333333333333333333333 Converted Date: 15-JUL-2023 08:05:51
Flowchart:
Explanation:
The said code in Oracle's PL/SQL package that offers functionality for date calculation and format conversion.
The package consists of two main components the CalculateDateDifference function and the ConvertDateFormat function.
The CalculateDateDifference returns a number representing the number of days that separate two dates by subtracting the start_date from the end_date and any errors occurring during the calculation exception will be handled and an appropriate error message will be displayed.
The ConvertDateFormat function converts a given date_value to a specified format using the TO_CHAR function and returns the converted date as a VARCHAR2 string.
Similarly, the package handles exceptions and throws an error if any issues arise during the format conversion process.
Previous: PL/SQL package for password generation and strength checking.
Next: Calculate_avg_salary.
What is the difficulty level of this exercise?
It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.
https://www.w3resource.com/plsql-exercises/package/plsql-package-exercise-6.php
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics