plsql打断点调试步骤
PLSQL安装配置方法

PLSQL安装配置方法PL/SQL是一种扩展SQL的编程语言,用于Oracle数据库系统中。
在安装和配置PL/SQL之前,您需要确保已经安装了Oracle数据库。
以下是PL/SQL的安装和配置方法:2.运行安装程序:3. 安装PL/SQL Developer工具:安装完Oracle数据库后,您可以选择安装PL/SQL Developer工具来编写和执行PL/SQL代码。
PL/SQL Developer是一个免费的工具,它提供了丰富的功能和用户友好的界面。
5.运行安装程序:6. 配置PL/SQL Developer:安装完成后,打开PL/SQL Developer。
在首次运行时,您需要配置连接到Oracle数据库的参数。
在连接配置对话框中,输入数据库的主机名、端口号、数据库名称、用户名和密码等信息。
点击“测试”按钮,确保连接正常。
7.创建数据库和用户:如果您要在PL/SQL开发环境中创建新的数据库和用户,您可以使用Oracle SQL Developer工具。
打开SQL Developer,连接到Oracle数据库,使用SQL语句创建新的数据库和用户。
8.编写和执行PL/SQL代码:9.调试PL/SQL代码:PL/SQL Developer还提供了调试功能,您可以设置断点、单步执行代码,并查看变量和表达式的值。
在调试过程中,您可以逐步跟踪代码执行的过程,以便快速发现和修复错误。
10.导入和导出PL/SQL程序单元:PL/SQL Developer还提供了导入和导出PL/SQL程序单元的功能。
您可以将PL/SQL程序单元导出为一个文件,然后在其他数据库中导入。
这样可以方便地备份和共享PL/SQL代码。
以上是PL/SQL的安装和配置方法。
安装Oracle数据库和PL/SQL Developer后,您可以开始使用PL/SQL编程语言来开发和管理Oracle数据库。
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” 即可,重新登录在输入一次密码则记住了。
断点调试——精选推荐

