Home > Database > Oracle > body text

Discuss how to call stored procedures in Oracle

PHPz
Release: 2023-04-17 14:50:30
Original
1134 people have browsed it

Oracle database is a powerful relational database management system, in which stored procedures are one of the most important features. In Oracle, a stored procedure is a set of SQL statements written to complete specific tasks in the database, usually identified by a name. In this article, we will explore how to call stored procedures in Oracle.

In Oracle, stored procedures are usually used to perform specific tasks, such as querying data from the database, updating data, deleting data, and inserting data, etc. These stored procedures can be created through SQL statements and stored in the database, and can then be called and executed when needed.

There are three ways to call a stored procedure: calling it directly in a SQL statement, using a PL/SQL block, or using the Oracle API.

  1. Directly calling stored procedures in SQL statements

Directly calling stored procedures in SQL statements is one of the simplest ways. This can be achieved through the following syntax:

EXECUTE procedure_name(param1, param2, ..., paramN);
Copy after login

In this syntax, procedure_name is the name of the stored procedure to be called, and param1, param2, ..., paramN are the corresponding parameter lists.

For example, if we have a stored procedure called print_employee_name that accepts an employee's ID as a parameter and prints out the employee's name, we can call it using the following command:

EXECUTE print_employee_name(1234);
Copy after login

This will call the stored procedure print_employee_name and pass it 1234 as parameter.

  1. Using PL/SQL blocks to call stored procedures

PL/SQL is a procedural programming language that is part of Oracle. PL/SQL is a language used to write stored procedures, functions, triggers, handlers and other functions. By writing stored procedure call statements in PL/SQL blocks, we can use more language features and instructions.

The following is the syntax for calling a stored procedure using a PL/SQL block:

DECLARE
  -- Declare variable declarations and assign default values
  variable_name datatype := default_value;
BEGIN 
  -- Execute code and actions
  procedure_name(param1, param2, ..., paramN);
END;
Copy after login

In this syntax, variable_name represents the variable name used in the declaration and datatype is the data type of the variable. default_value is the default value of this variable. Parameters such as procedure_name, param1, and param2 are required to call the stored procedure.

For example, suppose we have a stored procedure called calculate_salary that accepts an employee ID and salary parameters and returns the employee's total salary. We can call it in a PL/SQL block using the following command:

DECLARE
  employee_id NUMBER := 1234;
  salary NUMBER := 5000;
  total_salary NUMBER;
BEGIN
  calculate_salary(employee_id, salary, total_salary);
  DBMS_OUTPUT.PUT_LINE('Employee ' || employee_id || ' has a total salary of ' || total_salary);
END;
Copy after login

This PL/SQL block passes the employee ID and salary value to the calculate_salary stored procedure and then prints out the total salary value returned.

  1. Using Oracle API to call stored procedures

Oracle API is a set of APIs that can be used to perform various data operations in the Oracle database. By using Oracle API, we can write programs to call stored procedures.

The following is the general syntax for calling stored procedures using the Oracle API:

DECLARE
  -- Declare and initialize variables
  variable_name datatype;
  -- Declare cursor
  cursor_name REF CURSOR;
BEGIN
  -- Open cursor
  OPEN cursor_name FOR SELECT * FROM table_name;
  -- Execute stored procedure
  EXECUTE stored_procedure_name(param1, param2, ..., paramN);
  -- Process results and display output
  FETCH cursor_name INTO variable_name;
  DBMS_OUTPUT.PUT_LINE(variable_name);
END;
Copy after login

In this syntax, cursor_name is the name of the cursor declared using REF CURSOR. The stored_procedure_name, param1, param2 and other parameters are the stored procedure and its parameters to be called.

For example, suppose we have a stored procedure called get_employee_name that accepts an employee ID as a parameter and returns the employee's name. We can use the following code to call the stored procedure using the Oracle API:

DECLARE
  emp_id NUMBER := 1234;
  emp_name VARCHAR2(50);
  ref_cursor SYS_REFCURSOR;
BEGIN
  OPEN ref_cursor FOR SELECT * FROM employee_table WHERE id = emp_id;
  EXECUTE get_employee_name(emp_id, emp_name);
  FETCH ref_cursor INTO emp_name;
  DBMS_OUTPUT.PUT_LINE('The employee with ID ' || emp_id || ' has a name of ' || emp_name);
END;
Copy after login

Using the Oracle API, we opened a cursor and then called the get_employee_name stored procedure. Finally, we retrieve the names of the employees in the result set and print them on the screen.

Summary

In Oracle, stored procedures are a very powerful and commonly used feature, which can provide various options for our database queries and operations. This article explores how to call stored procedures in Oracle and introduces three methods, including direct calls in SQL statements, using PL/SQL blocks, and using the Oracle API. Through these examples, we can see that using stored procedures can improve the efficiency of our database operations, and how we can use appropriate tools and methods to simplify our development work.

The above is the detailed content of Discuss how to call stored procedures in Oracle. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template