search
HomeDatabaseOracleHow to debug stored procedures in Oracle

Oracle database is a relational database management system widely used by major enterprises. Its powerful functions and stability are favored by people. In the actual development process, developers often need to write stored procedures to implement various business logic, and may encounter some problems when debugging stored procedures.

This article will introduce how to debug stored procedures in Oracle database.

1. Use SQL Developer to debug stored procedures

SQL Developer is a free database development tool officially provided by Oracle. It provides a powerful debugger that can be used to debug PL/SQL storage. Procedures, functions, triggers, etc. Below we will take a simple stored procedure as an example to demonstrate how to use SQL Developer to debug stored procedures.

1. Create a stored procedure

First, we need to create a simple stored procedure:

CREATE OR REPLACE PROCEDURE my_proc (p_input IN NUMBER, p_output OUT NUMBER) AS
BEGIN
p_output := p_input * 2;
END;

This stored procedure receives an input parameter p_input, and multiplies it by 2 and assigns it to the output parameter p_output. In real scenarios, stored procedures will be more complex, but the debugging methods demonstrated in this article are also applicable to complex stored procedures.

2. Set breakpoints

Next, we need to set breakpoints in the stored procedure to pause the program flow and check variable values ​​during execution. Setting a breakpoint in SQL Developer is very simple. You only need to select the line where you want to set a breakpoint in the code of the stored procedure, and then click on the blank area next to the line number. As shown in the image below, I set a breakpoint on line 3.

3. Execute the stored procedure

Now, we can execute the stored procedure in SQL Developer and pause the program flow during the running process to check the variable value. We can use the following code to execute the stored procedure and pass a parameter value:

DECLARE
v_input NUMBER := 10;
v_output NUMBER;
BEGIN
my_proc(v_input, v_output );
END;

After executing this code, SQL Developer will automatically open the debugger and pause the program on line 3, as shown in the figure below. We can see that the value of v_input is 10, and during the step-by-step execution, the value of p_output is also assigned to 20.

4. Check variable values

While the program is paused, we can check the value of each variable. You can view the value of a variable by clicking its name in the code or by using the Monitor window. In SQL Developer, you can view the values ​​of multiple variables at the same time by selecting the menu Debug > Debugging Windows > Watches and adding variables in the monitor window.

As shown in the figure below, I added v_input, v_output and p_output to the monitor window, and you can see that their values ​​are 10, 0 and 0 respectively.

Next, we can let the program continue executing until the next breakpoint or the end of the program by clicking the "Continue Execution" button at the top of the debugger window.

2. Use the DBMS_DEBUG package to debug stored procedures

If you do not have the SQL Developer tool, you can also use the DBMS_DEBUG package provided by Oracle to debug stored procedures. Below we will introduce how to use the DBMS_DEBUG package.

The DBMS_DEBUG package is a tool package provided by Oracle Database, through which you can set breakpoints in stored procedures, pause the program execution process, and check the values ​​of program variables. Debugging stored procedures using the DBMS_DEBUG package requires the following steps:

1. Set compilation options

First, we need to set compilation options in the stored procedure so that the DBMS_DEBUG package can be used. Add the following statement before the code of the stored procedure:

ALTER SESSION SET PLSQL_DEBUG=TRUE;

2. Start the debugger

Next, we need to start debugging in the stored procedure device. Add the following code to the stored procedure:

DBMS_DEBUG_DBMS_DEBUG.CONNECT_SESSION;

This code will start the debugger and wait for the client to connect.

3. Connect to the client

Now, we need to connect to the database in the client and connect to the debugger we just started. In SQL Plus, you can use the following command to connect:

EXEC DBMS_DEBUG_JDWP.CONNECT_TCP(‘localhost’,4000);

If the connection is successful, "connected" will be prompted.

4. Set breakpoints

After the client connection is successful, we can set breakpoints in the stored procedure. Use the following code to set a breakpoint in the stored procedure:

DBMS_DEBUG_JDWP.BREAKPOINT(‘my_proc’,4);

This command will set a breakpoint on line 4 of the stored procedure. my_proc is the name of the stored procedure.

5. Execute the stored procedure

Now, we can execute the stored procedure and pause the program during execution to check the value of the variable.

Execute the following code in SQL Plus:

DECLARE
v_input NUMBER := 10;
v_output NUMBER;
BEGIN
my_proc(v_input, v_output);
END;

If the debugger is set up correctly, the program will pause at line 4. In the paused state, you can use the following command to check the value of the variable:

DBMS_DEBUG_JDWP.PRINT_VARIABLE('v_input');
DBMS_DEBUG_JDWP.PRINT_VARIABLE('v_output');