断点调试断点调试1. 实际需求在开发中,程序员发现⼀个⾮常诡异的错误,怎么看源代码都发现不了这个错误,这时⽼程序员就会温馨提⽰,可以使⽤断点调试,⼀步⼀步的看源码执⾏的过程,从⽽发现错误所在2.断点调试介绍断点调试是指⾃⼰在程序的某⼀⾏设置⼀个断点,调试时,程序运⾏到这⼀⾏就会停住,然后你可以⼀步⼀步的往下调试,调试过程中可以看各个变量当前的值,出错的话,调试到出错的代码⾏即显⽰错误,停下,然后程序可以进⾏分析从⽽找到这个BUG断点调试是程序员必须掌握的重要的技能使⽤断点调试也能帮助我们最终查看C程序代码的执⾏过程,提⾼程序员的⽔平3.断点调试的快捷键f5 开始调试,执⾏到下⼀个断点f11 逐句执⾏代码,会进⼊到函数体中f10 逐过程执⾏(遇到函数,跳出前,会将该函数执⾏完)shift+f5 终⽌调试shift+f11 跳出(跳出某个函数,跳出前,会将该函数执⾏完)4.断点调试应⽤案例看⼀下变量的变化情况void main(){int sum=0;//断点下在这⾥,然后使⽤f10(逐过程执⾏,可以看到各个变量的变化情况)int i=0;for(i=0;i<10;i++){sum+=i;printf("i=%d",i);printf("sum=%d",sum);}printf("退出for循环了");}5.断点调试应⽤案例2看⼀下数组越界的情况,当数组越界后,会输出⼀个为⽌的值void main(){int arr[]={1,2,3,4,5};int i=0;int len=sizeof(arr)/sizeof(int);for(i=0;i<=len;i++){printf("arr[%d]=%d",i,arr[i]);}}6.断点调试应⽤案例3演⽰如果进⼊到调⽤的函数体内,f11(进⼊到函数体),shift+f11(跳出函数)double cal2(int num1,int num2,char oper){double res=0.0;switch(oper){case '+':res=num1+num2;break;case '-':res=num1-num2;break;case '*':res=num1*num2;break;case '/':res=num1/num2;break;default:printf("你的运算符有误");}return res;}7.断点调试应⽤案例4#include<stdio.h>#include<stdlib.h>#include"myfun.h"void main(){int n1=10;int n2=40;char oper="+";double res=cal2(n1,n2,oper);printf("res=%.2f",res);printf("hello1");printf("hello2");system("pause");}断点调试1. 实际需求在开发中,程序员发现⼀个⾮常诡异的错误,怎么看源代码都发现不了这个错误,这时⽼程序员就会温馨提⽰,可以使⽤断点调试,⼀步⼀步的看源码执⾏的过程,从⽽发现错误所在2.断点调试介绍断点调试是指⾃⼰在程序的某⼀⾏设置⼀个断点,调试时,程序运⾏到这⼀⾏就会停住,然后你可以⼀步⼀步的往下调试,调试过程中可以看各个变量当前的值,出错的话,调试到出错的代码⾏即显⽰错误,停下,然后程序可以进⾏分析从⽽找到这个BUG断点调试是程序员必须掌握的重要的技能使⽤断点调试也能帮助我们最终查看C程序代码的执⾏过程,提⾼程序员的⽔平3.断点调试的快捷键f5 开始调试,执⾏到下⼀个断点f11 逐句执⾏代码,会进⼊到函数体中f10 逐过程执⾏(遇到函数,跳出前,会将该函数执⾏完)shift+f5 终⽌调试shift+f11 跳出(跳出某个函数,跳出前,会将该函数执⾏完)4.断点调试应⽤案例看⼀下变量的变化情况void main(){int sum=0;//断点下在这⾥,然后使⽤f10(逐过程执⾏,可以看到各个变量的变化情况)int i=0;for(i=0;i<10;i++){sum+=i;printf("i=%d",i);printf("sum=%d",sum);}printf("退出for循环了");}5.断点调试应⽤案例2看⼀下数组越界的情况,当数组越界后,会输出⼀个为⽌的值void main(){int arr[]={1,2,3,4,5};int i=0;int len=sizeof(arr)/sizeof(int);for(i=0;i<=len;i++){printf("arr[%d]=%d",i,arr[i]);}}6.断点调试应⽤案例3演⽰如果进⼊到调⽤的函数体内,f11(进⼊到函数体),shift+f11(跳出函数) double cal2(int num1,int num2,char oper){double res=0.0;switch(oper){case '+':res=num1+num2;break;case '-':res=num1-num2;break;case '*':res=num1*num2;break;case '/':res=num1/num2;break;default:printf("你的运算符有误");}return res;}7.断点调试应⽤案例4#include<stdio.h>#include<stdlib.h>#include"myfun.h"void main(){int n1=10;int n2=40;char oper="+";double res=cal2(n1,n2,oper);printf("res=%.2f",res);printf("hello1");printf("hello2");system("pause");}。
PLSQL基本操作手册范本

第1章用PLSQL连接Oracle数据库PLSQL只能用来连接Oracle数据库(不象PB还可以连接JDBC、ODBC),所以必须首先安装并配置Oracle客户端。
§1.1初次登录PLSQL:运行PLSQL通过如下界面连接Oracle数据库:Database的下拉列表中自动列出了Oracle客户端配置的所有服务名。
选择要连接的Oracle服务名,并输入用户名/密码。
点击ok进行连接。
§1.2登录信息保存功能设置:如果设置了登录信息保存功能,可以通过以下方式连接数据库,而不必每次输入用户名/密码。
点击,在下拉列表中选择之前保存的数据库登录信息,直接进行连接。
登录信息保存功能设置:进入PLSQL后,在菜单区点击右键,出现如下PLSQL配置界面。
将Store with password 选中即可,这样第一次通过用户名/密码登录某数据库后,下次就不用再输入用户名/密码了。
§1.3进入PLSQL后切换数据库连接:点击,选择要连接的数据库即可完成切换。
第2章PLSQL中编写SQL语句并执行点击,并选择SQL Window进入SQL语句编写界面,如下:点击,执行SQL语句,页面右下方出现结果列表。
如下图:(执行快捷键为:F8)点击,使结果全部呈现。
第3章PLSQL中查看数据库表结构§3.1查看表结构:在如下界面,按住Ctrl键并将鼠标移动到一个表名,此时表名变了颜色:点击表名,便可显示表结构,如下图:§3.2表结构窗口和SQL编写窗口切换:在Tools菜单中,选中Window List,此时会新打开一个窗口,将其放置到左下脚,窗口中罗列了右下方操作区打开的所有窗口,通过选择可以进行窗口切换。
也可通过以下方式进行切换:在Window菜单最下方罗列了操作区打开的所有窗口,通过选择可以进行窗口切换。
第4章PLSQL中SQL语句的注释选取想要注释的语句,点击进行注释,如下:结果如下:取消注释点击。
七、PLSQL存储函数和存储过程及打断点如何调试

七、PLSQL存储函数和存储过程及打断点如何调试1、存储过程和函数的概念:ORACLE 提供可以把PL/SQL 程序存储在数据库中,并可以在任何地⽅来运⾏它。
这样就叫存储过程或函数。
过程和函数统称为PL/SQL⼦程序,他们是被命名的PL/SQL块,均存储在数据库中,并通过输⼊、输出参数或输⼊/输出参数与其调⽤者交换信息。
过程和函数的唯⼀区别是函数总向调⽤者返回数据,⽽过程则不返回数据常见的单词:pragma 编译指⽰instantiable 实例化overriding 覆盖重写static member 静态成员delimited 划定…的界限identifier 标识符reverse 反向2、存储函数的格式|存储函数格式|create or replace function func_name(dept_id number,salary number)return varchar2is-- 函数使⽤过程中,需要声明的变量,记录类型,cursorbegin--函数的执⾏体,如果有返回值需要returnreturn 'helloworld'|| v_logo;--commit;如果此处是进⾏insert、delete、update操作,可以通过提交进⾏更改,⽆需再调⽤存储函数后再进⾏提交exception--处理函数执⾏过程中的异常end;详解:1)因为函数需要返回⼀个值, 所以RETURN 包含返回结果的数据类型.2)函数名后⾯是⼀个可选的参数列表, 其中包含IN, OUT 或IN OUT 标记. 参数之间⽤逗号隔开IN 参数标记表⽰传递给函数的值在该函数执⾏中不改变;OUT 标记表⽰⼀个值在函数中进⾏计算并通过该参数传递给调⽤语句;IN OUT 标记表⽰传递给函数的值可以变化并传递给调⽤语句. 若省略标记, 则参数隐含为IN3)A、存储函数:有返回值,创建完成后,如何调⽤:⽅法⼀select function() from dual;⽅法⼆:set serveroutput on;var aaa varchar2(10);call hello_world() into :aaa;⽅法三:begindbms_output.put_line(hello_world());end;B、存储过程:由于没有返回值,创建完成后,不能使⽤select语句,只能使⽤pl/sql块执⾏|实例⼀:创建⼀个⽆参函数|create or replace function hello_worldreturn varchar2isbeginreturn 'hello world';end;如何调⽤:⽅法⼀select hello_world() from dual;⽅法⼆set serveroutput on;var aaa varchar2(10);call hello_world() into :aaa;⽅法三:begindbms_output.put_line(hello_world());end;⽅法四:declarev_bianling varchar2(40);beginv_bianling := hello_world;dbms_output.put_line(v_bianling);end;|实例⼆:创建⼀个有参函数(传进去的参数v_classid的值是不变的)|求⼀个班学⽣的总薪⽔create or replace function get_sal(v_classid number)return numberisv_sumsal number(10):=0;cursor sal_cursor is select sal from student where classid =v_classid; beginfor c in sal_cursor loopv_sumsal:=v_sumsal+c.sal;end loop;return v_sumsal;end;|实例三:创建⼀个有参函数(传进去的参数v_classid的值是不变的)|OUT型参数 对于实例⼆中的传进去的参数⼀般是不变的In是输⼊类型,⽽out是输⼊输出类型的如果⼀个形参⽤out修饰 那么它就会在函数中被赋值,并且可以当成⼀个数传出去(结合例⼦理解)create or replace function get_sal1(v_classid number,total_sal out number)return numberisv_sumsal number(10):=0;cursor sal_cursor is select sal from student where classid =v_classid;begintotal_sal:=0;for c in sal_cursor loopv_sumsal:=v_sumsal+c.sal;total_sal:=total_sal +1;end loop;return v_sumsal;end;如何调⽤:declarev_total_sal number(5);begindbms_output.put_line(get_sal1(1, v_total_sal));dbms_output.put_line(v_total_sal);end;⽆返回值 但是可以定义⼀个 out型参数把 值传出来的例⼦如下:create or replace function get_sal2(v_classid number,total_sal out number)return numberiscursor sal_cursor is select sal from student where classid =v_classid;begintotal_sal:=0;for c in sal_cursor looptotal_sal:= total_sal+c.sal;end loop;return total_sal;end;如何调⽤:declarev_classid number(5):=1;v_total_sal number(10):=0;begindbms_output.put_line(get_sal2(v_classid,v_total_sal));dbms_output.put_line(v_total_sal);end;3.plsqldep存储过程如何打断点进⾏调试1)edit pkg_regulatory_tax.;在相应的代码处添加断点、点击执⾏按钮进⾏编译2)test pkg_regulatory_tax.p_load_auto;输⼊传参信息,点击上⾯的执⾏按钮进⾏调试。
ORACLE PLSQL调试方法

