Stored procedures in SQL can accept parameters as inputs, which allows for more flexibility in their use. Parameters can be of various data types and can be used to customize the behavior of the stored procedure based on different input values. To pass parameters to a stored procedure, you first need to define them in the procedure’s definition using the IN
, OUT
, or INOUT
keywords. Here’s an example:
CREATE PROCEDURE get_customer_orders(IN customer_id INT)
BEGIN
SELECT * FROM orders WHERE customer_id = customer_id;
END
In this example, the stored procedure get_customer_orders
takes a single input parameter customer_id
of type INT
. The parameter is used to filter the results of the orders
table based on the given customer ID.
To call this stored procedure and pass a value for the customer_id
parameter, you would use the CALL
statement like this:
CALL get_customer_orders(1234);
In this example, the value 1234
is passed to the stored procedure as the customer_id
parameter.
Stored procedures can have multiple parameters, and you can also define them as OUT
or INOUT
parameters to allow them to return values. Here’s an example of a stored procedure with multiple parameters:
CREATE PROCEDURE insert_customer(IN name VARCHAR(50), IN email VARCHAR(50), OUT new_customer_id INT)
BEGIN
INSERT INTO customers(name, email) VALUES (name, email);
SET new_customer_id = LAST_INSERT_ID();
END
In this example, the stored procedure insert_customer
takes two input parameters name
and email
, and an output parameter new_customer_id
. The procedure inserts a new row into the customers
table and then sets the value of new_customer_id
to the ID of the newly inserted row using the LAST_INSERT_ID()
function.
To call this stored procedure and pass values for the input parameters and retrieve the output value, you would use the CALL
statement like this:
ALL insert_customer('John Doe', 'johndoe@example.com', @customer_id);
SELECT @customer_id;
In this example, the values 'John Doe'
and 'johndoe@example.com'
are passed as input parameters to the stored procedure, and the output parameter @customer_id
is declared using the @
symbol. After calling the stored procedure, the output value of @customer_id
is retrieved using a SELECT
statement.
For complete list of topic on DATA STRUCTURE AND ALGORITHM click hear