存储过程模式匹配

时间:2015-10-20 10:12:35

标签: sql oracle stored-procedures

我有一个表名为DATA_TABLE

我的存储过程:

create or replace

PROCEDURE EXECUTE_CPROC    
( 
  CALLNUM IN VARCHAR2, 
  RESULT OUT VARCHAR2
)
AS    
vara_val NUMBER(1) ;    
varb_val NUMBER(1) ;   
BEGIN

     select a_val,b_val into vara_val, varb_val 
     from DATA_TABLE 
     where NumberPattern  like CALLNUM ||'%' ;

END 

============

  • 现在,如果CALLNUM为0335412,那么在DATA_TABLENumberPattern中,03354应匹配。

  • 如果CALLNUM是033111,那么在DATA_TABLENumberPattern 033应该匹配。

因此需要修改用SP编写的查询。

============

表名:DATA_TABLE

列:

  1. NumberPattern(varchar2):033,03354

  2. a_val(整数):1,2

  3. b_val(整数):1,2

1 个答案:

答案 0 :(得分:0)

您的查询应该是

 select a_val, b_val
   into vara_val, varb_val 
   from DATA_TABLE 
   where CALLNUM LIKE NumberPattern || '%';

您在查询中反对CALLNUMNumberPattern

祝你好运。