Latest update Android YouTube

Stored Procedures in Oracle SQL

Stored Procedures in Oracle SQL Developer

Creating stored procedures in Oracle SQL Developer is an essential skill for managing database operations, automating tasks, and encapsulating business logic within your database. This guide will walk you through the process of creating a stored procedure from scratch, including examples and explanations.

Stored Procedures in Oracle SQL - IndianTechnoEra

What is a Stored Procedure?

A stored procedure is a set of SQL statements that you can save and reuse in your database. It allows you to encapsulate complex logic and database operations within a single procedure, which can then be executed with a single call. Stored procedures are used to:

  • Perform repetitive tasks.
  • Simplify complex SQL operations.
  • Improve performance by reducing network traffic between the application and the database.
  • Ensure data integrity by centralizing logic within the database.

Prerequisites

Before we begin, make sure you have:

  • Oracle SQL Developer installed.
  • A basic understanding of SQL (Structured Query Language).
  • Access to an Oracle database.

Steps to Create a Stored Procedure

1. Connect to Your Database

First, open Oracle SQL Developer and connect to your Oracle database:

  • Launch Oracle SQL Developer.
  • In the Connections panel, right-click on the "Connections" node and select "New Connection."
  • Enter your connection details (Username, Password, Hostname, Service Name, etc.).
  • Click "Connect."

2. Understand the Basic Syntax

The basic syntax of a stored procedure in Oracle is as follows:

CREATE OR REPLACE PROCEDURE procedure_name 
IS 
BEGIN
   -- SQL statements go here
END procedure_name;

3. Create a Simple Stored Procedure

Let's start with a simple example. Suppose you want to create a stored procedure that inserts a new product into a product_master table. Here's how you would do it:

Example: Insert a New Product

CREATE OR REPLACE PROCEDURE InsertProduct(
   p_product_id   IN NUMBER,
   p_product_name IN VARCHAR2,
   p_price        IN NUMBER
)
IS
BEGIN
   INSERT INTO product_master (product_id, product_name, price)
   VALUES (p_product_id, p_product_name, p_price);
END InsertProduct;

Explanation:

  • CREATE OR REPLACE PROCEDURE: This command creates a new procedure or replaces an existing one with the same name.
  • InsertProduct: The name of the procedure.
  • Parameters (p_product_id, p_product_name, p_price): These are the input parameters for the procedure. The IN keyword indicates that these are input parameters.
  • IS: This keyword starts the declaration section of the procedure.
  • BEGIN...END: This block contains the SQL statements that will be executed when the procedure is called.
  • INSERT INTO...VALUES: The SQL statement that inserts a new record into the product_master table.

4. Compile and Test the Procedure

After writing your procedure, you need to compile it. In Oracle SQL Developer:

  • Open a new SQL Worksheet by right-clicking on your connection and selecting "SQL Worksheet."
  • Paste the procedure code into the worksheet.
  • Execute the code by clicking on the "Run Script" button (or pressing F5).

If the procedure compiles successfully, you'll see a message like "Procedure created."

To test the procedure, you can execute it using an anonymous PL/SQL block:

BEGIN
   InsertProduct(101, 'Laptop', 75000);
END;

5. View and Manage Stored Procedures

You can view all stored procedures in your schema using Oracle SQL Developer:

  • In the Connections panel, expand your connection.
  • Expand the "Procedures" node to see a list of all stored procedures.
  • You can right-click on any procedure to edit, compile, or delete it.

6. Advanced Example: Stored Procedure with OUT Parameter

Sometimes you may need a procedure to return a value. You can use an OUT parameter for this purpose. Here’s an example of a procedure that calculates and returns the total price of all products:

CREATE OR REPLACE PROCEDURE GetTotalPrice(
   p_total OUT NUMBER
)
IS
BEGIN
   SELECT SUM(price) INTO p_total FROM product_master;
END GetTotalPrice;

Explanation:

  • OUT: This keyword indicates that the parameter p_total will be used to return a value.
  • SELECT SUM(price) INTO p_total: This statement calculates the sum of all prices in the product_master table and stores it in the p_total parameter.

7. Error Handling in Stored Procedures

Oracle provides a mechanism for handling exceptions (errors) that occur during the execution of a stored procedure. Here’s how you can include error handling:

CREATE OR REPLACE PROCEDURE InsertProduct(
   p_product_id   IN NUMBER,
   p_product_name IN VARCHAR2,
   p_price        IN NUMBER
)
IS
BEGIN
   INSERT INTO product_master (product_id, product_name, price)
   VALUES (p_product_id, p_product_name, p_price);
   
   COMMIT;
EXCEPTION
   WHEN OTHERS THEN
      ROLLBACK;
      DBMS_OUTPUT.PUT_LINE('An error occurred: ' || SQLERRM);
END InsertProduct;

Explanation:

  • EXCEPTION...WHEN OTHERS THEN: This block catches any exceptions that occur during the execution of the procedure.
  • ROLLBACK: If an error occurs, the transaction is rolled back.
  • DBMS_OUTPUT.PUT_LINE: This function outputs a message with the error details.

8. Deleting a Stored Procedure

If you need to delete a stored procedure, you can use the following command:

DROP PROCEDURE procedure_name;

For example:

DROP PROCEDURE InsertProduct;

Conclusion

Stored procedures are powerful tools for encapsulating business logic and managing database operations. By mastering the creation and use of stored procedures, you can significantly improve the efficiency and maintainability of your database applications.

This guide has covered the basics of creating stored procedures in Oracle SQL Developer, including simple examples, handling input/output parameters, and managing errors. As you become more comfortable with stored procedures, you can explore more advanced features, such as cursors, exception handling, and dynamic SQL.

إرسال تعليق

Feel free to ask your query...
Cookie Consent
We serve cookies on this site to analyze traffic, remember your preferences, and optimize your experience.
Oops!
It seems there is something wrong with your internet connection. Please connect to the internet and start browsing again.
AdBlock Detected!
We have detected that you are using adblocking plugin in your browser.
The revenue we earn by the advertisements is used to manage this website, we request you to whitelist our website in your adblocking plugin.
Site is Blocked
Sorry! This site is not available in your country.