[Zope] RE: Calling a stored function with the Oracle DA
Jim Cain
jec@mgmt-inc.com
Thu, 13 Jan 2000 15:37:50 -0500 (EST)
On Wed, 12 Jan 2000, Nemeth Miklos wrote:
> > From: Jim Cain
> >
> >
> > All,
> >
> > The "begin procedure (x, y, ..); end;" syntax works for procedures okay,
> > but how do I call a function? The typical quick & dirty way in sqlplus is
> >
> > variable x number -- or whatever
> > begin
> > :x := function (a, b, ...);
> > end;
> >
> > This function actually does updating, so I can't use the pragmas to make
> > it acceptable in a select.
> >
> >
> "begin :x := function(:a,:b); end;"
>
> where :x, :a and :b are SQL bind variables. This is OCI's syntax. I
> suppose DCOracle accepts this syntax.
> You may use literals instead of :a or :b if they are IN arguments.
Yes I tried that:
begin
:new_id := contact_maint.insert_person
(
<dtml-sqlvar first_name type=string>,
<dtml-sqlvar middle_name type=nb optional>,
<dtml-sqlvar maiden_name type=nb optional>,
<dtml-sqlvar last_name type=string>
);
end;
But I get an OCI error: "ORA-01008: not all variables bound". How do I
declare new_id?