当前位置:首页 > 数据库 > Oracle管理

一个容易的报错,麻烦看看

优良自学吧提供一个容易的报错,麻烦看看,一个简单的报错,麻烦看看函数如下,提示报错行 是: return str1;我实在搞不懂,麻烦指教一下 create or replace function qdn_lks_fi( 

一个简单的报错,麻烦看看
函数如下,提示报错行 是: return str1;我实在搞不懂,麻烦指教一下
create or replace function qdn_lks_fi( str1 varchar2,str2 varchar2) return varchar2
is
v1 varchar(1);
v2 varchar(2);
v3 varchar(3);
str3 varchar2(5);
 begin
    str3:='';
        v1:=substr(str1,1,1);
        v2:=substr(str1,2,1);
        v3:=substr(str1,3,1);
          if instr(str2,v1)>0 and instr(str2,v2)>0 and instr(str2,v3)>0 then
              return str1;
           
   else
  return str3;

    end if;
   end;



报错信息:
Compilation errors for FUNCTION QUERY.QDN_LKS_FI

Error: PLS-00103: Encountered the symbol "" when expecting one of the following:
       
          ( begin case declare exit for goto if loop mod null pragma
          raise return select update while with <an identifier>
          <a double-quoted delimited-identifier> <a bind variable> <<
          continue close current delete fetch lock insert open rollback
          savepoint set sql execute commit forall merge pipe purge
Line: 16
Text:   return str3;

------解决思路----------------------
create or replace function qdn_lks_fi( str1 varchar2,str2 varchar2) return varchar2
is
v1 varchar(1);
v2 varchar(2);
v3 varchar(3);
str3 varchar2(5);
 begin
    str3 :='';
        v1 :=substr(str1,1,1);
        v2 :=substr(str1,2,1);
        v3 :=substr(str1,3,1);
          if instr(str2,v1)>0 and instr(str2,v2)>0 and instr(str2,v3)>0 then
              return str1;
           
   else
  return str3;

    end if;
   end;

试试看呢
------解决思路----------------------
在命令行下,创建这个存储过程,用什么字符作为结尾呢? 
------解决思路----------------------
有没有测试数据呢
------解决思路----------------------

create or replace function qdn_lks_fi( str1 in out varchar2,str2 varchar2) return varchar2
is
v1 varchar(1);
v2 varchar(2);
v3 varchar(3);
str3 varchar2(5);
 begin
    str3 :='';
        v1 :=substr(str1,1,1);
        v2 :=substr(str1,2,1);
        v3 :=substr(str1,3,1);
          if instr(str2,v1)>0 and instr(str2,v2)>0 and instr(str2,v3)>0 then
              return str1;
            
   else
  return str3;
 
    end if;
   end;

这样试试。
------解决思路----------------------
return str3;前面是两个全角的空格,改成半角的空格。

(本文来自互联网,不代表搜站(http://www.ylzx8.cn/)的观点和立场)
本站所有内容来自互联网,若本站收录的信息无意侵犯了贵司版权,请给我们来信(ylzx8cn@163.com),我们会及时处理和回复,谢谢