How to declare reserved words as variables in Oracle PL/SQL?
NUM is not a reserved word.

The best way is not to use reserved words.

If you insist on using them, you can put them between quotation marks. This does not work:

SET SERVEROUTPUT ON
declare
  begin number;
begin
   begin := 10;
   DBMS_OUTPUT.put_line('The value of begin ' || begin); 
end;
/


This does:

SET SERVEROUTPUT ON
declare
  "begin" number;
begin
   "begin" := 10;
   DBMS_OUTPUT.put_line('The value of begin ' || "begin"); 
end;
/


Quotation marks also make the variable name case-sensitive. "begin", "Begin" and "BEGIN" are different variables.