CREATE OR REPLACE FUNCTION dbcustadm.IsTdPhoneNo(v_phoneno IN varchar)
RETURN NUMBER
IS
--v_temp1 NUMBER;
v_temp2 NUMBER;
BEGIN
  -- BEGIN 
   --SELECT DECODE(substr(v_phoneno,1,3),'157',0,1) INTO v_temp1
  -- FROM dual;
  -- END;
  -- IF(v_temp1=1)
  -- THEN RETURN 0;
  -- ELSIF(v_temp1=0)
   --THEN
  
   SELECT DECODE(count(*),0,1,0) INTO v_temp2
   FROM  wphonesaleopr a,dcustmsg b   
   WHERE 
   a.id_no=b.id_no 
   and b.phone_no=v_phoneno
   and a.back_flag in ('0','2')
   and a.op_code in('7898','7981');
  
  -- END IF;
   IF(v_temp2=0)
  THEN RETURN 1;
  ELSIF(v_temp2=1)
  THEN RETURN 0;
  END IF;
END; 
这个执行Select IsTdPhoneNo('15714515978') from dual; 会返回0 可是按理说应该返回1 
如果将上面的b.phone_no=v_phoneno 改成b.phone_no=‘15714515978’就会返回1 是我想要的结果初步怀疑b.phone_no=v_phoneno  这个赋值有问题 但是我写成b.phone_no=to_char(v_phoneno) 还是返回0 只有写死的时候才能返回1  请问一下 这是因为什么dcustmsg表的phone_no 字段是字符型的万分感激!