Witam Serdecznie,
Mam pewien problem ze zleceniem dla klienta.
Klient zarzyczyl sobie aby informacje wyciagane z bazy danych były "wzbogacone" o nazwe procesu który te dane do bazy wkladal. O ile jego numer posiadam, o tyle nazwe, musze wklepywac recznie.
Wiec musze zmienic moje zapytanie, i wyswietlac rekordy jeden po drugim umieszczajac dodatkowo nazwy.
Jako że wyników do wyświetlenia jest około 16, a zapytanie stosunkowo długie z zagnieżdżonymi selectami, to nie oplaca mi się kopiować tego 16 razy wy wyswietlic linijke po linijce. Chcialam napisać pętlę która bedzie to wykonywac.
moj pomysl jest taki aby w skrypbie ksh ( linux) zadeklarowac sobie tablice ( w rzeczywistosci potrzebuje 3)
set -A Tab1 nazwa1 nazwa2 nazwa3 nazwa4
set -A opt1 1 3 5 6
set -A opt2 3 7 5 3
Jest tak dlatego, że to jaki proces wlozyl pewne dane do bazy, moge znalezc, na podstaiwe wartosci w odpowiedniej kolumnie
i teraz moj pomys l byl taki że po połaczeniu sie do bazy
sqlplus .... blablabla
SET HEADS OFF
BEGIN
FOR iterator IN 0 ..3 LOOP
SELECT '${TAB1[iterator]}' ,PROCES_ID, ILE_KO , ILE_OK, CZAS
FROM TABELA_1
WHERE DETALE LIKE '%cos_tam%wartosc=${opt1[iterator]}%wartosc2=${opt2[iterator]}%'
END LOOP;
END;
I problem jest taki, że to nie dziala...
Dostaje komunikat zwrotny Iterator bad number i jako linijke w której to wystepuje, to linia polaczenia do bazy...
Jeżeli zamiast petli, wpisze tak samo zastepujac iterator numerem indexu, to dane wysweitlaja sie prawidlowo.
Jeszcze co do pierwszej kolumny, to jest wlasnie ta wartosc dodana, w wersji ktora mamy bazy konkatenacja poprzez || 'cost tam' || nie dziala, tylko w taki sposob jaki podalam .
Pozdrawiam