How to Call a Stored Procedure in SQL
Use a stored procedure call when reusable database logic has already been saved and you want to execute it on demand, often with parameters. This is common for admin jobs, reports, ETL tasks, and controlled update workflows.
What you’ll build or solve
You’ll learn how to call a stored procedure in SQL across common database systems. You’ll also know how to pass parameters safely.
Learn SQL on Mimo
When this approach works best
This approach is the right choice when the logic already exists as a database procedure.
Common real-world scenarios include:
- Billing jobs
- Monthly cleanup
- Revenue reports
- Inventory sync
- Controlled account updates
This is a bad idea when the logic should simply be queried as a reusable view.
Prerequisites
You only need:
- An existing stored procedure
- Knowledge of required parameters
- Execute permission
Step-by-step instructions
Step 1: Execute the procedure
The syntax depends on the database.
SQL Server
SQL
EXEC GetPaidOrders @MinTotal = 100;
MySQL
SQL
CALL GetPaidOrders(100);
PostgreSQL
SQL
CALL get_paid_orders(100);
This runs the saved logic immediately.
If the procedure returns rows, you can use the result like any normal query output.
What to look for:
- Use
EXECorCALLdepending on the database - Pass parameters in the expected order or name
- Great for reusable workflows
- Can trigger multi-step logic
- Permissions may restrict execution
Examples you can copy
Cleanup task
SQL
CALL DeleteInactiveUsers();
Revenue report
SQL
EXEC HighRevenueCountries @MinRevenue = 5000;
Product update
SQL
CALL UpdatePrice(101, 29.99);
Common mistakes and how to fix them
Mistake 1: Wrong parameter order
What the reader might do:
SQL
CALL UpdatePrice(29.99, 101);
Why it breaks: parameters map incorrectly.
Corrected approach:
Use the defined order or named parameters where supported.
Mistake 2: Calling a function like a procedure
What the reader might do:
SQL
CALL CalculateTax(100);
Why it breaks: some databases separate functions and procedures.
Corrected approach:
Use the correct invocation style for functions.
Mistake 3: Missing execute permissions
What the reader might do:
Call an admin procedure from a read-only account.
Why it breaks: permission errors block execution.
Corrected approach:
Grant execute permission or use the correct role.
Troubleshooting
If the syntax errors, confirm whether your database uses EXEC or CALL.
If parameters behave oddly, verify order and types.
If permissions fail, request execute access.
If the object returns a scalar value, it may be a function instead.
Quick recap
- Use
EXECorCALLto run procedures - Pass parameters in the correct order
- Great for reusable workflows
- Confirm permissions
- Distinguish procedures from functions
Join 35M+ people learning for free on Mimo
4.8 out of 5 across 1M+ reviews
Check us out on Apple AppStore, Google Play Store, and Trustpilot