[20180502]PLDEVELOP与存储过程调试.txt

--//今天遇到一个调式问题.做一个记录:

1.环境:
SCOTT@book> @ ver1
PORT_STRING                    VERSION        BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx            11.2.0.4.0     Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

--//建立过程如下:

CREATE OR REPLACE PROCEDURE oratest (a VARCHAR2, b VARCHAR2)
AS
   c   VARCHAR2(32767);
BEGIN
   c := a || b;
   DBMS_OUTPUT.put_line (a || b);
END oratest;
/

--//另外写法:
CREATE OR REPLACE PROCEDURE oratest1 (a VARCHAR2, b VARCHAR2)
AS
   c   VARCHAR2(32767);
BEGIN
   c := a || b;
   DBMS_OUTPUT.put_line (c);
END oratest;
/

SCOTT@book> exec oratest(lpad('a',255,'a'),'b');
aaaaaaaaaaaaaa....
aaaab

PL/SQL procedure successfully completed.

--//在sqlplus以及toad下执行如下:
DECLARE
  A VARCHAR2(32767);
  B VARCHAR2(32767);

BEGIN
  A := lpad('a',255,'a');
  B := 'b';

SCOTT.ORATEST ( A, B );
  COMMIT;
END;
/

2.但是如果使用pl develop的test windows:
begin
  -- Call the procedure
  oratest(a => :a,
          b => :b);
end;

--//如果输入参数字符串总和长度大于255,就会出现错误:
ORA-06502:PL/SQL:number or value error: host bind array too small.
--//即使type选择PL/SQL string也是一样.
--//我使用PL的版本 6.0.0.840.

https://blog.csdn.net/zzy7075/article/details/8559358

--//经过分析,在客户端为9i的机器上运行这个sql,其最大长度限制是255,在10g上运行,最大长度限制是32767.
--//找了一台9i的windows服务器测试看看.

SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle9i Enterprise Edition Release 9.2.0.8.0 - Production
PL/SQL Release 9.2.0.8.0 - Production
CORE    9.2.0.8.0       Production
TNS for 32-bit Windows: Version 9.2.0.8.0 - Production
NLSRTL Version 9.2.0.8.0 - Production

SQL> CREATE OR REPLACE PROCEDURE oratest (a VARCHAR2, b VARCHAR2)
  2  AS
  3     c   VARCHAR2(32767);
  4  BEGIN
  5     c := a || b;
  6     DBMS_OUTPUT.put_line (a || b);
  7  END oratest;
  8  /
过程已创建。

SQL> set serverout on
SQL> exec oratest(lpad('a',255,'a'),'b');
BEGIN oratest(lpad('a',255,'a'),'b'); END;

*
ERROR 位于第 1 行:
ORA-20000: ORU-10028: line length overflow, limit of 255 chars per line
ORA-06512: 在"SYS.DBMS_OUTPUT", line 35
ORA-06512: 在"SYS.DBMS_OUTPUT", line 133
ORA-06512: 在"SYSTEM.ORATEST", line 6
ORA-06512: 在line 1

SQL> exec oratest(lpad('a',254,'a'),'b');
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaab
PL/SQL 过程已成功完成。

SQL> set serveroutput on size 10000
SQL> exec oratest(lpad('a',255,'a'),'b');
BEGIN oratest(lpad('a',255,'a'),'b'); END;

*
ERROR 位于第 1 行:
ORA-20000: ORU-10028: line length overflow, limit of 255 chars per line
ORA-06512: 在"SYS.DBMS_OUTPUT", line 35
ORA-06512: 在"SYS.DBMS_OUTPUT", line 133
ORA-06512: 在"SYSTEM.ORATEST", line 6
ORA-06512: 在line 1

--//我的pl/develop的client是10.2.0,难道里面的某些dll版本还是9i的东西.放弃,好在我不用pl/delelop.不过开发遇到这个问题,以后工作注意.

--//另外好像在拼接时开始报错...

