楼主: woodpile

[精华] 你们是如何调试存储过程的??

[复制链接]
论坛徽章:
1
授权会员
日期:2005-10-30 17:05:33
31#
发表于 2004-5-23 13:29 | 只看该作者
3.另外,如果你拼写的insert into。。。。select  。。。非常长,很有可能对应有问题,比如多了一个逗号,少了引号,少了数据列等等,你可以在本机动态sql执行之前就把这两个变量insert到一个你自己创建的表里

使用道具 举报

回复
论坛徽章:
1
ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44
32#
发表于 2004-5-24 11:31 | 只看该作者
问一个问题,有多少人用的Toad是买来的呢?

使用道具 举报

回复
论坛徽章:
0
33#
发表于 2004-9-23 10:53 | 只看该作者

自己写个put_line, 解决ORU-10028异常

create or replace procedure put_line(
    v_string     in varchar2,
    v_len        in integer)
as
    v_curr_pos   integer;
    v_length     integer;
    v_printed_to integer;
    v_last_ws    integer;
    skipping_ws  boolean;

begin

  if (v_string is null) then
    return;
  end if;

  v_length := length(v_string);

  v_curr_pos    :=  0;
  v_printed_to  := -1;
  v_last_ws     := -1;
  skipping_ws   := true;

  while v_curr_pos < v_length loop

    if substr(v_string,v_curr_pos+1,1) = ' ' then
      v_last_ws := v_curr_pos;
      if skipping_ws then
        v_printed_to := v_curr_pos;
      end if;
    else
      skipping_ws := false;
    end if;

    if v_curr_pos >= v_printed_to + v_len then
      if v_last_ws <= v_printed_to then
        dbms_output.put_line(substr(v_string,v_printed_to+2,v_curr_pos-v_printed_to));
        v_printed_to:=v_curr_pos;
        skipping_ws := true;
      else
        dbms_output.put_line(substr(v_string,v_printed_to+2,v_last_ws-v_printed_to));
        v_printed_to := v_last_ws;
        skipping_ws := true;
      end if;
    end if;

    v_curr_pos := v_curr_pos + 1;

  end loop;

  dbms_output.put_line (substr(v_string,v_printed_to+1));

end put_line;
/

使用道具 举报

回复
论坛徽章:
0
34#
发表于 2004-9-23 11:23 | 只看该作者

oracle-best-pratice 依据书上源码

PROCEDURE pl (
     str IN VARCHAR2,
     len IN INTEGER := 255,
     expand_in in BOOLEAN := TRUE)
  IS
     v_len PLS_INTEGER := LEAST (len, 255);
     v_str VARCHAR2(2000);
  BEGIN
     IF LENGTHB (str) > v_len
     THEN
        v_str := SUBSTRB (str, 1, v_len);
        DBMS_OUTPUT.PUT_LINE (v_str);
        pl (substrb (str, len + 1), v_len, expand_in);
     ELSE
        v_str := str;
        DBMS_OUTPUT.PUT_LINE (v_str);
     END IF;
  EXCEPTION
     WHEN OTHERS
     THEN
        IF expand_in THEN
           DBMS_OUTPUT.ENABLE (1000000);
        ELSE
           RAISE;
        END IF;
        DBMS_OUTPUT.PUT_LINE (v_str);
  END;

使用道具 举报

回复
论坛徽章:
0
35#
发表于 2004-9-23 11:24 | 只看该作者

依据oracle-best-pratice书上源码

PROCEDURE pl (
     str IN VARCHAR2,
     len IN INTEGER := 255,
     expand_in in BOOLEAN := TRUE)
  IS
     v_len PLS_INTEGER := LEAST (len, 255);
     v_str VARCHAR2(2000);
  BEGIN
     IF LENGTHB (str) > v_len
     THEN
        v_str := SUBSTRB (str, 1, v_len);
        DBMS_OUTPUT.PUT_LINE (v_str);
        pl (substrb (str, len + 1), v_len, expand_in);
     ELSE
        v_str := str;
        DBMS_OUTPUT.PUT_LINE (v_str);
     END IF;
  EXCEPTION
     WHEN OTHERS
     THEN
        IF expand_in THEN
           DBMS_OUTPUT.ENABLE (1000000);
        ELSE
           RAISE;
        END IF;
        DBMS_OUTPUT.PUT_LINE (v_str);
  END;

使用道具 举报

回复
论坛徽章:
0
36#
发表于 2005-9-9 16:30 | 只看该作者
本人用sql navigator调试,个人感觉功能还是挺强大的,可以设条件断点,单步跟踪,add watch,可以保留上次输入的测试参数,

使用道具 举报

回复
论坛徽章:
0
37#
发表于 2005-9-9 20:24 | 只看该作者
倒!这么老的帖子居然还能翻出来!哈哈!

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2006-01-10 14:41:39
38#
发表于 2005-10-15 10:33 | 只看该作者
最初由 attenborough 发布
[B]问一个问题,有多少人用的Toad是买来的呢? [/B]


pl/sql也没有几个是买来的

使用道具 举报

回复
论坛徽章:
4
ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:442010新春纪念徽章
日期:2010-03-01 11:19:502011新春纪念徽章
日期:2011-02-18 11:43:362012新春纪念徽章
日期:2012-01-04 11:53:29
39#
发表于 2007-7-3 17:22 | 只看该作者
用pl/sql进行单步调试。。感觉不错。。

使用道具 举报

回复
论坛徽章:
66
现任管理团队成员
日期:2011-05-07 01:45:08版主9段
日期:2013-04-21 02:21:02ITPUB年度最佳版主
日期:2014-02-19 10:05:27ITPUB年度最佳版主
日期:2013-01-30 17:30:25ITPUB年度最佳技术原创精华奖
日期:2012-03-13 17:12:05优秀写手
日期:2013-12-18 09:29:15元宝章
日期:2015-02-10 19:57:54金牌徽章
日期:2015-02-10 19:59:42银牌徽章
日期:2015-02-10 19:59:42铜牌徽章
日期:2015-02-10 19:59:41
40#
发表于 2007-7-3 21:00 | 只看该作者
Use sql/developer to step debug

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表