Oracle专题——PL/SQL调试一般方法在开发PL/SQL程序时,每个程序错误都有其特殊之处,这就使得程序的调试和测试技术面临挑战。
虽然在开发过程中可以借助于测试来减少程序错误的数量,但是,如果能有效的调试PL/SQL程序,可以较大幅度提高开发效率及质量。
以下为PL/SQL调试的一些方法:(1)捕捉违例通过两个内建的函数sqlcode 和sqlerrm 来找出发生了哪类错误并获得详细的错误信息,在内部违例发生时,sqlcode返回从-1至-20000之间的一个错误号,但有一个例外,仅当内部违例no_data_found 发生时,才会返回一个正数 100。
当用户自定义的违例发生时,sqlcode返回+1,除非用户使用 pragma exception_init 将自定义违例绑定一个自定义的错误号。
当没有违例抛出时,sqlcode返回0。
下面是个简单的捕捉违例的例子:CREATE OR REPLACE PROCEDURE PROC_GETEXCEPTIONINFO(I_TMPVAR INNUMBER,O_RETCODE OUT VARCHAR2,O_ERRMSG OUT VARCHAR2) ISV_TMPVAR NUMBER;BEGINSELECT I_TMPVAR / 0 INTO V_TMPVAR FROM DUAL;EXCEPTIONWHEN OTHERS THENO_RETCODE := SQLCODE;O_ERRMSG := SQLERRM;END PROC_GETEXCEPTIONINFO;运行结果为:输入:I_TMPVAR 10输出:O_RETCODE -1476O_ERRMSG ORA-01476: 除数为 0(2)将结果打印到屏幕通过DBMS_OUTPUT包将PLSQL中的变量值打印到屏幕上,在程序运行过程中,可以跟踪变量的变化轨迹。
DECLAREBEGINDBMS_OUTPUT.PUT_LINE('Before loop......');FOR V_COUNTER IN 1 .. 5 LOOPDBMS_OUTPUT.PUT_LINE('Inside loop. counter=' || V_COUNTER);END LOOP;DBMS_OUTPUT.PUT_LINE('After loop.');END;运行结果为:Before loop......Inside loop. counter=1Inside loop. counter=2Inside loop. counter=3Inside loop. counter=4Inside loop. counter=5After loop.(3)使用调试表把变量的值插入到程序维持的临时表中,当该程序运行结束时,查询该临时表中的变量数据值。
手把手教你如何断点+单步调试