[20180502]PLDEVELOP与存储过程调试.txt相关推荐

  1. 存储过程调试技巧搜集

    1.在查询分析器中调试 查询分析器中调试的步骤如下:     SQL 2000查询分析器         --左连的对象浏览器(没有的话按F8)         --对象项中         --右键 ...

  2. mysql存储过程调试学习总结

    Mysql调试存储过程最简单的方法 以前同事告诉我用临时表插入变量数据来查看,但是这种方法过于麻烦,而且Mysql没有比较好的调试存储过程的工具.今天google了下发现可以用select + 变量名 ...

  3. SQL SERVER2000存储过程调试

    sql server2000存储过程调试 基础条件 启用SQLDebugger 账户账户,这个一般都是开启的: mssqlserver服务要求使用指定用户(不是本地系统用户),最好是administr ...

  4. mysql存储过程调试_MYSQL存储过程调试过程

    mysql不像oracle有plsqldevelper工具用来调试存储过程,所以有几种简单的方式追踪执行过程: 1.用一张临时表,记录调试过程: 2.直接在存储过程中,增加select xxx,在控制 ...

  5. SQL 存储过程 调试

    SQL 存储过程 调试 SqlServer 输出 print @变量名   print  @NextCount    print  '输出常量' 在需要的位置写上,然后执行下述操作,执行一遍,对该存储 ...

  6. sqlserver2000 存储过程调试详解 完整版

    准备工作: 补充: 这一步正常不做也可以的.可以直接到第二步. 一.如果调试数据在本机上,那一切都很简单! msdn中是这样写的: 若要在 SQL 2000 桌面引擎上启用存储过程调试,必须在安装 S ...

  7. oracle的存储过程调试,oracle 运行普通方式及调试debug方式存储过程性能区别

    调试某一存储过程时,在plsql developer debug调试执行时,20多分钟都执行不完, 后分析如下: 1,查询调试会话运行存储过程的对应sql select sid,serial#,eve ...

  8. sql server中的存储过程调试

    调试: 在SQL QUERY中->对象浏览器->存储过程->选择要调试的存储过程->右击->选择调试(debug)->输入参数->--设置完你的参数值后--点 ...

  9. SQL存储过程调试方法

    在过去的一年时间里,很大一部分时间花在SQL编程上,刚开始是改别人的,后来越来越烦躁,就重写了很多的代码.当然重写的代码一方面是前面的代码比较换乱,不易阅读,另一方面是新增加的功能接连到来,仿佛往一个 ...

最新文章

  1. python自带图形模块_检查单击是否在图形对象内[Python图形模块]
  2. CentOS curses 中文乱码问题
  3. 用相对路径从一个项目跳转到另一个项目_如何用2天时间,从0到N的完成一个学习项目设计?...
  4. 《Python从小白到大牛》简介
  5. c语言定义数组a10 指定各元素,C语言填空题.doc
  6. 二叉树的深度优先遍历逆推
  7. linux中设备文件的主要内容包括什么,LINUX期末考试复习题.doc
  8. php注册树模式,PHP设计模式之注册树模式
  9. 华中农业大学第五届程序设计大赛网络同步赛解题报告2(转)
  10. 从零开始刷Leetcode——数组(941.977)
  11. Q102:光线追踪场景(4)——面朝大海
  12. TermuxArch安装java_高级终端Termux安装并使用
  13. npm切换到国内华为云的镜像
  14. oracle alter database,alter database操作
  15. 数据中心交换机与普通交换机有什么不同?
  16. 【网络运维】小平头PingTow网络IP导入检测工具软件开发源代码分享
  17. 苏宁门店数字化白皮书发布 行业数字化进程将再提速
  18. 精通Dubbo——Dubbo支持的协议的详解
  19. Pygame - Python游戏编程入门(3)
  20. 数据结构知识点 -- 链表(Java实现)

热门文章

  1. 马腾宇:AI 学界一颗冉冉升起的新星
  2. 《2019人工智能发展报告》出炉
  3. 房住不炒,来真的了?
  4. 从SAP APO到SAP IBP:CIO如何实现最佳过渡?
  5. A股光刻胶飙涨背后:仅一家可供应高端光刻胶
  6. 基金委最新改革:9大科学部整合为4个板块资助布局
  7. 计算的极限(零):逻辑与图灵机
  8. 一文剖析2020年最火十大物联网应用|IoT Analytics 年度重磅报告出炉!
  9. 毕马威发布《人工智能无处不在》研究报告:人工智能在五大行业的成就与挑战...
  10. 揭秘5G+AI时代的机器人世界!七大核心技术改变人类生活【附下载】| 智东西内参...