`
mikixiyou
  • 浏览: 1100524 次
  • 性别: Icon_minigender_1
  • 来自: 南京
博客专栏
C3c8d188-c0ab-3396-821d-b68331e21226
Oracle管理和开发
浏览量:353629
社区版块
存档分类
最新评论

在SQL PLUS中调试Oracle存储过程

阅读更多

我们在通常情况下,开发和调试Oracle存储过程都是用可视化工具,如PL SQL DEVELOPER,TOAD等等。不会有人傻到要用 vim 去开发,再用 sql plus 去调试的存储过程的。但在有些情况下,我们知道在 sql plus 中如何调试存储过程,还是有收益的。

像我的有些客户的数据库环境,我只能通过ssh 连接进去看。开发人员告诉我,一个存储过程使用pl sql developer 调试一下就死掉,再调再死。

(墙内链接:http://mikixiyou.iteye.com/blog/1541326 转载请注明出处)

我在数据库的系统管理视图中看不到任何错误,怎么办呢?

没办法,只能自己使用sql plus 这个工具去调试存储过程啦!

在绕过几层网络设置,连接上数据库服务器操作系统,打开sqlplus 工具窗口。

要调试的存储过程是这样子:

CREATE OR REPLACE PROCEDURE "PROC_OBJECT_GET_ID"(p_id_name varchar2,
                                                 result    out integer,
                                                 p_message out varchar2)  

一个输入变量和两个输出变量,分别为varchar,integer,varchar 类型。

sql plus 中,使用var 声明变量,使用exec  赋值和执行存储过程

SQL> VAR P_ID_NAME VARCHAR2(100)
SQL> VAR RESULT NUMBER
SQL> VAR P_MESSAGE VARCHAR2(100)

SQL> EXEC :P_ID_NAME:= 'com.css.cms.document'
SQL> execute PROC_OBJECT_GET_ID1(:P_ID_NAME,:result,:p_message);
 
PL/SQL 
过程已成功完成。  
 
SQL> PRINT RESULT
 
    RESULT
----------
        -1
 
SQL> PRINT P_MESSAGE 
 
P_MESSAGE
--------------------------------------------------------------------------------
ORA-01422: 
实际返回的行数超出请求的行数
 

变量的类型只有帮助中列出来的这些。


SQL>  variable result integer;
用法 : VAR[IABLE] [ <variable> [ NUMBER | CHAR | CHAR (n [CHAR|BYTE]) |
                    VARCHAR2 (n [CHAR|BYTE]) | NCHAR | NCHAR (n) |
                    NVARCHAR2 (n) | CLOB | NCLOB | REFCURSOR |
                    BINARY_FLOAT | BINARY_DOUBLE ] ]

sqlplus 工具还有一些功能,可以使用help 方式去学习。

0
0
分享到:
评论

相关推荐

    如何oracle调试存储过程

    此外,还可以通过`DBMS_OUTPUT`包输出调试信息,这些信息可以在SQL*Plus或其他Oracle客户端工具中查看。 #### 4. 日志记录与分析 除了实时的调试,日志记录也是查找问题的重要手段。在存储过程中添加适当的日志...

    Oracle存储过程开发的要点

    Oracle存储过程是数据库管理系统Oracle中的一种重要特性,用于封装一系列SQL和PL/SQL代码,以实现特定的功能。在Oracle中,存储过程可以提高应用程序的性能,因为它减少了与数据库的交互次数,并允许在数据库级别...

    oracle调用存储过程

    调用Oracle存储过程是数据库管理中的常见任务,尤其对于需要执行大量数据处理或事务操作的场景。下面我们将详细探讨如何在Oracle中调用存储过程以及其相关知识点。 1. **创建存储过程**: 在Oracle中,你可以使用`...

    oracle存储过程编写

    Oracle存储过程是数据库管理系统中的一种重要程序设计组件,它允许用户在数据库中执行复杂的操作序列,而不仅仅局限于简单的SQL查询。在Oracle中,存储过程是由一个或多个SQL语句和PL/SQL块组成的,可以被封装起来并...

    Oracle数据库存储过程技术文档.doc

    第二章 oracle存储过程基础――PL/SQL 9 2.1 pl/sql基础 9 2.1.1 PL/SQL简介 9 2.1.2 一个简单的PL/SQL块 10 2.1.3 PL/SQL流程控制 13 2.2 游标(CURSOR) 17 2.2.1 游标的概念 18 2.2.2 游标的属性 18 2.2.3 游标中...

    oracle存储过程学习资料

    在本学习资料中,你将深入理解Oracle存储过程的创建、调用、调试以及优化等多个方面。 1. **存储过程的创建**: Oracle存储过程通过`CREATE PROCEDURE`语句来定义。你可以指定输入参数、输出参数、输入输出参数,...

    oracle存储过程基础教程

    Oracle存储过程是预编译的SQL和PL/SQL代码集合,它们在数据库中作为一个单元进行存储和管理。存储过程可以提高数据库性能,减少网络流量,增加代码复用,提升应用程序的安全性,并简化复杂的业务逻辑。 二、存储...

    oracle 查看存储过程

    在Oracle数据库管理系统中,存储过程是一种预编译的SQL和PL/SQL代码集合,用于执行特定的任务。存储过程可以提高数据库应用的性能、安全性和可维护性。在本篇文章中,我们将详细介绍如何在Oracle中查看存储过程。 1...

    oracle存储过程学习笔记(四)

    Oracle存储过程是数据库编程的重要组成部分,它允许程序员和数据库管理员编写一系列复杂的SQL和PL/SQL语句,以实现数据处理、业务逻辑或自动化任务。在本篇“Oracle存储过程学习笔记(四)”中,我们将深入探讨存储...

    搜集的oracle存储过程资料

    Oracle存储过程是一个预先编译并存储在数据库中的程序单元,它允许用户执行一系列SQL和PL/SQL语句。在数据库应用中,存储过程扮演着核心角色,因为它们能够封装逻辑,减少网络通信,提高性能,并提供安全性。 二、...

    oracle存储过程语法

    调用Oracle存储过程使用`EXECUTE`关键字,或者直接在PL/SQL块中调用。如下所示: ```sql EXECUTE update_employee(101, 5000); -- 或者 BEGIN update_employee(101, 5000); END; ``` 存储过程的“源码”部分,...

    oracle存储过程实例

    Oracle存储过程是数据库管理系统Oracle中的一个重要特性,它允许开发者编写一系列的SQL和PL/SQL语句,形成一个可重用的程序单元。在本实例中,我们将深入探讨Oracle存储过程的使用,特别是与游标相关的操作,这对于...

    如何用Toad调试存储过程、触发器

    在Oracle 10g及以后的版本中,引入了新的接口JDWP(Java Debug Wire Protocol)用于调试PL/SQL和存储的Java过程。然而,Toad同时支持JDWP和DBMS_DEBUG接口,并且推荐在不涉及Java代码调试时继续使用DBMS_DEBUG,因为...

    ORACLE存储过程

    ORACLE 存储过程  Oracle存储过程开发的要点是:  ?... 在Oracle数据库中使用SQL*Plus工具运行存储过程;  ? 在Oracle数据库中修改存储过程;  ? 通过编译错误调试存储过程;  ? 删除存储过程;

    oracle存储过程培训材料.ppt

    Oracle存储过程是数据库管理系统Oracle中的一种重要特性,用于封装一系列的SQL和PL/SQL语句,以便反复调用,提高代码复用性和数据库性能。在Oracle中,存储过程可以包含控制流语句、变量、参数以及数据库操作。下面...

    ORACLE_SQLDeveloper使用教程

    - 在 SQL Developer 中,可以轻松地浏览数据库中的各种对象,如表、视图、存储过程等。 - 对象列表通常显示在左侧的树状结构中。 2. **创建、导入导出 Oracle 数据库连接:** - SQL Developer 支持创建新的...

    Oracle SQL plus tutorial

    2. **存储过程**: 可以直接在 SQL Plus 中编写和执行存储过程。 3. **自定义命令**: 支持用户定义自己的命令或函数,提高工作效率。 4. **批处理模式**: 可以通过批处理模式运行 SQL Plus,即在没有用户交互的情况下...

    Oracle与Sql存储过程的区别[归类].pdf

    Oracle存储过程主要通过PL/SQL(Procedural Language/SQL)语言来编写。PL/SQL是一种混合了SQL查询语句和过程化编程元素的语言,它允许开发者创建复杂的逻辑结构,包括条件判断、循环、异常处理等。Oracle提供了多种...

    ORACLE中BLOB字段导入到SQL SERVER中的IMAGE字段

    2. **数据导出**:使用ORACLE提供的工具,如SQL*Plus或者PL/SQL Developer,或者通过编写SQL查询或存储过程来提取BLOB数据。通常,我们可以将BLOB数据转化为HEX字符串或Base64编码,以便在文本格式下传输。 3. **...

Global site tag (gtag.js) - Google Analytics