Oracle按字符串变量

时间:2016-05-03 17:32:57

标签: oracle variables

问题是关于按字符串变量搜索查询。

declare
phone varchar(15):='+77071414714';
cnt number:=0;
begin
   SELECT COUNT(*) into cnt   FROM CUSTOMERS WHERE (TELNUMBER=phone OR TELNUMBER LIKE phone);
   dbms_output.put_line(cnt);
end;

此代码打印0.而

declare
    cnt number:=0;
begin
   SELECT COUNT(*) into cnt   FROM CUSTOMERS WHERE TELNUMBER='+77071414714';
   dbms_output.put_line(cnt);
end;

打印5。 如何制作第一个代码来打印5?

2 个答案:

答案 0 :(得分:0)

试试这个

declare phone varchar(30) DEFAULT '+77071414714';
declare cnt number:=0;
begin
   SELECT COUNT(*) into cnt   FROM CUSTOMERS WHERE TELNUMBER=phone; 
   dbms_output.put_line(cnt);
end;

答案 1 :(得分:0)

问题解决了。问题出在列TELNUMBER的数据类型中,它是CHAR(15)。通过将其更改为VARCHAR(15),它就可以解决了。感谢mathguy。