Oracle 中的 FireDac 调用函数
FireDac Call Function in Oracle
我的代码:
FDStoredProc1.StoredProcName := 'aaaaa' ;
with FDStoredProc1.Params do begin
Clear;
with Add do begin
ParamType := ptInput;
DataType := ftInteger;
end;
end;
FDStoredProc1.Params[0].Value := StrToint(edit1.Text) ;
edit1.Text := FDStoredProc1.ExecFunc() ;
我在 Oracle 中的代码:
create or replace FUNCTION AAAAA (pn number) RETURN VARCHAR2 AS
BEGIN
update dmnv set thuong = pn ;
commit ;
RETURN '3'
END AAAAA;
运行时没有错误,但在Oracle Server(版本12)中参数为NULL
。所以服务器上的函数是 exec
,参数错误(真正的参数是 edit1.text 中的值)。我在 edit1 中输入了一个数字。
为参数命名。
with Add do begin
Name := 'pn';
ParamType := ptInput;
DataType := ftInteger;
end;
with FDQuery1.SQL do begin
Clear;
Add('begin');
Add(' select aaaaa(8) from dual ;');
Add('end;');
end;
FDQuery1.ExecSQL;
同时得到 error.a 预期的 INTO 子句
我的代码:
FDStoredProc1.StoredProcName := 'aaaaa' ;
with FDStoredProc1.Params do begin
Clear;
with Add do begin
ParamType := ptInput;
DataType := ftInteger;
end;
end;
FDStoredProc1.Params[0].Value := StrToint(edit1.Text) ;
edit1.Text := FDStoredProc1.ExecFunc() ;
我在 Oracle 中的代码:
create or replace FUNCTION AAAAA (pn number) RETURN VARCHAR2 AS
BEGIN
update dmnv set thuong = pn ;
commit ;
RETURN '3'
END AAAAA;
运行时没有错误,但在Oracle Server(版本12)中参数为NULL
。所以服务器上的函数是 exec
,参数错误(真正的参数是 edit1.text 中的值)。我在 edit1 中输入了一个数字。
为参数命名。
with Add do begin
Name := 'pn';
ParamType := ptInput;
DataType := ftInteger;
end;
with FDQuery1.SQL do begin
Clear;
Add('begin');
Add(' select aaaaa(8) from dual ;');
Add('end;');
end;
FDQuery1.ExecSQL;
同时得到 error.a 预期的 INTO 子句