用PLSQL的debug功能调试存储过程

合集下载

PLSQL常用功能设置

PLSQL常用功能设置

PLSQL常用功能设置PL/SQL(Procedural Language/Structured Query Language)是Oracle数据库的扩展语言,它提供了一种在数据库中编写存储过程、触发器、函数等可执行代码的方式。

PL/SQL具有很多功能和特性,下面是一些常用的功能设置:1. 变量声明和赋值:在PL/SQL中,可以声明各种类型的变量,并且可以对变量进行赋值。

例如,可以声明一个整型变量并将其赋值为10:`v_number NUMBER := 10;`2. 条件语句:PL/SQL支持if-else语句和case语句来处理条件逻辑。

if-else语句用于判断条件是否成立并执行相应的代码块,case语句用于根据不同的条件执行不同的代码块。

3. 循环语句:PL/SQL提供了几种循环结构,例如,可以使用for循环、while循环和loop循环来重复执行一段代码。

这些循环结构可以根据条件来决定是否继续执行。

4.异常处理:PL/SQL支持异常处理机制,可以在代码中处理错误和异常。

可以使用异常处理块来捕获和处理各种类型的异常,并采取相应的措施。

常见的异常类型包括NO_DATA_FOUND、TOO_MANY_ROWS和OTHERS等。

5.存储过程:PL/SQL允许在数据库中创建存储过程。

存储过程是一段可执行的代码,可以在需要时被调用。

存储过程可以接收输入参数,在执行过程中进行业务逻辑处理,并返回结果。

6.触发器:PL/SQL还支持在数据库中创建触发器。

触发器是一种特殊的存储过程,它与数据库中的表相关联,并在表上的特定事件发生时自动执行。

触发器可以在插入、更新或删除数据时执行特定操作。

7.函数:PL/SQL支持创建函数。

函数是一种可重用的代码块,可以接收输入参数,并返回一个结果。

函数可以在查询中使用,也可以像存储过程一样在其他存储过程或传递中调用。

8.游标:PL/SQL中的游标用于在数据库中检索和处理多行结果集。

PLSQLDeveloper使用技巧

PLSQLDeveloper使用技巧

2、执行单条SQL语句
在使用PL/SQL Developer的SQL Window时,按F8键,PL/SQL Developer默认是执行该窗口的所有SQL语句,需要设置为鼠标所在的那条SQL语句,即执行当前SQL语句;
设置方法:PL/SQL Developer 7.1.2 -->tools->Preferences-->Window types ,勾上“AutoSelect Statement” 即可。
4、查看执行计划
在使用PL/SQL Developer的SQL Window时,有时候输入的SQL语句执行的效率,分析下表结构,如何可以提高查询的效率,可以通过查看Oracle提供的执行计划;
使用方法:选中需要分析的SQL语句,然后点击工具栏的Explain plan按钮(即执行计划),或者直接按F5即可。
PL/SQL DEVELOPER 基本用法详解(转)
CSDN
PL/SQL DEVELOPER 基本用法详解(建议写过第一个存储过程后的初手必读)
用过oracle的都抱怨,为了稳定 它提供的图形化操作 速度慢的让人伤心呀,p4+128M的机器只要启动一个
oracle服务就够让人伤心的,再在dba studio里面操作真能让人哭。
PL/SQLDeveloper使用技巧
1、PL/SQL Developer记住登陆密码
在使用PL/SQL Developer时,为了工作方便希望PL/SQL Developer记住登录Oracle的用户名和密码;
设置方法:PL/SQL Developer 7.1.2 ->tools->Preferences->Oracle->Logon History , “Store history”是默认勾选的,勾上“Store with password” 即可,重新登录在输入一次密码则记住了。

plsql developer用法

plsql developer用法

plsql developer用法PL/SQL Developer用法简介PL/SQL Developer是一款针对Oracle数据库开发的集成开发环境(IDE),提供了丰富的功能和工具,方便开发人员编写、调试和优化PL/SQL代码。

本文将介绍PL/SQL Developer的一些常用用法。

安装与配置1.下载PL/SQL Developer安装包,并按照安装向导进行安装。

