Page 1 of 1

Stored Procedures statt Tables oder Views

PostPosted: Fri Nov 16, 2012 6:33 pm
by johnit
Können im JVx Framework anstatt Datenbank-Tabellen und Views auf Stored Procedures verwendet werden, die Resultsets zurückliefern?

z.B: CREATE OR REPLACE FUNCTION fkt() RETURNS refcursor AS ...

Wenn ja, wie können die Input-Parameter übergeben werden?

Re: Stored Procedures statt Tables oder Views

PostPosted: Fri Nov 16, 2012 7:14 pm
by Support@SIB
Wir haben ähnliches mit Oracle bereits verwendet. Dort haben wir fast immer eine View erstellt, die auf eine Stored Procedure selektiert. Damit die SPs in Views verwendet werden konnten, mussten Types erstellt werden, z.B.:

Code: Select all
create or replace type TYPE_ZAHLV_RECHNUNGEN as object
(
    TI_ID             VARCHAR2(128),
    IN_ID             NUMBER,
    STATUS_ID         NUMBER(18),
    STATUS            VARCHAR2(40),
    STATUS_KEY        VARCHAR2(3),
)

create or replace type TABLE_ZAHLV_RECHNUNGEN as TABLE OF TYPE_ZAHLV_RECHNUNGEN

Eine Function:

Code: Select all
  FUNCTION GETRECHNUNGEN(pTId IN VARCHAR2, pDateFrom IN DATE, pDateTo IN DATE) RETURN table_zahlv_rechnungen IS
 
    vRechnung table_zahlv_rechnungen := table_zahlv_rechnungen();
   
  BEGIN

    …
   
    RETURN vRechnung;
                                                                           
  END;

View:

Code: Select all
SELECT * FROM TABLE(CAST(getRechnungen(?, ?, ?) AS table_zahlv_rechnungen))


Die Parameter befüllten wir mit Session Parametern, der Oracle Datenbank.

Wir haben die From Clause auch direkt in der Middleware (DBStorage) gesetzt, allerdings ohne parametrisierte Werte. JVx ist in dieser Hinsicht sehr flexibel.