精华内容
下载资源
问答
  • 通过命令行创建存储过程 create or replace procedure emp_sal(eno emp.empno%type,esal out emp.sal%type) as begin select sal into esal from emp...PL/SQL 中测试存储过程 依次打开 File -> New -> TestW...

    通过命令行创建存储过程

    create or replace procedure emp_sal(eno emp.empno%type,esal out emp.sal%type)
    as
    begin
      select sal into esal from emp where empno=eno;
    end;

    1306719-20181119105918499-754908227.png

    PL/SQL 中测试存储过程

    依次打开 File -> New -> TestWindow 窗口,执行如下代码:

    -- Created on 2018/11/19 by ADMINISTRATOR 
    declare 
      -- Local variables here
      v_sal emp.sal%TYPE;
    begin
      -- Test statements here
      emp_sal(7369,v_sal);
      dbms_output.put_line(v_sal);
    end;

    1306719-20181119104957638-182998169.png

    1306719-20181119105003581-837085301.png

    Java 中如何调用存储过程

    导入 jdbc 连接 oracle 的架包 ojdbc7

    import java.sql.CallableStatement;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    import java.sql.Types;
    
    public class TestJDBCProcedure {
        public static void main(String[] args) {
            Connection conn = null;
            CallableStatement cs = null;
            try {
                Class.forName("oracle.jdbc.driver.OracleDriver");
                conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl", "scott", "123456");
                cs = conn.prepareCall("call emp_sal(?,?)");
                cs.setInt(1, 7369);
                cs.registerOutParameter(2, Types.FLOAT);
                cs.execute();
                float sal = cs.getFloat(2);
                System.out.println("薪资:" + sal);
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                if (conn != null) {
                    try {
                        cs.close();
                        conn.close();
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    }

    运行结果
    薪资:800.0

    转载于:https://www.cnblogs.com/hglibin/p/9981927.html

    展开全文
  • 本文主要介绍如何在PL / SQL Developer中调试oracle存储过程. 1打开PL / SQL Developer. 如果计算机上安装了PL / SQL ... 单击确定. 查找包含需要调试的存储过程的程序包. 右键单击包主体(例如PACK_ACTIVI...

    84c817b961ffd592bb2cc107bec04019.png

    本文主要介绍如何在PL / SQL Developer中调试oracle存储过程. 1打开PL / SQL Developer. 如果计算机上安装了PL / SQL Developer,请打开PL / SQL Developer界面并输入用户名. 密码和主机名与程序的web.config中配置的相同. 单击确定. 查找包含需要调试的存储过程的程序包. 右键单击包主体(例如PACK_ACTIVITY),然后在弹出菜单中选择[查看],以获取包中的所有存储过程及其代码. 2添加调试信息以便能够单步执行若要跟踪存储过程,您需要向其所在的程序包中添加调试信息. 右键单击要调试的程序包. 在弹出菜单中选择[添加调试信息]. 这会将调试信息添加到程序包主体中. 3,调试存储过程现在,所有准备工作都已完成sql调试存储过程,可以调试和跟踪存储过程. 选择需要调试的存储过程. 右键单击并从弹出菜单中选择[测试]. 进入测试窗口. 测试窗口包含自动生成以测试存储过程的代码. 当然,您也可以自己添加和修改代码. 我们目前仅用于调试存储过程. 自动生成的代码就足够了.

    8625f7d23c197a600cfc1ba931edacb6.png

    请按照以下步骤进行调试. 1)添加存储过程所需的参数. 我们项目中的大多数存储过程都需要参数. 可以在测试窗口的右下方输入参数. 例如,GetPanNO_New需要输入参数v_employeeid. 我们输入180. 输出参数是mycursor,它是视图的结果. 您不需要输入任何值. 2开始调试. 单击[调试]菜单> [开始]或按F9进入调试模式. 程序将在开始行停止. 3后续的调试过程遵循熟悉的调试过程. just运行CtrlCtrlR进入CtrlCtrlN N越过CtrlO退出CtrlT或单击调试工具栏上的按钮按下CtrlN后存储过程的源代码,您可以在此窗口中查看过程中的变量值和堆栈. 4)调试完成后,可以查看以下结果. 单击mycursor变量旁边的按钮. 4提示令人沮丧的是,无论SELECT语句多么复杂sql调试存储过程,我们项目中的许多存储过程都是SELECT语句. SELECT语句中有嵌套的子SELECT语句. 它只能用作一行代码. 单步跟踪没有意义.

    cd453ef00acb4ddef6937a0f47ae04d0.gif

    在这种情况下,我们只能提取子级的SELECT语句,并查看结果. 具体操作如下: 您可以在需要检查的任何过程中检查子SELECT语句时创建一个新的SQL窗口,然后将sub SELECT语句的代码复制到此. SQL窗口并运行它. 查看sub-SELECT语句的结果. 当然,此子SELECT语句也可以调试.

    本文来自电脑杂谈,转载请注明本文网址:

    http://www.pc-fly.com/a/jisuanjixue/article-154220-1.html

    展开全文
  • PL/SQL中为我们提供了【调试存储过程】的功能,可以帮助你完成存储过程的... 点击要调试的存储过程,右键选择TEST 如果需要查看变量,当然调试都需要。在右键菜单中选择Add debug information. start debugger(F...
    PL/SQL中为我们提供了【调试存储过程】的功能,可以帮助你完成存储过程的预编译与测试。
    1. 点击要调试的存储过程,右键选择TEST
    2. 如果需要查看变量,当然调试都需要。在右键菜单中选择Add debug information.
    3. start debugger(F9)开始我们的测试,Run(Ctrl+R)
    4. 随时在varible List中输入我们想查看的变量

    其它:

    Step into(Ctrl+N):单步调试,进入下一步

    Step over(Ctrl+O):结束该语句

    Step out(Ctrl+T):跳出该过程

    Run to next exception:进入下一个断点Breakpoint

    Toggle Breakpoint设置断点:光标指向一行,Ctrl+B;或鼠标点中该行的行号边缘 


    ======================================

    1.在要调试的过程上单击test,如下图所示:

    09120512_lp0u.jpg

      2.出现如下界面时单击最左上方的按钮,如下图所示:

    09120512_DAy9.jpg

      3.单击后呈现如下画面:

    09120512_NnsG.jpg

      其中:表示要停止test;表示要全部运行完这个过程。单击它后你就不能单步调试了。

      单步调试。单击它后可以像在exlipse或者visal stidio里面一样对程序进行单步调试了。

      4.单击“单步调试”按钮。出现如下画面:

    09120512_0VPV.jpg

      这个时候表示你进入了调试状态,你可以单击上面说的任何按钮来控制程序,如下:

      表示要停止test,不再调试了;表示要全部运行完这个过程,不再进行单步调试了。

      单步调试,表示要一步一步的调试这个程序要想单步调试这个程序,只需要你用鼠标左键连续单击这个按钮即可。

    5.断点的使用。

      可以使用断点,方法是在文本区域最左侧的边框进行左键单击,如下:

    09120512_DO9V.jpg

      这个时候单击:这个按钮,就可以直接运行到这个位置了,示意图如下:

    09120513_1E9d.jpg

      这个时候再单击,进行一步步的调试。

      注意:当你忘记了设置断点,而进入一个非常大的循环时,没有关系,你可以打开这个过程在相应处设置断点,然后单击就可以了。步骤如下:

      a.忘了设断点了,但是我进入了非常大的循环单步调试很难退出时:这个时候需要打开这个过程,如下:

      b.你需要设置断点的地方左键单击即可,如下图:

    09120513_zKGq.jpg

      c.单击就直接运行到你设置的这个断点的地方了。

    5.对监控窗口的使用:

      这个窗口可以把你要监视的变量进行显示,你把你需要监视的变量复制到这个窗口就可以了。这个窗口在调试界面的最下方,如下示:

      这个sql_str 就是要被监视的对象。

      6.继续单步调试:可以看到,这个变量被赋值了。如下图所示:

    09120513_H600.jpg

      把它复制出来,在新建的slq window里运行,就可以看到执行结果了。如下图所示:

      7.分析每一步的执行结果。

      8.继续单步运行,继续分析,直到知道为什么没有产生想要的结果为止。

      1)在要调试的过程上单击test,如下图所示:

      2)出现如下界面时单击最左上方的按钮:,如下图所示:

    09120513_0EJD.jpg

      3)单击后呈现如下画面:

    09120513_0EJD.jpg

      其中:表示要停止test;表示要全部运行完这个过程。单击它后你就不能单步调试了。

      单步调试。单击它后可以像在exlipse或者visal stidio里面一样对程序进行单步调试了。

    4.单击“单步调试”按钮。出现如下画面:

      这个时候表示你进入了调试状态,你可以单击上面说的任何按钮来控制程序,如下:

      表示要停止test,不再调试了;表示要全部运行完这个过程,不再进行单步调试了。

      单步调试,表示要一步一步的调试这个程序要想单步调试这个程序,只需要你用鼠标左键连续单击这个按钮即可。

      5.断点的使用。

      可以使用断点,方法是在文本区域最左侧的边框进行左键单击,如下:

      这个时候单击:这个按钮,就可以直接运行到这个位置了,示意图如下:

    09120513_GwM7.jpg

      这个时候再单击,进行一步步的调试。

      注意:当你忘记了设置断点,而进入一个非常大的循环时,没有关系,你可以打开这个过程在相应处设置断点,然后单击就可以了。步骤如下:

      a.忘了设断点了,但是我进入了非常大的循环单步调试很难退出时:这个时候需要打开这个过程,如下:

      b.你需要设置断点的地方左键单击即可,如下图:

      c.单击就直接运行到你设置的这个断点的地方了。

      5.对监控窗口的使用:

      这个窗口可以把你要监视的变量进行显示,你把你需要监视的变量复制到这个窗口就可以了。这个窗口在调试界面的最下方,如下示:

      这个sql_str 就是要被监视的对象。

      6.继续单步调试:可以看到,这个变量被赋值了。如下图所示:

      把它复制出来,在新建的slq window里运行,就可以看到执行结果了。如下图所示:

      7.分析每一步的执行结果。

      8.继续单步运行,继续分析,直到知道为什么没有产生想要的结果为止。

    转载于:https://my.oschina.net/willSoft/blog/143389

    展开全文
  • 如何调试oracle存储过程

    千次阅读 2013-12-13 15:37:25
    pl sql developer中如何调试存储过程以及调试包中创建的存储过程 如何调试oracle存储过程 PL/SQL中为我们提供了调试存储过程的功能,可以帮助你完成存储过程的预编译与测试。 点击要调试的存储过程,右键选择...

    pl sql developer中如何调试存储过程以及调试包中创建的存储过程

    如何调试oracle存储过程

    PL/SQL中为我们提供了调试存储过程的功能,可以帮助你完成存储过程的预编译与测试。
    1. 点击要调试的存储过程,右键选择TEST
    2. 如果需要查看变量,当然调试都需要。在右键菜单中选择Add debug information.
    3. start debugger(F9)开始我们的测试,Run(Ctrl+R)
    4. 随时在varible List中输入我们想查看的变量

    其它:

    Step into(Ctrl+N):单步调试,进入下一步

    Step over(Ctrl+O):结束该语句

    Step out(Ctrl+T):跳出该过程

    Run to next exception:进入下一个断点Breakpoint

    Toggle Breakpoint设置断点:光标指向一行,Ctrl+B;或鼠标点中该行的行号边缘 

     

     

    (1)在body里设置断点(在要设置断点的行开始点击鼠标左键就可以)。

    (2)右键点击TEST.

    会出现如下TEST WINDOWS窗口

    在下面红圈中的位置value栏中输入参数值,因为varstr是输入参数,所在要输入一个值,但是io_cursor是输入输出参数,在此做为输出参数不预输入值

    (3) Debug-->Start.

    如果上面操作步骤中在debug——start不能点击是灰色的,则是因为未给此用户分配调的权限,

    如果点击执行的话则pl/sql developer 调试存储过程报错

    note:debugging requires the debug connect session system privilege.

    原因是用户权限不够,使用以下命令授予权限:

    用sysdba角色的用户名登录,使用如下命令

    GRANT debug any procedure, debug connect session TO username

    (4)点击红色框的按钮进行单步调试,自动会跳到存储过程体内。

    (5)把鼠标放到变量上可以显示出该变量的值,。


    也可以在变量外点击鼠标右链选择Add variable to Watches

    此时会在下图红圈中列出该变量的值

    点南上图红色粗线中的按钮,弹出如下对话框显示该变量值的详细信息

    下面是创建一个简单存储过程的例子

    CREATE OR REPLACE PACKAGE u_pg_test   as
           TYPE t_cursor IS REF CURSOR ;
           Procedure u_sp_test(varStr varchar2, io_cursor IN OUT t_cursor);
    END;

    CREATE OR REPLACE PACKAGE BODY u_pg_test AS

    Procedure u_sp_test(varStr varchar2, io_cursor IN OUT t_cursor) IS

        v_cursor t_cursor;
        varSql varchar2(666);

    BEGIN
    varSql:='Select * aa where ANAME='''||varStr||'''';

        OPEN v_cursor FOR varSql;

    io_cursor := v_cursor;

    END u_sp_test;

    END u_pg_test;

     

    展开全文
  • 先按简单的存储过程做个例子,就是上次做的存储过程(proc_test) 1、先在数据库的procedures文件找到我们之前创建存储过程 2、选中存储过程,右键弹出菜单,选择 测试 3、出现测试脚本页面,输入动态参数值...
  • oracle如果存储过程比较复杂,我们要定位到错误就比较困难,那么可以存储过程的调试功能先按简单的存储过程做个例子,就是上次做的存储过程(proc_test)1、先在数据库的procedures文件找到我们之前创建存储过程2、...
  • 如何在Delphi中调用oracle的存储过程返回数据集 【delphi+oracle报表解决方案(一)】delphi中调用oracle的存储过程(分带返回游标,不返回值两种) 关键字: delphi ,oracle存储过程,游标,返回数据集,报表 注:...
  • CREATE OR REPLACE PROCEDURE PROC_Test(O_CUR OUT SYS_REFCURSOR) IS STR VARCHAR2(2000); TB_COUNT INT;...然后右键测试,运行,查看游标值2条数据,再运行,查看游标值就变成了4条。等大神解答
  • 1 在pl/sql developer 里右击要调试的存储过程,选择"添加调试信息"命令 2 如果存储过程没有语法错误,右击存储过程,选择"测试"命令 3 在"测试窗口"中安F9,调试(注意如果有输入参数的话,要先给各个参数赋值) 4 "ctrl +...
  • 本文主要是总结 如何实现 JDBC调用Oracle的存储过程,从以下情况分别介绍: [1]、只有输入IN参数,没有输出OUT参数 [2]、既有输入IN参数,也有输出OUT参数,输出是简单值(非列表) [3]、既有输入IN参数,也有...
  • 存储过程使用了临时表,如何用PL/SQL进行测试 因为临时表是会话级,只在同一个会话中能看到数据,所以使用了临时表可在调用方法之前,先往该临时表中插入数据进行测试 执行了某个方法后,想看下执行成功后所...
  • Oracle 存储过程的使用

    千次阅读 2017-03-27 11:15:41
    本文主要是总结 如何实现 JDBC调用Oracle的存储过程,从以下情况分别介绍: [1]、只有输入IN参数,没有输出OUT参数 [2]、既有输入IN参数,也有输出OUT参数,输出是简单值(非列表) [3]、既有输入IN参数,也有输出...
  • 本文讲述如何Oracle通过任务和管道应用,异步调用存储过程的方法。并且介绍了其基本原理和具体实现测试
  • oracle-存储过程调试

    2012-07-02 17:47:12
    如何调试oracle存储过程(PL/SQL中为我们提供了调试存储过程的功能,可以帮助你完成存储过程的预编译与测试)   一、一般调试  1、打开并登录pl/sql,File->New->Test Window; 2、在出现窗口...
  • 【IT168 技术】关于存储过程的调试,知道方法以后很简单,但在不知道时候,为了测试一个存储过程的正性,print,插入临时表等可谓是使出了浑身解数,烦不胜烦。下面就把我工作中调试oracle存储过程的方法和调试sql ...
  • 通过此次大批量数据性能测试,还会间接给大家分享一个知识点,Oracle存储过程如何处理List集合问题,废话不多说了,老规矩直接上代码!!!首先要做,想必大家应该猜到了。。。建表!create table tab_1 ( ...
  • 有的时候我们希望利用job调用带有参数的存储过程,那么下面就利用一个测试来介绍job如何调用带有参数的存储过程。创建测试表:create table aaa(name varchar2(10));创建测试存储create procedure mytest (name ...
  • 在某些时候,容易误删存储过程,那么针对存储过程被删除了,我们如何进行恢复呢 ? 这里为大家进行讲解。 1. 创建测试存储过程 SQL> conn roger/roger Connected. SQL> CREATE OR REPLACE PROCEDURE proc_test_...
  • 本文主要是总结 如何实现 JDBC调用Oracle的存储过程,从以下情况分别介绍:[1]、只有输入IN参数,没有输出OUT参数[2]、既有输入IN参数,也有输出OUT参数,输出是简单值(非列表)[3]、既有输入IN参数,也有输出OUT...
  • oracle 存储过程小记

    2010-08-07 22:57:00
    不知道了,谢谢www.1 oracle如何执行存储过程, 在外面直接执行存储过程,java直接执行存储过程 :可以直接用Java执行的===========================================================2 简单的存储过程例子执行...
  • 在百度搜索结果中会有许多关于如何oracle存储过程返回表结果,都提到sys_refcursor这个类型,往往不提及能支持此类型数据库版本,这里记录下这个“坑”,此类型在9i数据库之版本才有,用到同学注意了9i...
  • 当我们在oracle中写完一个存储过程,我们通常需要使用测试调用存储过程,调用测试之后,然后提交执行结果,就可以去数据库中执行sql,查看我们的存储过程执行的数据是否符合预期效果。 实际测试中,我们可能不希望...
  • 作为一名测试人员,少不了怎么是能得到自己想要数据以及格式,下面我介绍怎么生成自己想要jason格式数据以及怎么在特定表中插入大量自己数据。 如何生成自己想要Jason数据 今天做接口测试时,偶然得知一...
  • jdbc调用oracle存储过程

    2016-11-15 23:51:58
    本文主要是总结 如何实现 JDBC调用Oracle的存储过程,从以下情况分别介绍: [1]、只有输入IN参数,没有输出OUT参数[2]、既有输入IN参数,也有输出OUT参数,输出是简单值(非列表)[3]、既有输入IN参数,也有...
  • _下面的代码有关于测试数据表test_clob,以及插入记录的存储过程test_p_saveclob 。代码如下: #!/opt/php/bin/php -q // 参考:http://www.golaravel.com/php/function.oci-new-descriptor.html // 参考:...

空空如也

空空如也

1 2 3 4 5 ... 12
收藏数 233
精华内容 93
关键字:

如何测试oracle的存储过程