2.打开PL/SQL Developer,在”Tools”菜单下选择”Preferences”,进行一些常用配置,如字体、主题、编码等。

连接数据库1.在”File”菜单下选择”New”,然后选择”DatabaseConnection”。

2.在弹出的对话框中填写数据库连接信息,如主机名、端口、用户名和密码等。

3.点击”OK”按钮连接数据库。

编写PL/SQL代码1.在PL/SQL Developer中,可以创建新的PL/SQL程序单元,如存储过程、函数等。

在”File”菜单下选择”New”,然后选择相应的程序单元类型。

2.编写PL/SQL代码,可以使用PL/SQL Developer提供的代码模板和自动完成功能,加快编码速度。

3.在编辑器中选择代码,可以使用快捷键Ctrl + Enter执行选中代码,或者点击工具栏上的执行按钮。

调试PL/SQL代码1.在编辑器中设置断点,使用快捷键F9,在代码行号处点击鼠标右键选择”Toggle Breakpoint”,在断点处会显示一个红色圆点。

2.点击工具栏上的调试按钮,选择”Start Debugging”,开始调试。

3.在调试过程中,可以逐行执行代码,并查看变量的值、调用堆栈等信息。

数据库对象浏览器1.在PL/SQL Developer的数据库对象浏览器中,可以方便地查看和管理数据库对象,如表、视图、索引等。

2.可以通过展开数据库连接节点,依次打开数据库对象所在的层级,查看或编辑对象的结构和数据。

PLSQL快捷键

PLSQL快捷键

设置快捷键(设置方法:菜单Tools–>Preferences–>用户界面–>键配置)新建sql窗口:ctrl+shift+s新建命令窗口:ctrl+shift+c新建测试窗口:ctrl+shift+tPL/SQL Developer美化器:ctrl+shift+f重做:ctrl+shift+z撤销:ctrl+z清除:ctrl+d(慎用,不可恢复,俺是禁用哦O(∩_∩)O~)选中所有:ctrl+a缩进:tab取消缩进:shift+tab大写:ctrl+shift+x小写:ctrl+shift+y注释:ctrl+h取消注释:ctrl+m查找:ctrl+f显示表结构:ctrl+鼠标悬停在表名上模板列表:shift+alt+r窗口列表:ctrl+w5、执行单条SQL语句:按F8键6、TNS Names:菜单Help->Support Info(支持信息)->TNS Names,可以查看Oracle 的tnsnames.ora;7、调试存储过程在使用PL/SQL Developer操作Oracle时,有时候调用某些存储过程,或者调试存储过程;调用存储过程的方法:1)、首先,在PL/SQL Developer左边的Browser中选择Procedures,查找需要调用的存储过程;2)、然后,选中调试的存储过程,点击右键,选择Test,在弹出来的Test scrīpt窗口中,对于定义为in类型的参数,需要给该参数的Value输入值;最后点击上面的条数按钮:Start debugger或者按F9;3)、最后点击:RUN 或者Ctrl+R 。

调试快捷键切换断点:ctrl+b开始:f9运行:ctrl+r单步进入:ctrl+n单步跳过:ctrl+o单步退出:ctrl+t运行到异常:ctrl+y8、模板快捷键9、登录后默认自动选中My Objects默认情况下,PLSQL Developer登录后,Brower里会选择All objects,如果你登录的用户是dba,要展开tables目录,正常情况都需要Wait几秒钟,而选择My Objects后响应速率则是以毫秒计算的。

实验七 使用PLSQL编写存储过程访问数据库

实验七 使用PLSQL编写存储过程访问数据库

实验七使用PL/SQL编写存储过程访问数据库一、实验目的1、熟悉存储过程编译过程、工作原理及其优点;2、熟悉使用存储过程来进行数据库应用程序的设计。

二、实验条件1、具有局域网的计算机机房一个;2、SQL SERVER2000或SQL SERVER2005软件。

