Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
-- Create a table CREATE TABLE Employees ( emp_id NUMBER PRIMARY KEY, emp_name VARCHAR2(100), emp_salary NUMBER ); -- Create a sequence to generate employee IDs CREATE SEQUENCE emp_id_seq START WITH 1 INCREMENT BY 1; -- Create a trigger to automatically assign IDs to new employees CREATE OR REPLACE TRIGGER emp_id_trigger BEFORE INSERT ON Employees FOR EACH ROW BEGIN :NEW.emp_id := emp_id_seq.NEXTVAL; END; / -- Function to calculate annual salary CREATE OR REPLACE FUNCTION calculate_annual_salary(p_monthly_salary IN NUMBER) RETURN NUMBER IS v_annual_salary NUMBER; BEGIN v_annual_salary := p_monthly_salary * 12; RETURN v_annual_salary; END calculate_annual_salary; / -- PL/SQL block with cursor, exception handling, and triggers DECLARE v_total_salary NUMBER := 0; v_emp_count NUMBER := 0; -- Cursor declaration CURSOR emp_cursor IS SELECT emp_id, emp_name, emp_salary FROM Employees; BEGIN -- Inserting sample data INSERT INTO Employees (emp_name, emp_salary) VALUES ('John', 5000); INSERT INTO Employees (emp_name, emp_salary) VALUES ('Jane', 6000); INSERT INTO Employees (emp_name, emp_salary) VALUES ('Alice', 5500); -- Implicit cursor loop to fetch employee details FOR emp_rec IN emp_cursor LOOP -- Displaying employee details DBMS_OUTPUT.PUT_LINE('Employee ID: ' || emp_rec.emp_id || ', Name: ' || emp_rec.emp_name || ', Monthly Salary: ' || emp_rec.emp_salary || ', Annual Salary: ' || calculate_annual_salary(emp_rec.emp_salary)); -- Calculating total salary v_total_salary := v_total_salary + emp_rec.emp_salary; -- Incrementing employee count v_emp_count := v_emp_count + 1; END LOOP; -- Displaying total salary and employee count DBMS_OUTPUT.PUT_LINE('Total Salary: ' || v_total_salary); DBMS_OUTPUT.PUT_LINE('Total Employees: ' || v_emp_count); -- Exception handling IF v_emp_count = 0 THEN RAISE_APPLICATION_ERROR(-20001, 'No employees found.'); END IF; EXCEPTION WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE('No data found.'); WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('An error occurred: ' || SQLERRM); END; /
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)