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.