Package im SQL-Developer

wuschel_core

Neuer Benutzer
Beiträge
2
Hallo erstmal !
Also ich will bei meiner Procedur das Gesamtergebnis immer in eine Globale Variable zu speichern aber wie geht das ?

Mein Ansatz :
Code:
create or replace
PACKAGE gesamt AS
  gesamt NUMBER;
END gesamt;

Im Programm :
gesamt.gesamt=gesamt.gesamt+neuen wert;
// Genau das funktioniert nicht

Kann mir jemand helfen ?

Mfg
 
Werbung:

PLSQL_SQL

SQL-Guru
Beiträge
176
Hy,

Globale Variablen existieren soweit ich weis nur in einem Package und nur innerhalb diesem.
Du schreibst von einer Prozedur! Befindet sich diese im Package?

Hier ein Beispiel:

Code:
create or replace PACKAGE gesamt
AS
 
   v_gesamt NUMBER DEFAULT 0; --Globale Variable, da diese im gesamten Package verfügbar ist!!!
 
 
--MyProc erhöht v_gesamt bei jedem Aufruf!
PROCEDURE MyProc
IS
 
BEGIN
 
   v_gesamt := v_gesamt + 1;
 
END MyProc;
 
 
END gesamt;


Hilft das weiter?

Lg
 

wuschel_core

Neuer Benutzer
Beiträge
2
Ne nicht wirklich da meine Procedur nicht in der Package ist !
Meine Procedur ruft sich selbst iterativ immer wieder auf und jede Aufruf soll mit dem neuen Wert arbeiten können , deswegen brauch ich die globale variable



Gibt es auser dem Package keine Möglichkeit ?
Hab gehört manche erstellen eine eigene Table wo sie den Wert immer wieder updaten
oder gehört hab ich auch etwas von einer Table dual die genau für diesen Zweck schon extisitiert , aber auf die kann ja nicht zugegriffen werden

Glg
 
Werbung:

PLSQL_SQL

SQL-Guru
Beiträge
176
Ja dann würde ich dies über eine Tabelle lösen, eine andere Möglichkeit ist mir nicht bekannt.

Außerdem haben Variablen immer nur zur Laufzeit den zugewiesenen Wert inne. Diese Tabelle "DUAL" ist für z.B: Du willst eine VIEW bauen, welche lediglich einen Return-Wert von einer Function beinhaltet oder hardcodierte Werte, dann kannst deu DUAL nehmen.

Mach doch mal "Select * from Dual", dann kommt nur eine Spalte mit nur einem Datensatz mit dem Wert "X" heraus.

Lg
 
Oben