背景
今天第一次写oracle的sql函数,报了一堆错,因此记录一下。一开始写完函数,调用的方式是call func_getResult('123'),一直报错ora-06576:不是有效的函数或过程名。这是因为我们在写sql函数,不可以那么调用。那是调用存储过程的方式。
正确的调用方式应该是select func_getResult(id) from user where id = '123'
当我们正确调用函数的时候有可能会报错ora-01422,这种情况一般结果都加rownum=1就可以解决了,具体看下面代码演示。
sql函数代码演示
create or replace function func_getResult(cardNo in varchar2)
return varchar2 is
Result varchar2(200);
begin
Result := '';
--注意这查询的phone要放到Result里面,否则会报编译错误
select phone into Result
from user
where id = cardNo;
--一定最后要加rownum=1,不然会报错ora-01422
and rownum=1;
return(Result);
end func_getResult;
如果愿意加微信群一块讨论学习研究技术:Day9884125