⼿把⼿教你如何断点+单步调试问:为啥下⾯程序运⾏后,要输⼊两个字符串才能结束?⼿把⼿教你如何断点+单步调试第1步)我写了⼀个你类似的程序:先设置断点第2步)带断点运⾏第3步)第1句中断第4步)单步运⾏黄箭头下来,说明刚才的cin.clear执⾏完了让你输⼊了吗?没有!说明输⼊不是那个语句造成的。
第5步)单步运⾏现在让你输⼊东西:是哪条语句让你输⼊的内容?现在执⾏的是cin.ignore!是cin.ignore让你输⼊的!调试出来了么,明⽩了吧?第6步)你输⼊qwe回车看黄箭头跑哪来了?现在,即将执⾏(还没执⾏)的才是cin>>s第7步)点单步运⾏以运⾏cin>>s再次输⼊:请问,第2个qwe是哪条语句让你输⼊的?第1个qwe⼜是哪条语句让你输⼊的?你不能上来就cin.ignore。
上来就cin.ignore冰箱⾥没东西,没有可倒掉的,所以让你输⼊,输⼊完倒掉。
倒完了,第2个cin没有吃的,⼜让你输⼊东西。
所以才是两遍较真这个没有意义,因为第⼀个这就是朝纲的,第⼆个,以后编写窗⼝界⾯程序,这些东西根本⽤不到!所以是你现在⽩浪费时间。
另外⼀个,如果你断点和单步调试了,输⼊两遍的字符串输⼊的是不⼀样的内容(不要都输⼊qwe),然后在监视窗⼝观察 k-a ⾥存的字符串到底是你输⼊的两个⾥的哪⼀个,也会明⽩了(输⼊的第2个才被存到k-a⾥⾯,你输⼊的第⼀个字符串,根本没存⾥;也不是输⼊第2个后覆盖了,因为输⼊第1个之后、第2个之前,k-a⾥⾯的值也不是第1个字符串)所以,有没有明⽩“断点+单步调试”⽅法的意义何在?让你断点+单步运⾏,为啥不做呢?。
PLSQL语法以及程序编写介绍

