Proměnné vyžadují PL/SQL; z vaší otázky není jasné, zda je váš kód správným blokem PL/SQL. V PL/SQL se proměnné vyplňují z dotazů pomocí syntaxe INTO, nikoli pomocí syntaxe přiřazení, kterou používáte.
declare
txt varchar2(128);
n pls_integer;
begin
-- this is how to assign a literal
txt := 'your message here';
-- how to assign the output from a query
SELECT dbms_random.value(1,10) num
into n
FROM dual;
end;
Nemusíte však používat syntaxi dotazu. Toto je platné a lepší praxe:
declare
n pls_integer;
begin
n := dbms_random.value(1,10);
end;