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