oracle函数使用注意事项

238 阅读1分钟

背景

   今天第一次写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