明月千度 2019-05-05 13:51 采纳率: 0%
浏览 1343

参数 13 无效:参数索引超出范围

图片说明

图片说明

在页面往数据库添加数据的时候,出现这个错误,在网上找解决方法,都是说什么 ? 不用加引号,我也看了一下自己的sql语句,?没加引号啊。报的错误是参数13 INSERT_TIME ,我这个参数13 是一个日期,数据库是 TIMESTAMP 类型的,然后取值用函数 F_GET_MAX_KEY

CREATE OR REPLACE FUNCTION "F_GET_MAX_KEY" ("IC_NAME" VARCHAR(255) )
  RETURNS VARCHAR(255)
BEGIN
  /**
  描述:根据序列生成表的流水主键
  参数:IC_NAME:标识名(忽略大小写).
                  'SHORT':YYMMDD+序列SEQ_MAXKEY值;
                  'LONG':YYYYMMDDHHMISSFF3+序列SEQ_MAXKEY值;
                  其他:YYYYMMDDHHMISS+序列SEQ_MAXKEY值;
  **/
  DECLARE RESULTSTR VARCHAR (255) DEFAULT '';
  SET IC_NAME = UPPER(IC_NAME) ;
  IF UPPER(IC_NAME) = 'SHORT' THEN
      SELECT TO_CHAR (CURRENT TIMESTAMP, 'YYMMDD') || LPAD (NEXTVAL FOR SEQ_MAXKEY, 4, '0')
      INTO RESULTSTR 
      FROM SYSIBM.DUAL;
  ELSEIF UPPER(IC_NAME) = 'LONG' THEN
      SELECT TO_CHAR (CURRENT TIMESTAMP, 'YYYYMMDDHHMISSFF3') || LPAD (NEXTVAL FOR SEQ_MAXKEY, 4, '0')
      INTO RESULTSTR
      FROM SYSIBM.DUAL;
  ELSE
      SELECT TO_CHAR (SYSDATE, 'YYYYMMDDHHMISS') || LPAD (NEXTVAL FOR SEQ_MAXKEY, 4, '0')
      INTO RESULTSTR
      FROM SYSIBM.DUAL;
  END IF;
  RETURN RESULTSTR;
END;
DBHelper.execute(
 "insert into CUST_UNION(
 CUST_NO_CORE,CUST_NAME,CUST_TYPE,CERT_TYPE,CERT_ID,BIRTHDAY,
 SEX,DEPOSIT_BALANCE,CUST_STATUS,MANAGER_USER_ID,
 MANAGER_DEPT_ID,INSERT_DEPT,INSERT_USER,INSERT_TIME,REMARK)
 values( f_get_max_key('short'),?,?,?,?,
        f_get_max_key('short'),?,?,?,?,?,?,?
 ,f_get_max_key('long'),?)", 
 CUST_NAME,CUST_TYPE,CERT_TYPE,CERT_ID,BIRTHDAY,SEX,DEPOSIT_BALANCE,CUST_STATUS,MANAGER_USER_ID,MANAGER_DEPT_ID,INSERT_DEPT,INSERT_USER,INSERT_TIME,REMARK);

求大神 解释说说什么情况?

展开全部

  • 写回答

2条回答 默认 最新

  • pengcan52021 2019-05-05 15:07
    关注

    这种情况,看看数据库子段设置的长度,以及类型的最大限度

    评论
  • 子系天下 2019-05-06 03:42
    关注

    参数个数与占位符个数对不上

    评论
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部