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.