函数:
create or replace function getVN(operid in varchar2) return varchar2 is
vn varchar2(200);
temp varchar2(200);
begin
SELECT OPERNAME INTO temp FROM PTOPER WHERE OPERID=operid;
vn := temp;
EXCEPTION
WHEN NO_DATA_FOUND THEN
vn:='数据不存在';
return vn;
end getVN;
调用部分:
declare vn varchar2(200);
begin
vn:=gwk.getvn('9999');
dbms_output.put_line(vn);
end;
老是提示说: ORA-01422: 实际返回的行数超出请求的行数,实际上是这个数值就一条记录。
create or replace function getVN(operid in varchar2) return varchar2 is
vn varchar2(200);
temp varchar2(200);
begin
SELECT OPERNAME INTO temp FROM PTOPER WHERE OPERID=operid;
vn := temp;
EXCEPTION
WHEN NO_DATA_FOUND THEN
vn:='数据不存在';
return vn;
end getVN;
调用部分:
declare vn varchar2(200);
begin
vn:=gwk.getvn('9999');
dbms_output.put_line(vn);
end;
老是提示说: ORA-01422: 实际返回的行数超出请求的行数,实际上是这个数值就一条记录。
解决方案 »
- 100分,急!!返回多条数据拼接成一条记录的存储过程!!
- 哪位大哥帮我看看这段代码哪有错误啊?
- 请教TRIGGER中这个0.00694到底是什么意思 ?
- 为何触发器有时报错,有时不报错?很急,谢谢!
- 请教一个变态问题--返回动态语句产生的结果集
- 有没有用过oracle BI的,请教一下
- 数据库中所有对象一瞬间全部失效
- 关于建表的问题。谢谢!!!!(帮帮忙!谢谢!!!在线等待。)
- 关于动态sql的授权
- oracle9i中如何启动enterprise manager 登陆到managerment server上?
- 更改表空间大小错误。。。
- 为何oracle commit 时会报ORA-00018: 超出最大会话数错误!
可能返回多条记录了
vn varchar2(200);
temp varchar2(200);
begin
SELECT OPERNAME INTO temp FROM PTOPER WHERE OPERID=operid;
vn := temp;
RETURN vn; --这里要加个RETURN
EXCEPTION
WHEN NO_DATA_FOUND THEN
vn:='数据不存在';
return vn;
end getVN;
果真只有一条记录呵呵create or replace function getVN(operid in varchar2) return varchar2 is
vn varchar2(200);
temp varchar2(200);
begin
SELECT OPERNAME INTO temp FROM PTOPER WHERE OPERID=operid;
vn := temp;
return vn;
EXCEPTION
WHEN NO_DATA_FOUND THEN
vn:='数据不存在';
end getVN;