oracle - odejmowanie....?

0

witam,

potrzebuje napisać skrypt w pl/sql do losowania liczb.... problem w tym... ze wywala mi dość głupi błąd... którego nie potrafię usunąć. nie jestem wybitny, ani nawet dobry z tego, jest to dla mnie nowość.... więc bądźcie delikatni:

set serveroutput on
declare
    type type_tab
    is table of pls_integer
    index by pls_integer;

    tab_liczb type_tab;
    idx pls_integer;
    pilka pls_integer;
    licznik pls_integer;
    i pls_integer;
    max pls_integer;
    j pls_integer;

    -- zmienna tablicy
    v_wylosowane wylosowane%ROWTYPE;
begin
    for idx in 1 .. 49 -- wypelniamy tablice
    loop

    tab_liczb(idx) := idx;
    --dbms_output.put_line(tab_liczb(idx) || ' ');
    end loop;

    max := 50;

    for i in 1 .. 6
    loop
    licznik := max - i;
     -- pilnujemy przedzialu
    pilka := dbms_random.value(1, licznik); -- losujemy

    update wylosowane
    set v_wylosowane.liczby = tab_liczby(pilka)
    where id = i;
    delete(pilka)
    end loop;

exception
    when others
    then

    dbms_output.put_line(sqlerrm);

end;
/ 

a to jest błąd jaki mi wypluwa

SQL> @losowanie.sql
        licznik := max - i;
                           *
ERROR at line 28:
ORA-06550: line 28, column 17:
PLS-00103: Encountered the symbol "-" when expecting one of the following:
(
ORA-06550: line 35, column 9:
PLS-00103: Encountered the symbol "PILKA" when expecting one of the following:
( select

jakieś sugestie o co mu chodzi?

p.s. w teorii ma to wylosować liczbę z danego przedziału wstawić do tabeli, problem polega na tym, że nie może losować dwa razy tej samej liczby.

0

okej, dobra... poprawiłem te błędy... dzięki temu, że tutaj podświetlana jest składnia, to widziałem swój błąd. chodziło o to, że zmienna max jest w sumie poleceniem czy jakimś innym słowem kluczowym....

teraz męczę się z inny bykami, które tam się znajdują

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0