PLSQL Procedures
procedure is a subprogram that performs a specific task. It's a part of PL/SQL and can be stored in the database for reuse.
AS
BEGIN
dbms_output.put_line('Welcome to Pearl Database Service!');
dbms_output.put_line('Please visite the website www.pearldbs.com');
END;
/
Run: EXECUTE welcome_proc; or exec welcome_proc
Is
Begin
Update employees set salary=’5000’ where employee_id=emp_id;
End update_employees;
/
Run: EXECUTE update_employees(1);
Is
Begin
Select first_name into fname from employees where employee_id=emp_id;
End update_employees;
/
Run:
Declare
fname varchar2(15);
Begin
Select_employees(&emp_id,fname)
Dbms_output.putline(fname);
End;
/
Is
Begin
Select salary into emp_id from employees where employee_id=emp_id;
End employees_inout;
/
Id number := &emp_id;
Begin
Employee_inout(&emp_id)
Dbms_output.put_line(emp_id);
End;
/
SELECT owner, object_name, procedure_name FROM all_procedures ORDER BY owner, object_name, procedure_name;
SELECT object_name, procedure_name FROM user_procedures ORDER BY object_name, procedure_name;
SELECT owner, object_name, procedure_name FROM dba_procedures ORDER BY owner, object_name, procedure_name;
SELECT text from user_source where name=’PROCEDURE_NAME’;
Features:
- Modularity: Procedures allow you to break down complex tasks into smaller, manageable units of code, promoting better organization and readability.
- Reusability: Can be reused across multiple applications.
- Parameters: Accepts IN, OUT, and IN OUT parameters for dynamic input/output.
- Encapsulation: Hides implementation details, allowing for easier maintenance.
- Error Handling: Can include exception handling to manage errors gracefully.
- Transaction Control: Supports COMMIT and ROLLBACK for database transactions.
- Performance: Optimized execution can improve performance for complex operations.
- Overloading: Multiple procedures can have the same name with different parameters.
- Integration: Can be called from triggers and grouped in packages.
Types of parameters:
- IN Parameter: Accepts a value when the procedure is called. It cannot be modified within the procedure.
- OUT Parameter: Returns a value to the calling environment. It must be assigned a value within the procedure.
- IN OUT Parameter: Accepts an initial value and can return a modified value.
Example for Simple procedure:
CREATE OR REPLACE PROCEDURE welcome_procAS
BEGIN
dbms_output.put_line('Welcome to Pearl Database Service!');
dbms_output.put_line('Please visite the website www.pearldbs.com');
END;
/
Run: EXECUTE welcome_proc; or exec welcome_proc
IN Parameter Example:
Create or replace procedure update_employees ( emp_id in integer)Is
Begin
Update employees set salary=’5000’ where employee_id=emp_id;
End update_employees;
/
Run: EXECUTE update_employees(1);
OUT Parameter Example:
Create or replace procedure select_employees (emp_id in employees.employee_id%type)(fname out employees.salary%type)Is
Begin
Select first_name into fname from employees where employee_id=emp_id;
End update_employees;
/
Run:
Declare
fname varchar2(15);
Begin
Select_employees(&emp_id,fname)
Dbms_output.putline(fname);
End;
/
IN OUT Parameter Example:
Create or replace employees_inout (emp_id in out number)Is
Begin
Select salary into emp_id from employees where employee_id=emp_id;
End employees_inout;
/
Run:
DeclareId number := &emp_id;
Begin
Employee_inout(&emp_id)
Dbms_output.put_line(emp_id);
End;
/
List out the procedures:
Select object_name, object_type from user_objects where object_type=’PRPCEDURE’;SELECT owner, object_name, procedure_name FROM all_procedures ORDER BY owner, object_name, procedure_name;
SELECT object_name, procedure_name FROM user_procedures ORDER BY object_name, procedure_name;
SELECT owner, object_name, procedure_name FROM dba_procedures ORDER BY owner, object_name, procedure_name;
SELECT text from user_source where name=’PROCEDURE_NAME’;
Comments
Post a Comment