Hi.
Hm, is there really nobody out there interessted in this problem?
I'll just try it a second time:

I want to call a dbproc from within a trigger and use the result later on.
Simple testcase:

create table A (
  a_id     varchar(32) primary key,
  a_name   varchar(100),
  a_b_name varchar(100)
)
//
create table B (
  b_id     varchar(32) primary key,
  b_name   varchar(100)
)
//
create table A_B(
  ab_a_id  varchar(32) references A(a_id),
  ab_b_id  varchar(32) references B(b_id),
  primary key(ab_a_id, ab_b_id)
)
//
create dbproc GETNAME( in aid varchar(32), out bname varchar(100))  as
begin
   select b_name from test.B, test.A_B
   where A_B.ab_a_id = :aid
   and A_B.ab_b_id = B.b_id
   order by b_name;
   fetch first into :bname;
end;

This works fine so far; now for the trigger:
//
create trigger AB_INSERT for A_B after insert execute (
var bname varchar(100);
begin
  call GETNAME(:NEW.ab_a_id, :bname);
  update a set a_b_name = :bname where a_id = :NEW.ab_a_id;
end;
)

trying to create this gives
"Integrity constraint violation; -8006 POS(1) Data types must be
compatible."

It seems that the problem is with the IN-Parameter, but i don't
understand why and how to make it work.
Any ideas anyone?

btw:
this one works:
create trigger AB_INSERT for A_B after insert execute (
var bname varchar(100);
begin
   select b_name from test.B, test.A_B
   where A_B.ab_a_id = :NEW.ab_a_id
   and A_B.ab_b_id = B.b_id
   order by b_name;
   fetch first into :bname;

  update a set a_b_name = :bname where a_id = :NEW.ab_a_id;
end;
)



thanks

frank


-- (-) Frank Peters (-) SIGNAL 7 Gesellschaft f�r Informationstechnologie mbH (-) Br�der-Knau�-Str. 79 - 64285 Darmstadt, (-) Tel: 06151 665403, Fax: 06151 665373 (-) [EMAIL PROTECTED], www.signal7.de


_______________________________________________ sapdb.general mailing list [EMAIL PROTECTED] http://listserv.sap.com/mailman/listinfo/sapdb.general

Reply via email to