Subject RE: [firebird-support] arithmetic exception, numeric overflow, or string truncation
Author Svein Erling Tysvær
>the stored procedure to for inserting data as:

>create procedure insertorg (
>  in_title varchar(30), 
>  in_level smallint, 
>  in_parent bigint)
>as
>declare variable insertsql varchar(90) = 'insert into organisation (title, 
>        levels, parent) values (:ptitle, :plevel, :pparent)';
>begin  
>        if ((in_level =1 and in_parent is null) 
>            or (in_level >1 and in_parent is not null) ) then  
>       execute statement (insertsql) (ptitle := in_title, plevel := in_level, 
>               pparent := in_parent );
>end ^

>when i try to use the procedure to insert a new record in the table i get the following error message:
>  "arithmetic exception, numeric overflow, or string truncation string right truncation  at procedure 'insertorg' line: 3, col: 1".
>
>
>however if i issue the insert command directly eg: insert into organisation (title, 
>        levels, parent) values ('main dept',1,null);  this works fine.  (There is a before inset trigger on the table that takes care of issuing a value for the primary key).
>
>What in the procedure is causing this error?  I've tried the procedure without the if then statement and still receive the same error.

Either simple or the email adding a few extra spaces: As far as I can see,

insert into organisation (title, 
        levels, parent) values (:ptitle, :plevel, :pparent)

contains 93 characters if spaces are counted and that cannot fit into varchar(90).

HTH,
Set