ORA-06502 PL/SQL character string buffer too small

From: Ren? M?hle <renemuehle_at_gmx.de>
Date: 24 Aug 2004 04:06:34 -0700
Message-ID: <2943356f.0408240306.5c3a18b6_at_posting.google.com>



I have a psp script with a procedure just to run an update on one table.

The Problem occurs when I try to compile this script with pspload: ORA-20006: "frsys_updatereport.psp": compilation failed with the following errors.
ORA-06502: PL/SQL: numeric or value error: character string buffer too small

Here the whole script:



<%_at_ page language="PL/SQL" %>
<%_at_ plsql procedure="frsys_updatereport" %>
<%_at_ plsql parameter="p_faultnum" type="comp.faulttab.faultnum%TYPE"%>
<%_at_ plsql parameter="p_perssurname"

type="comp.faulttab.perssurname%TYPE"%>
<%_at_ plsql parameter="p_persinitials"
type="comp.faulttab.persinitials%TYPE"%>
<%_at_ plsql parameter="p_perstitle"

type="comp.faulttab.perstitle%TYPE"%>
<%_at_ plsql parameter="p_persemail"

type="comp.faulttab.persemail%TYPE"%>
<%_at_ plsql parameter="p_persofficetel"
type="comp.faulttab.persofficetel%TYPE"%>
<%_at_ plsql parameter="p_perscontacttel"
type="comp.faulttab.perscontacttel%TYPE"%>
<%_at_ plsql parameter="p_persbuilding"
type="comp.faulttab.persbuilding%TYPE"%>
<%_at_ plsql parameter="p_persfloor"

type="comp.faulttab.persfloor%TYPE"%>
<%_at_ plsql parameter="p_persroom" type="comp.faulttab.persroom%TYPE"%>
<%_at_ plsql parameter="p_perskeysavailableat"
type="comp.faulttab.perskeysavailableat%TYPE"%>
<%_at_ plsql parameter="p_faultcategory"
type="comp.faulttab.faultcategory%TYPE"%>
<%_at_ plsql parameter="p_faultdescription"
type="comp.faulttab.faultdescription%TYPE"%>
<%_at_ plsql parameter="p_faultassetnumber"
type="comp.faulttab.faultassetnumber%TYPE"%>
<%_at_ plsql parameter="signedoff" type="comp.faulttab.signedoff%TYPE"%>
<%
UPDATE comp.faulttab
SET comp.faulttab.perssurname=p_perssurname,
comp.faulttab.persinitials=p_persinitials,
comp.faulttab.perstitle=p_perstitle,
comp.faulttab.persemail=p_persemail,
comp.faulttab.persofficetel=p_persofficetel,
comp.faulttab.perscontacttel=p_perscontacttel,
comp.faulttab.persbuilding=p_persbuilding,
comp.faulttab.persfloor=p_persfloor,
comp.faulttab.persroom=p_persroom,
comp.faulttab.perskeysavailableat=p_perskeysavailableat,
comp.faulttab.faultcategory=p_faultcategory,
comp.faulttab.faultdescription=p_faultdescription,
comp.faulttab.faultassetnumber=p_faultassetnumber,
comp.faulttab.signedoff=p_signedoff;

WHERE comp.faulttab.faultnum = p_faultnum; %>

If I use this kind of script with just 3 or 4 parameters everthing works fine. But as soon as the number of parameters get a bit bigger I get this "character string buffer too small".

May the table-definition is usefull for a solution:



FAULTNUM NOT NULL NUMBER(6)
FAULTID NOT NULL VARCHAR2(15)
PERSNUM NOT NULL NUMBER(9)
PERSSURNAME NOT NULL VARCHAR2(30)
PERSINITIALS NOT NULL VARCHAR2(6)
PERSTITLE VARCHAR2(4)
PERSEMAIL VARCHAR2(80)
PERSOFFICETEL VARCHAR2(80)
PERSCONTACTTEL VARCHAR2(80)
PERSBUILDING NOT NULL NUMBER(4)
PERSFLOOR NOT NULL NUMBER(3)
PERSROOM NOT NULL VARCHAR2(7)
PERSKEYSAVAILABLEAT VARCHAR2(100)
FAULTCATEGORY NOT NULL NUMBER(5)
FAULTDESCRIPTION VARCHAR2(500)
FAULTASSETNUMBER NUMBER(6)
TECHRESP NUMBER(9)
DATEREPORTED NOT NULL DATE
DATEUPDATED DATE
DATECOMPLETED DATE
SIGNEDOFF NUMBER(9)
TECHCOMMENTS VARCHAR2(500)
SOLUTIONDESCRIPTION VARCHAR2(500)

Any idea or sugestion where I made a fault? Received on Tue Aug 24 2004 - 13:06:34 CEST

Original text of this message