Variabler kræver PL/SQL; det fremgår ikke klart af dit spørgsmål, om din kode er en ordentlig PL/SQL-blok. I PL/SQL udfyldes variabler fra forespørgsler, der bruger INTO-syntaksen i stedet for den tildelingssyntaks, du bruger.
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;
Selvom du ikke behøver at bruge forespørgselssyntaksen. Dette er gyldigt, og bedre praksis:
declare
n pls_integer;
begin
n := dbms_random.value(1,10);
end;