These two This command can display the values ​​of variables v_input and v_output.

6. Continue execution

After checking the variable value, if you still need to continue executing the program, you can use the following command:

DBMS_DEBUG_JDWP.CONTINUE;

This command will allow the program to continue executing until the next interrupt. point or the program ends.

Summary

In Oracle database, debugging stored procedures is a relatively common task. This article introduces two methods of debugging stored procedures, using SQL Developer and the DBMS_DEBUG package. No matter which method is used, you can easily set breakpoints in stored procedures, pause program execution, and check the values ​​of variables, helping developers quickly locate problems and fix bugs.

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

Statement
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
Oracle: The Powerhouse of Database ManagementOracle: The Powerhouse of Database ManagementApr 17, 2025 am 12:14 AM

Oracle is called the "Powerhouse" of database management because of its high performance, reliability and security. 1. Oracle is a relational database management system that supports multiple operating systems. 2. It provides a powerful data management platform with scalability, security and high availability. 3. Oracle's working principles include data storage, query processing and transaction management, and supports performance optimization technologies such as indexing, partitioning and caching. 4. Examples of usage include creating tables, inserting data, and writing stored procedures. 5. Performance optimization strategies include index optimization, partition table, cache management and query optimization.

What Does Oracle Offer? Products and Services ExplainedWhat Does Oracle Offer? Products and Services ExplainedApr 16, 2025 am 12:03 AM

Oracleoffersacomprehensivesuiteofproductsandservicesincludingdatabasemanagement,cloudcomputing,enterprisesoftware,andhardwaresolutions.1)OracleDatabasesupportsvariousdatamodelswithefficientmanagementfeatures.2)OracleCloudInfrastructure(OCI)providesro

Oracle Software: From Databases to the CloudOracle Software: From Databases to the CloudApr 15, 2025 am 12:09 AM

The development history of Oracle software from database to cloud computing includes: 1. Originated in 1977, it initially focused on relational database management system (RDBMS), and quickly became the first choice for enterprise-level applications; 2. Expand to middleware, development tools and ERP systems to form a complete set of enterprise solutions; 3. Oracle database supports SQL, providing high performance and scalability, suitable for small to large enterprise systems; 4. The rise of cloud computing services further expands Oracle's product line to meet all aspects of enterprise IT needs.

MySQL vs. Oracle: The Pros and ConsMySQL vs. Oracle: The Pros and ConsApr 14, 2025 am 12:01 AM

MySQL and Oracle selection should be based on cost, performance, complexity and functional requirements: 1. MySQL is suitable for projects with limited budgets, is simple to install, and is suitable for small to medium-sized applications. 2. Oracle is suitable for large enterprises and performs excellently in handling large-scale data and high concurrent requests, but is costly and complex in configuration.

Oracle's Purpose: Business Solutions and Data ManagementOracle's Purpose: Business Solutions and Data ManagementApr 13, 2025 am 12:02 AM

Oracle helps businesses achieve digital transformation and data management through its products and services. 1) Oracle provides a comprehensive product portfolio, including database management systems, ERP and CRM systems, helping enterprises automate and optimize business processes. 2) Oracle's ERP systems such as E-BusinessSuite and FusionApplications realize end-to-end business process automation, improve efficiency and reduce costs, but have high implementation and maintenance costs. 3) OracleDatabase provides high concurrency and high availability data processing, but has high licensing costs. 4) Performance optimization and best practices include the rational use of indexing and partitioning technology, regular database maintenance and compliance with coding specifications.

How to delete oracle library failureHow to delete oracle library failureApr 12, 2025 am 06:21 AM

Steps to delete the failed database after Oracle failed to build a library: Use sys username to connect to the target instance. Use DROP DATABASE to delete the database. Query v$database to confirm that the database has been deleted.

How to create cursors in oracle loopHow to create cursors in oracle loopApr 12, 2025 am 06:18 AM

In Oracle, the FOR LOOP loop can create cursors dynamically. The steps are: 1. Define the cursor type; 2. Create the loop; 3. Create the cursor dynamically; 4. Execute the cursor; 5. Close the cursor. Example: A cursor can be created cycle-by-circuit to display the names and salaries of the top 10 employees.

How to export oracle viewHow to export oracle viewApr 12, 2025 am 06:15 AM

Oracle views can be exported through the EXP utility: Log in to the Oracle database. Start the EXP utility, specifying the view name and export directory. Enter export parameters, including target mode, file format, and tablespace. Start exporting. Verify the export using the impdp utility.

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
1 months agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
1 months agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
1 months agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat Commands and How to Use Them
1 months agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

mPDF

mPDF

mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

MantisBT

MantisBT

Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Powerful PHP integrated development environment