三、实验内容对教材“学生-课程”数据库(student表,course表,sc表),编写存储过程,分别完成下面功能:create table Student(Sname char(12)primary key,Ssex char(2),Sage int,Sdept char(12));create table Course(Cname char(12)primary key,Cpno int,Ccredit int);create table SC(Cno char(12)primary key,Grade int);①建立存储过程完成统计“离散数学”的成绩分布情况,即按照各分数段统计人数;create procedure Proc_1asselect count(*),Cname,Grade from sc wherecname in(select Cname from Course where cname='db');exec Proc_1;②建立存储过程完成统计任意一门课的平均成绩;create procedure Proc_2asselect avg(grade),cname from sc where camme='db'exec Proc_2;③建立存储过程完成将学生选课成绩从百分制改为等级制(即A、B、C、D、E);create or replace procedure change_critical()as declarechgrade char(1);currecord record;beginalter table SC add column(newgrade char(1));for currecord in select*from SC loopif currecord.grade<60then chgrade='E';else if currecord.grade<70then chgrade='D';else if currecord.grade<80then chgrade='C';else if currecord.grade<90then chgrade='B';else chgrade='A';end if;update SC set newgrade=chgradewhere sno=currecord.sno and cno=o;end loop;alter table SC drop column grade;alter table SC rename newgrade to grade;end;④建立存储过程完成对学生表的批量插入数据,插入数据的条数作为其中一个参数,另一个参数为学号起始学号,其它数据格式自行定义(如每次插入100条数据);create procedure proc_4@count int,@startsno char(9)asdeclare@loop intset@loop=0while@loop<@countbegininsert into student(sno,sname,ssex,sage,sdept)values(@startsno,'zj','M',20,'IS')set@loop=@loop+1set@startsno=@startsno+1endexec proc_4100,'20130901';要求:提交源程序并标识必要的注释。

解决plsql调试存储过程卡住

解决plsql调试存储过程卡住

>> PLSQL调试存储过程卡死
有多次进行TEST调试存储过程,在某一个环境动不了,然后卡住,plsql界面进入假死状态了,而这个时候只有在windows里面的任务管理器里面强行关闭plsql的后台进程后,然后再次登录打开plsql,才能操作。

但是这种强性杀死plsql进程后重新登录plsql的做法不能解决问题,因为你上次调试存储过程的ka住的进程依然存在后台等待,并且会再次影响你第二次进行存储过程调试,那么有没有办法彻底解决呢?
如下图,元芳,你怎么看?
PS:plsql假死图:
图(1)PLSQL假死图
第一种办法(PLSQL解决)
此时,重新打开第二个plsql窗口,使用dba账号登录,进入“Tools”--> “Sessions…”界面,可以看到所有的sessions会话进程,如下所示:
图(2)查看当前所有sessions
然后看到“Action”一栏目,看到有Test字样的,再看“Machine”确定是你操作的电脑发起的session,然后选中,右键弹出选中“kill”命令,然后选中“Yes”清除这条调试存储过程的会话即可,如下图所示:
图(3)清除session
第二种办法(SQL)
执行sql语句:select * from v$session t where t.ACTION like'%Test%';找到当前进行存储过程调试的session,然后执行kill命令:。

plsql使用介绍

plsql使用介绍

PL/SQL Developer使用指南作为oracle的第三方开发工具,PL/SQL Developer使oracle PL/SQL语句的编译及执行显得更加简单易用。

而在其他的方面,和其他的第三方工具(如Toad)都有相似的功能和操作方法。

一、安装PL/SQL Developer不需要执行安装程序,只要从其他机上copy一个来就可以使用。

二、登录在使用PL/SQL Developer之前,首先需要在本机上配置数据库客户端(在oracle自带工具Net8 Assistant中可配置)。

配置完成后,在以下窗口中敲入用户名和密码就可进入PL/SQL Developer了。

进入PL/SQL Developer以后,会见到以下窗口:在这里,可以对数据库中的任何对象(包括函数、存储过程、包、表、触发器等等)进行编辑、修改、运行等。

(要视乎该用户的权限而定)。

如果用户要重新登录另一数据库,则可以按下“”重新输入本地数据库标识和用户及密码重新登录。

三、修改对象或编译存储过程我们以存储过程为例:双击菜单项“procedures”,按右键即可选择新建存储过程(new)或是修改存储过程(edit)等等。

选择完毕后则用oracle的PL/SQL语句对存储过程进行编辑,在编辑完以后按下可以对它进行编译,如果编译未通过,会在窗口中出现错误提示(如下图所示),用户可根据提示进行修改和再次编译。

