不好意思,写错了~
m_name 不是变量,是表的字段谁帮帮我呀~~
m_name 不是变量,是表的字段谁帮帮我呀~~
解决方案 »
- 关于数据库操作记录查询问题
- oracle imp
- 我写一个函数的一个日期转换的函数,用select 没有问题,可是调试时就通不过,这是为什么?求大侠看看
- 请问在使用IMP向oracle中导入数据得时候出现imp-00017得错误时怎么办
- 上海某外企诚聘Oracle顾问-----月薪10000RMB+
- 请教一个pl/sql 的问题?
- 无法启动专用服务器进程
- 请教:语句级触发器中能够获得被影响的记录数吗?
- 請教一下各位大俠怎樣編譯Pro*C和源文件.pc,?
- oracle通过dblink查询数据
- 我在delete结束后,就要commit时,居然网络中断了,请问....
- RedHat9安装Oracle9i的问题,急!!
return直接是一个游标名就可以了!
return cursor_test;
CREATE OR REPLACE PACKAGE pkg_test
AS
TYPE myrctype IS REF CURSOR; PROCEDURE get (p_id NUMBER, p_rc OUT myrctype);
END pkg_test;
/CREATE OR REPLACE PACKAGE BODY pkg_test
AS
PROCEDURE get (p_id NUMBER, p_rc OUT myrctype)
IS
sqlstr VARCHAR2 (500);
BEGIN
IF p_id = 0 THEN
OPEN p_rc FOR
SELECT ID, NAME, sex, address, postcode, birthday
FROM student;
ELSE
sqlstr :=
'select id,name,sex,address,postcode,birthday
from student where id=:w_id';
OPEN p_rc FOR sqlstr USING p_id;
END IF;
END get;
END pkg_test;
/
等我测试通过了再结帖~~
明天吧
补足,呵呵--------------------------------------------
LGQDUCKY(飘)pl/sql怎么返回数据集?
CREATE OR REPLACE PACKAGE pkg_test
AS
TYPE myrctype IS REF CURSOR; PROCEDURE get (p_id NUMBER, p_rc OUT myrctype);
END pkg_test;
/CREATE OR REPLACE PACKAGE BODY pkg_test
AS
PROCEDURE get (p_id NUMBER, p_rc OUT myrctype)
IS
sqlstr VARCHAR2 (500);
BEGIN
IF p_id = 0 THEN
OPEN p_rc FOR
SELECT ID, NAME, sex, address, postcode, birthday
FROM student;
ELSE
sqlstr :=
'select id,name,sex,address,postcode,birthday
from student where id=:w_id';
OPEN p_rc FOR sqlstr USING p_id;
END IF;
END get;
END pkg_test;
/
create or replace package pkg_test
as
type myCursor is ref cursor;
function get(p_id number) return myCursor;
end pkg_test;create or replace package body pkg_test
as
--输入ID 返回记录集的函数
function get(p_id number) return myCursor is
rc myCursor;
strsql varchar2(200);
begin
if p_id=0 then
open rc for select a.user_name from fnd_user a ;
else
strsql:='select a.user_name from fnd_user a where a.user_id=:p_id';
open rc for strsql using p_id;
end if;
return rc;
end get;
end pkg_test;
--上面是一个返回结果集的函数,下面调用.
create or replace procedure pro_test as
v_out pkg_test%myCursor;
v_name varchar2(100);
begin
v_out:=pkg_test.get(0); --得到结果集
loop
fetch v_out into v_name;
exit when v_out%notfound;
--这里进行处理,想要处理哪一行或进行什么处理在这里进行
end loop;
......
end;