oracle 存储过程 stored procedure 查询一条记录或多条记录
2010-06-04 18:30
363 查看
参考资料:http://reallyafei.javaeye.com/blog/391097
创建基本表
-- Create table
create table USER_INFORMATION
(
P_ID NUMBER,
USER_LOGIN_NAME NVARCHAR2(30)
)
创建包:
create or replace package pack_test is
type cur_test is ref cursor;
end pack_test;
/
--这个不能少呀,加上这个就可以在sql/plus中运行了,这个是结束符号
创建存储过程
create or replace procedure proc_cur(p_id in number,p_cur out pack_test.cur_test)
is
v_sql varchar2(400);
begin
if p_id = 0 then
open p_cur for select * from user_information;
else
v_sql := 'select * from user_information where id =: p_id';
open p_cur for v_sql using p_id;
end if;
end proc_cur;
测试存储过程
-- Test statements here
set serveroutput on
declare
v_id number := 0;
v_row USER_INFORMATION%rowtype; --注意这里是表名
p_cur pack_test.cur_test;
begin
proc_cur(v_id, p_cur);
loop
fetch p_cur into v_row;
exit when p_cur%notfound;
DBMS_OUTPUT.PUT_LINE(v_row.USER_LOGIN_NAME||'='||v_row.P_ID);
end loop;
close p_cur;
end;
/
--语句块结束符号
创建基本表
-- Create table
create table USER_INFORMATION
(
P_ID NUMBER,
USER_LOGIN_NAME NVARCHAR2(30)
)
创建包:
create or replace package pack_test is
type cur_test is ref cursor;
end pack_test;
/
--这个不能少呀,加上这个就可以在sql/plus中运行了,这个是结束符号
创建存储过程
create or replace procedure proc_cur(p_id in number,p_cur out pack_test.cur_test)
is
v_sql varchar2(400);
begin
if p_id = 0 then
open p_cur for select * from user_information;
else
v_sql := 'select * from user_information where id =: p_id';
open p_cur for v_sql using p_id;
end if;
end proc_cur;
测试存储过程
-- Test statements here
set serveroutput on
declare
v_id number := 0;
v_row USER_INFORMATION%rowtype; --注意这里是表名
p_cur pack_test.cur_test;
begin
proc_cur(v_id, p_cur);
loop
fetch p_cur into v_row;
exit when p_cur%notfound;
DBMS_OUTPUT.PUT_LINE(v_row.USER_LOGIN_NAME||'='||v_row.P_ID);
end loop;
close p_cur;
end;
/
--语句块结束符号
相关文章推荐
- oracle 存储过程 stored procedure 查询一条记录或多条记录
- oracle 存储过程 stored procedure 查询一条记录或多条记录
- oracle 存储过程 stored procedure 查询一条记录或多条记录
- oracle 当查询结果有重复记录时 选择时间最近的一条
- oracle查询指定字段 重复记录大于一条的记录,并统计该记录出现的总次数
- Oracle查询当前记录的上一条记录或下一条记录
- Oracle查询重复数据并删除,只保留一条记录
- Oracle查询重复数据并删除,只保留一条记录
- oracle中根据当前记录查询前一条和后一条记录
- oracle 存储过程 stored procedure 查询记录(带包)
- Oracle 删除重复数据只留一条 查询及删除重复记录的SQL语句 1、查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断 select * from 表 wher
- oracle中查询最近的一条记录(FIRST_VALUE() OVER(PARTITION BY ORDER BY ))
- 论oracle随机查询一条记录
- Oracle 利用lead、lag函数查询已有记录的下一条、上一条记录
- oracle 查询最后一条记录
- Oracle查询重复数据并删除,只保留一条记录
- oracle 查询已有记录,上一条记录,下一条记录
- Oracle 多表连接查询取最近一条记录
- ORACLE 存储过程 遍历查询记录
- Oracle查询重复数据并删除,只保留一条记录