如下函数,用来查出名字相似于某字符串
create or replace function f_GetUsers(key in varchar2, p_cursor out pkg_test.myrctype) return number is Result number; begin open p_cursor for SELECT * FROM Accounts_Users where TrueName like '%'+key+'%' order by UserID; Result := 0; return(Result); end; /
编译成功,测试的时候也没有发现错误,但是到了真正的生产环境的时候,
报错误 ORA-01722: 无效数字 很莫名
后来查阅网络
发现ORACLE 的字符串连接必须用||符号的,然后修改测试 如下
create or replace function f_GetUsers(varkey in varchar2, p_cursor out pkg_test.myrctype) return number is Result number; begin open p_cursor for SELECT * FROM Accounts_Users where TrueName like '%'||varkey||'%' order by UserID; Result := 0; return(Result); end;
编译通过
测试数据,也没有问题