NCHAR:来存储Unicode字符集的定长 字符型数据,长度<= 1000 字节。它的声明 方式与CHAR相同。 NVARCHAR2:用来存储Unicode字符 集的变长字符型数据,长度<= 1000 字节。 它的声明方式与VARCHAR2相同。 LONG:用来存储最大长度为2GB的变 长字符数据。
七、条件逻辑 在PL/SQL中,可以使用命令if,else和elsif来控 制可执行命令段的命令流。下面列出了可用的条 件逻辑命令的格式(循环条件除外) 格式1: if <条件> then <命令> elsif <条件> then <命令> else <命令> end if;
格式2: if <条件> then if <条件> then <命令> end if; else <命令> end if; 总的说来除了格式上与C略有区别,其它都 是一样的
实际数据
7456123.89 7456123.89 பைடு நூலகம்456123.89 7456123.89 7456123.89 7456123.89 7456123.89
定义
NUMBER NUMBER(9) NUMBER(9,2) NUMBER(9,1) NUMBER(6) NUMBER(7,-2) NUMBER(7,2)
area_id
1 2
addr_zipcode
325200 325400
3
4 5 6 7 8
325800
325100 325600 325700 325300 325500
其他
325000
八、循环 在一个单独的PL/SQL代码块中可以使用 循环处理多个记录。PL/SQL支持三种类型 的循环。 简单循环