老兄,存储过程是不带RETURN的,函数才带RETURN,去翻一下PL/SQL书吧
解决方案 »
- oracle stream在多源复制中支持多少个数据源
- 磁盘坏,数据库服务无法启动,如何解决?急!急!急!!!!
- 写了个SQL自动生成工具,以提高开发数据库的效率,有兴趣的朋友欢迎来使用
- 如何远程建立数据库 菜鸟向大哥们求救了!急啊!
- 一个很急,但比较简单的问题!
- 循环插入是为什么会插入空行?
- 急~~~~精通query进来!又是一个 query问题 (这个有难度!)
- 请教,oracle网上下载的版本与企业里用的正版有什么区别?
- 如何配置数据库服务器,使数据库服务器可以支持客户端访问?
- oracle插入数据
- VC+ADO+DNS+oracle调用存储过程时返回字符串参数为什么总是为空.
- 编译错误
into name, id
from emp c
where c.id = empid
你那也就存储过程 靠 让我伤心
CREATE OR REPLACE PROCEDURE APP.PLQUERY (empid varchar2)
IS
TYPE emptype IS RECORD
(
name emp.name%TYPE,
id emp.id%TYPE
);
TYPE EMP_CURSOR IS REF CURSOR RETURN emp%ROWTYPE;
vemp_cur EMP_CURSOR;
vemp_rec emptype;
BEGIN
OPEN vemp_cur FOR SELECT * FROM emp;
LOOP
FETCH vemp_cur INTO vemp_rec;
EXIT WHEN vemp_cur%NOTFOUND;
DBMS_OUTPUT.PUT(vemp_rec.name||' '||vemp_rec.id||' ');
END LOOP;
CLOSE vemp_cur;
END;
/在java程序中这样写的:
CallableStatement proc = conn.prepareCall("{ call app.PLQUERY(?) }");
proc.setString(1,"77");
// there is a resultSetCursor
proc.registerOutParameter(1,OracleTypes.CURSOR);
proc.execute(); rs = (ResultSet)stmt.getObject(1); 为什么我的程序取不到rs 的值,中间过程会THROW exception 啊 !
建义使用包:
create package test_age
as
type mycursor is ref cursor;
end;
/
CREATE OR REPLACE PROCEDURE APP.PLQUERY (empid varchar2,p_rc out test_age.mycursor)
ISBEGIN
open p_rc for 'select c.name, c.id
from emp c
where c.id = '||empid;
END;
/