This website uses cookies for visitor traffic analysis. By using the website, you agree with storing the cookies on your computer.More information

Stored Procedures statt Tables oder Views

Allgemeine Fragen zur Entwicklung von und mit JVx.

Stored Procedures statt Tables oder Views

Postby johnit » Fri Nov 16, 2012 6:33 pm

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?
johnit
 
Posts: 45
Joined: Fri Nov 16, 2012 5:58 pm

Re: Stored Procedures statt Tables oder Views

Postby Support@SIB » Fri Nov 16, 2012 7:14 pm

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.
User avatar
Support@SIB
 
Posts: 353
Joined: Mon Sep 28, 2009 1:56 pm


Return to Development (DE)