Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak sprawdzić czy zmienna globalna istnieje
Forum PHP.pl > Forum > Bazy danych > Oracle
stevan
Mam pytanko, jak w sql-u sprawdzić czy zmienna istnieje, nie chodzi mi o sprawdzenie czy zmienna ma wartość NULL, tylko czy wogóle istnieje... Gdy wpiszę zapytanie:
IF :GLOBAL.ZMIENNA1 IS NUL
........
....
ELSE
.....
END IF;

a zmienna globalna 'zmienna1' nie istnieje pojawia się błąd brak danych. Znalazłem że w PHP jest funkcja isset, ale czy jest jej odpowiednik w sql-u?questionmark.gif

Z góry dziękuję za pomoc
IP!
Nie do końca potrafię zrozumieć, co chcesz osiągnąć. W PHP isset() może służyć do wielu przydatny rzeczy, np. sprawdzenia czy w URLu przekazano daną zmienną. W Oracle takich rzeczy się nie robi. Jedyne zmienne o charakterze globalnym w PL/SQL to te z pakietów. W pakiecie albo zmienna występuje (niezależnie od tego, czy w sekcji inicjalizacji pakietu lub innym miejscu przypisano jej wartość), albo nie. Napisz co chcesz osiągnąć (jakiś kontekst).
stevan
Przyjmijmy że mamy główne menu (formularz) w którym mamy przyciski uruchamiające odpowiednie formularze np A,B,C.
Z poziomu menu owe formularze są uruchamiane bez parametrów(czyt. bez przekazywania zmiennych globalnych). Ale na przykład uruchamiam formularz B z którego następnie wywołuje formularz A przekazując do niego za pomocą zmiennych globalnych odpowiednie parametry. I tu jest mój problem jeśli w formularzu A zastosuje polecenie używające owej zmiennej globalnej to w przypadku zainicjowania go przez formularz B wszystko jest ok, natomiast w przypadku inicjacji formularza A z poziomu menu (gdzie nie była definiowana żadna zmienna globalna i brak jest parametrów) pojawia się błąd związany z brakiem owej zmiennej globalnej. Póki co jedynym rozwiązaniem jest chyba zainicjowanie wszystkich zmiennych globalnych na samym początku, ale wolałbym tego uniknąć.. Myślę że teraz już wyjaśniłem dokładnie mój problem i może ktoś wie jak mi pomóc. Z góry dziękuję... smile.gif
IP!
Poczytaj o NAME_IN oraz DEFAULT_VALUE.

stevan
No nie bardzo widzę tu rozwiązanie gdyż z tego co popatrzyłem to polecenie NAME_IN daje dostęp do innego bloku danych ale w ramach tego samego formularza, a DEFAULT_VALUE to ustawienie wrtości domyślnej, i gdzie tu rozwiązanie?questionmark.gif Nie bardzo wiem na czym polega Twoje rozumowanie możesz mi bliżej wyjaśnić jak chciałeś wykorzystać te polecenia?? Będę wdzieczny... Pozdrawiam

Chyba już kumam jak to chciałeś zrobić i póki co działa smile.gif. Oczywiście wykorzystuje DEFAULT_VALUE bo NAME_IN nie bardzo wiem jak wykorzystać w tej sytuacji. Ale i tak dzięki za wskazówkę pozdrawiam..
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.