我们在通常情况下,开发和调试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
方式去学习。
分享到:
相关推荐
此外,还可以通过`DBMS_OUTPUT`包输出调试信息,这些信息可以在SQL*Plus或其他Oracle客户端工具中查看。 #### 4. 日志记录与分析 除了实时的调试,日志记录也是查找问题的重要手段。在存储过程中添加适当的日志...
Oracle存储过程是数据库管理系统Oracle中的一种重要特性,用于封装一系列SQL和PL/SQL代码,以实现特定的功能。在Oracle中,存储过程可以提高应用程序的性能,因为它减少了与数据库的交互次数,并允许在数据库级别...
调用Oracle存储过程是数据库管理中的常见任务,尤其对于需要执行大量数据处理或事务操作的场景。下面我们将详细探讨如何在Oracle中调用存储过程以及其相关知识点。 1. **创建存储过程**: 在Oracle中,你可以使用`...
Oracle存储过程是数据库管理系统中的一种重要程序设计组件,它允许用户在数据库中执行复杂的操作序列,而不仅仅局限于简单的SQL查询。在Oracle中,存储过程是由一个或多个SQL语句和PL/SQL块组成的,可以被封装起来并...
第二章 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存储过程的创建、调用、调试以及优化等多个方面。 1. **存储过程的创建**: Oracle存储过程通过`CREATE PROCEDURE`语句来定义。你可以指定输入参数、输出参数、输入输出参数,...
Oracle存储过程是预编译的SQL和PL/SQL代码集合,它们在数据库中作为一个单元进行存储和管理。存储过程可以提高数据库性能,减少网络流量,增加代码复用,提升应用程序的安全性,并简化复杂的业务逻辑。 二、存储...
在Oracle数据库管理系统中,存储过程是一种预编译的SQL和PL/SQL代码集合,用于执行特定的任务。存储过程可以提高数据库应用的性能、安全性和可维护性。在本篇文章中,我们将详细介绍如何在Oracle中查看存储过程。 1...
Oracle存储过程是数据库编程的重要组成部分,它允许程序员和数据库管理员编写一系列复杂的SQL和PL/SQL语句,以实现数据处理、业务逻辑或自动化任务。在本篇“Oracle存储过程学习笔记(四)”中,我们将深入探讨存储...
Oracle存储过程是一个预先编译并存储在数据库中的程序单元,它允许用户执行一系列SQL和PL/SQL语句。在数据库应用中,存储过程扮演着核心角色,因为它们能够封装逻辑,减少网络通信,提高性能,并提供安全性。 二、...
调用Oracle存储过程使用`EXECUTE`关键字,或者直接在PL/SQL块中调用。如下所示: ```sql EXECUTE update_employee(101, 5000); -- 或者 BEGIN update_employee(101, 5000); END; ``` 存储过程的“源码”部分,...
Oracle存储过程是数据库管理系统Oracle中的一个重要特性,它允许开发者编写一系列的SQL和PL/SQL语句,形成一个可重用的程序单元。在本实例中,我们将深入探讨Oracle存储过程的使用,特别是与游标相关的操作,这对于...
在Oracle 10g及以后的版本中,引入了新的接口JDWP(Java Debug Wire Protocol)用于调试PL/SQL和存储的Java过程。然而,Toad同时支持JDWP和DBMS_DEBUG接口,并且推荐在不涉及Java代码调试时继续使用DBMS_DEBUG,因为...
ORACLE 存储过程 Oracle存储过程开发的要点是: ?... 在Oracle数据库中使用SQL*Plus工具运行存储过程; ? 在Oracle数据库中修改存储过程; ? 通过编译错误调试存储过程; ? 删除存储过程;
Oracle存储过程是数据库管理系统Oracle中的一种重要特性,用于封装一系列的SQL和PL/SQL语句,以便反复调用,提高代码复用性和数据库性能。在Oracle中,存储过程可以包含控制流语句、变量、参数以及数据库操作。下面...
- 在 SQL Developer 中,可以轻松地浏览数据库中的各种对象,如表、视图、存储过程等。 - 对象列表通常显示在左侧的树状结构中。 2. **创建、导入导出 Oracle 数据库连接:** - SQL Developer 支持创建新的...
2. **存储过程**: 可以直接在 SQL Plus 中编写和执行存储过程。 3. **自定义命令**: 支持用户定义自己的命令或函数,提高工作效率。 4. **批处理模式**: 可以通过批处理模式运行 SQL Plus,即在没有用户交互的情况下...
Oracle存储过程主要通过PL/SQL(Procedural Language/SQL)语言来编写。PL/SQL是一种混合了SQL查询语句和过程化编程元素的语言,它允许开发者创建复杂的逻辑结构,包括条件判断、循环、异常处理等。Oracle提供了多种...
2. **数据导出**:使用ORACLE提供的工具,如SQL*Plus或者PL/SQL Developer,或者通过编写SQL查询或存储过程来提取BLOB数据。通常,我们可以将BLOB数据转化为HEX字符串或Base64编码,以便在文本格式下传输。 3. **...