Delphi:如何将记录表作为参数传递给 Oracle 存储过程

问题描述 投票:0回答:1

我有一个 Oracle 存储过程,接受记录表作为其输入参数:

TYPE JREC is record
(
CUSTOMERID COMPANYS.COMPANYID%TYPE ,
JOBID JOBS.JOBID%TYPE,    
-----   
);

TYPE TJOBLIST IS TABLE OF JREC  INDEX BY BINARY_INTEGER;    

PROCEDURE UPDATEJOBS(JRECS IN TJOBLIST )
IS
 BEGIN
     FOR i IN JRECS .FIRST .. JRECS .LAST LOOP
-----PROCEDURE BODY---

请告诉我如何从 Delphi 调用此过程。我正在使用 RAD Studio 2007

谢谢,

普拉迪普

delphi delphi-2007
1个回答
0
投票

您可以像这样调用:

DECLARE
  L_TABLE TJOBLIST ;
  NCOUNT PLS_INTEGER;
BEGIN

  L_TABLE := TJOBLIST(); --Create table
  L_TABLE.extend; --Add an element
  NCOUNT := L_TABLE.COUNT();
  L_TABLE(NCOUNT).CUSTOMERID := 1;
  L_TABLE(NCOUNT).JOBID := 10;
  L_TABLE.extend; --Add another element
  NCOUNT := L_TABLE.COUNT();
  L_TABLE(NCOUNT).CUSTOMERID := 2;
  L_TABLE(NCOUNT).JOBID := 20;
  L_TABLE.extend; --Add another element
  NCOUNT := L_TABLE.COUNT();
  L_TABLE(NCOUNT).CUSTOMERID := 3;
  L_TABLE(NCOUNT).JOBID  := 30;
  --.. and so on

  --Call the procedure and pass the table as a parameter
  UPDATEJOBS(L_TABLE);
END;
© www.soinside.com 2019 - 2024. All rights reserved.