当完全编译通过后,用户可单击存储过程并按右键,选择“test”(执行存储过程),出现以下窗口:在执行前,首先按“”进行调试,然后按“”执行该存储过程;如果用户在执行过程中发生错误异常退出了,PL/SQL Developer会在窗口中显示错误,并提示退出。

在发生错误后,用户可以选择在存储过程中添加“DBMS_OUTPUT.put_line(字符串)”语句来进行错误跟踪或是通过一步步执行存储过程(按)来查看执行过程中数据的变化从而进行纠错。

plsql 使用手册

plsql 使用手册

PL/SQL 是Oracle 数据库中用于存储过程、函数、触发器和包等程序的编程语言。

以下是PL/SQL 使用手册的参考指南:1、连接Oracle 数据库:在开始编写PL/SQL 程序之前,您需要先连接到Oracle 数据库。

可以通过以下步骤连接到数据库:•运行PLSQL,将弹出数据库连接对话框。

•在对话框中选择要连接的Oracle 服务名,并输入用户名和密码。

•点击“OK”按钮进行连接。

2、登录信息保存功能设置:如果设置了登录信息保存功能,可以通过以下方式连接数据库,不必每次输入用户名和密码。

•进入PLSQL 后,在菜单区点击右键,出现PLSQL 配置界面。

•将“Store with password” 选中即可。

这样,第一次通过用户名/密码登录某数据库后,下次就不用再输入用户名/密码了。

3、切换数据库连接:在PLSQL 中,可以通过以下步骤切换到不同的数据库连接:•在菜单中选择“Change Database” 选项。

•在弹出的对话框中,选择要连接的数据库。

•点击“OK” 按钮完成切换。

4、编写PL/SQL 程序:在连接到数据库后,可以开始编写PL/SQL 程序。

以下是一些常见的PL/SQL 程序示例:•存储过程:用于封装复杂的SQL 查询和数据处理逻辑。

可以使用PL/SQL 编写一个或多个SQL 语句的集合,并将其封装在一个可重用的过程中。

•函数:用于计算并返回一个值。

可以编写一个或多个SQL 语句,将其封装在一个函数中,并使用输入参数来控制计算过程。

•触发器:用于在数据库中执行自动操作。

可以在特定的数据库事件(如插入、更新或删除记录)发生时触发自动执行的操作。

•包:用于封装多个PL/SQL 程序和逻辑单元。

可以将相关的存储过程、函数和数据类型封装在一个包中,以便更好地组织和管理代码。

5、执行SQL 语句:在PLSQL 中,可以使用以下步骤执行SQL 语句:•在菜单中选择“Execute” 或“Run” 选项。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

用PL/SQL调试
1、前提:保证用户有权限debug any process, debug connect session;
2、找到存储过程右击,点添加调试信息(add debug information),然后点测试(test);
3、输入变量值,然后点(开始调试器),存过已经处于执行状态,别人不能再编译或者执行。

4、然后点(单步执行),下图已经进入了函数体内。

如果想要看某个变量具体的值,就在左下栏输入变量名。

5、如果存过的代码过多的话,单步执行效率就低了,我们可以双击行号打断点,然后点
(运行)直接运行到断点的位置。

注意:断点一定要达到本次测试数据(由开始录入的参数决定)必经之路上。

(假如你把断点打到一个不能经过的else分支上,那么是无法拦截,一run到底)
5、调试的时候,每一次单步执行的时候要记一下执行代码的行数,如果过程单步执行到某行后,再单步执行的时候,存过就退出,那么错误就在该行的下一行。

6、按钮说明
单步进入step into:单步调试,通俗讲就是一直往细节处跟踪,类似于打破砂锅问到底,哈哈;
单步跳过step over:平行调试, 可理解为a与b存储过程互为父子调用关系,就不会运行到b存储过程,而是a运行后直接运行到与a平级的下面代码;
单步退出step out:跳出,相对于step into,即从某个子存储过程跳出到它的父存储过程;
run to next exception:运行到下一个异常处,就直接运行存储过程出错的代码处.。

相关文档
最新文档