CREATE PROCEDURE fetch_employee_data()
BEGIN
    -- Declare variables to store cursor values
    DECLARE emp_id INT;
    DECLARE emp_name VARCHAR(255);
    DECLARE emp_age INT;
    DECLARE emp_salary DECIMAL(10, 2);
    
    -- Declare a cursor for the Employee table
    DECLARE emp_cursor CURSOR FOR
        SELECT E_id, E_name, Age, Salary
        FROM Employee;
    
    -- Declare a continue handler for the cursor
    DECLARE CONTINUE HANDLER FOR NOT FOUND
        SET @finished = 1;
    
    -- Open the cursor
    OPEN emp_cursor;
    
    -- Initialize a variable to control cursor loop
    SET @finished = 0;
    
    -- Loop through the cursor results
    cursor_loop: LOOP
        -- Fetch the next row from the cursor into variables
        FETCH emp_cursor INTO emp_id, emp_name, emp_age, emp_salary;
        
        -- Check if no more rows to fetch
        IF @finished = 1 THEN
            LEAVE cursor_loop;
        END IF;
        
        -- Output or process each row (for demonstration, print the values)
        SELECT CONCAT('Employee ID: ', emp_id, ', Name: ', emp_name, ', Age: ', emp_age, ', Salary: ', emp_salary) AS Employee_Info;
    END LOOP;
    
    -- Close the cursor
    CLOSE emp_cursor;
END 

PL/SQL Online Compiler

Write, Run & Share PL/SQL code online using OneCompiler's Oracle PL/SQL online editor and compiler for free. It's one of the robust, feature-rich online editor and compiler for Oracle PL/SQL running on latest version 23c (23.3.0.0). Getting started with the OneCompiler's Oracle PL/SQL editor is really simple and pretty fast. The editor shows sample boilerplate code when you choose language as 'PL/SQL' and start writing code to learn and test online without worrying about tedious process of installation.

About PL/SQL

PL/SQL is procedural extension for SQL created by Oracle. It is by default embedded into the Oracle Database. PL/SQL program units are compiled and stored inside the Oracle Database which results in optimal execution times as the PL/SQL and SQL run within the same server process.

Syntax help

Following is the syntax structure for the PL/SQL code blocks

DECLARE 
   <declarations section> 
BEGIN 
   <executable command(s)>
EXCEPTION 
   <exception handling> 
END;

Example

DECLARE 
   message  varchar2(100):= 'Hello, World!'; 
BEGIN 
   dbms_output.put_line(message); 
END; 
/

Named procedures

CREATE OR REPLACE FUNCTION 
hello_user
   (user_name IN VARCHAR2) 
    RETURN VARCHAR2
IS
BEGIN
   RETURN 'Hello ' || user_name;
END hello_user;
/

BEGIN
   dbms_output.put_line(hello_user('Peter'));
END;
/

Exception handling

BEGIN
  DBMS_OUTPUT.put_line (1/0);
EXCEPTION
  WHEN OTHERS
  THEN
    DBMS_OUTPUT.put_line ('error is: ' || SQLERRM);
END;