This is my stored procedure in Oracle:
CREATE OR REPLACE PROCEDURE execute_cproc ( callnum IN VARCHAR2
, RESULT OUT VARCHAR2)
AS
vara_val NUMBER;
varb_val NUMBER;
BEGIN
SELECT a_val, b_val
INTO vara_val, varb_val
FROM data_table
WHERE callnum LIKE numberpattern || '%';
END;
If CALLNUM
is 03354123 then I am getting 2 results:
03354123 like 033%
03354123 like 03354%
Both are true so I'm getting 2 results.
How to make procedure find the longest matching only, i.e. 03354123 like 03354%
?
Table :
Table Name : DATA_TABLE
Columns:
NumberPattern (varchar2) : 033, 03354
a_val ( integer ) : 1, 2
b_val ( integer ) : 1, 2