Subject | RE: [firebird-support] arithmetic exception, numeric overflow, or string truncation |
---|---|
Author | Svein Erling Tysvær |
Post date | 2013-12-20T09:06:53Z |
>the stored procedure to for inserting data as:Either simple or the email adding a few extra spaces: As far as I can see,
>
>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.
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