互联网服务

一个奇怪的存储过程报错问题

开发了个存储过程,但是调用的时候报错了,麻烦大家帮忙看看CREATE or replace PROCEDURE PRO_SYS_ROLE_AUTO (    IN "I_USER_ID" VARCHAR(32),    IN "I_USER_NAME" VARCHAR(64),    IN "I_UNIT_ID" VARCHAR(20) )begin  declare ...显示全部
开发了个存储过程,但是调用的时候报错了,麻烦大家帮忙看看


CREATE or replace PROCEDURE PRO_SYS_ROLE_AUTO (
    IN "I_USER_ID" VARCHAR(32),
    IN "I_USER_NAME" VARCHAR(64),
    IN "I_UNIT_ID" VARCHAR(20) )
begin
  declare v_business_type integer default null;
  declare v_create_user_id varchar(30) default null;
  declare v_role_id varchar(20) default null;
  declare v_sql varchar(1000) default null;

   (1) insert into SYS_USER_FOCUS_HB("USER_ID","UNIT_ID","LONGITUDE_1","LONGITUDE_2","LATITUDE_1","LATITUDE_2","FOCUS_SHIP_TYPE","RANGE_ID","RANGE_TYPE","CREATE_DATE","CREATE_USER_ID","CREATE_IP","CREATE_PROGRAM_ID","UPDATE_DATE","UPDATE_USER_ID","UPDATE_IP","UPDATE_PROGRAM_ID","RANGEFLAG","SEAAREA_ID")
  values (i_user_id,i_unit_id,105.000000,133.000000,41.000000,3.000000,1000,null,null,sysdate,null,null,null,sysdate,null,null,null,0,null);
-----
end;

输入参数如下:
当输入
hb_qhdbjz_czy
秦皇岛边防检查站操作员
010302
时没问题,正常执行
但是输入
hb_qhdbjz_czy
河北秦皇岛边防检查站操作员
010302后,数据库就自动停掉了,必须用db2start才能起来
在红色标注处打了断点,第一组参数调用时,断点处停了,第二组参数调用时,没走到断点处就报错了,报错如下
ERROR [08001] [IBM] SQL30081N  A communication error has been detected. Communication protocol being used: "TCP/IP".  Communication API being used: "SOCKETS".  Location where the error was detected: "192.168.0.24".  Communication function detecting the error: "recv".  Protocol specific error code(s): "*", "*", "0".  SQLSTATE=08001
什么原因呢?
入参的长度也够长了啊,不明白,请大家指点。
数据库日志见附件中

附件:

附件图标ytt.txt (91.98 KB)

收起
参与13

查看其它 11 个回答maxh666_cn的回答

maxh666_cnmaxh666_cn软件开发工程师xyf
bug好像像是
互联网服务 · 2012-10-09
浏览631

回答者

maxh666_cn
软件开发工程师xyf
擅长领域: 存储灾备数据安全

maxh666_cn 最近回答过的问题

回答状态

  • 发布时间:2012-10-09
  • 关注会员:1 人
  • 回答浏览:631
  • X社区推广