Here's one option, which splits par into rows (that contain numeric values only) and joins that subquery results with a table's num column (with the to_char function applied to it, to avoid implicit datatype conversion and false positive results).
Sample data:
SQL> WITH
2 a (num)
3 AS
4 (SELECT 12312312312 FROM DUAL
5 UNION ALL
6 SELECT 1231 FROM DUAL
7 UNION ALL
8 SELECT 85937 FROM DUAL),
9 k (par)
10 AS
11 (SELECT '#NUM=12312312312#NA=45453#085937' FROM DUAL
12 UNION ALL
13 SELECT '#XY=12319' FROM DUAL
14 UNION ALL
15 SELECT '#FM=1185937#NUM=1231#12310' FROM DUAL)
Query:
16 SELECT x.par, a.num
17 FROM a
18 JOIN (
19 SELECT PAR, REGEXP_SUBSTR (par,
20 '\d+',
21 1,
22 COLUMN_VALUE) kpar
23 FROM k
24 CROSS JOIN
25 TABLE (
26 CAST (
27 MULTISET ( SELECT LEVEL
28 FROM DUAL
29 CONNECT BY LEVEL <= REGEXP_COUNT (par, '=') + 1)
30 AS SYS.odcinumberlist))
31 ) x
32 ON TO_CHAR (a.num) = x.kpar;
PAR NUM
-------------------------------- ----------------
#NUM=12312312312#NA=45453#085937 12312312312
#FM=1185937#NUM=1231#12310 1231
SQL>
P.S. You said
I dont have grant to use PL/SQL
There's no such grant. You might not be granted to create PL/SQL named program units (functions, procedures, triggers, packages), but you certainly can create an anonymous PL/SQL block.
LIKEcondition you are looking for is probablyk.par like '%#NUM=' || a.num || '#%'.'#' || k.par || '#' like '%=' || a.num || '#%' or k.par || '#' like '%#' || a.num || '#%'