函数如下,提示报错行 是: 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;前面是两个全角的空格,改成半角的空格。