我怎么查了一半天也没有查到啊, 你要是会的话,给我举个例子, 我的想法是这样: declare type rd is record(name varchar2(50),old number(20)); type team_type is table of rd index by binary_integer; my_team team_type; mynum binary_integer; type myrctype is ref cursor; cur myrctype ; ddd varchar2(50); begin for mynum in 1..6 loop if mynum=1 then my_team(mynum).name:='smith'; elsif mynum=2 then my_team(mynum).name:='soto'; elsif mynum=3 then my_team(mynum).name:='james'; elsif mynum=4 then my_team(mynum).name:='wilson'; elsif mynum=5 then my_team(mynum).name:='howlett'; elsif mynum=6 then my_team(mynum).name:='sano'; end if; end loop; open cur for select name from my_team; end;
我给你一个例子 CREATE OR REPLACE PACKAGE Personality IS cursor c1 IS SELECT First_Name, Last_Name FROM People; TYPE PeopleCur IS REF CURSOR RETURN c1%rowtype; PROCEDURE GetNames ( pGender IN VARCHAR2, PeopleCursor in out PeopleCur ); END Personality; CREATE OR REPLACE PACKAGE BODY Personality AS PROCEDURE GetNames ( pGender IN VARCHAR2, PeopleCursor in out Peoplecur ) IS begin OPEN PeopleCursor FOR SELECT First_Name, Last_Name FROM People WHERE gender = pGender;END GetNames; END Personality;
你要是会的话,给我举个例子,
我的想法是这样:
declare
type rd is record(name varchar2(50),old number(20));
type team_type is table of rd
index by binary_integer;
my_team team_type;
mynum binary_integer;
type myrctype is ref cursor;
cur myrctype ;
ddd varchar2(50);
begin
for mynum in 1..6 loop
if mynum=1 then
my_team(mynum).name:='smith';
elsif mynum=2 then
my_team(mynum).name:='soto';
elsif mynum=3 then
my_team(mynum).name:='james';
elsif mynum=4 then
my_team(mynum).name:='wilson';
elsif mynum=5 then
my_team(mynum).name:='howlett';
elsif mynum=6 then
my_team(mynum).name:='sano';
end if;
end loop;
open cur for select name from my_team;
end;
你说我的想法能不能实现,就是在存储过程中声明一个Table变量,然后赋值,最后用一个Cursor返回变量。
这样行不行啊?
http://www.csdn.net/expert/topic/879/879859.xml?temp=.9309656
CREATE OR REPLACE PACKAGE Personality
IS
cursor c1 IS
SELECT First_Name, Last_Name FROM People;
TYPE PeopleCur IS REF CURSOR RETURN c1%rowtype;
PROCEDURE GetNames
(
pGender IN VARCHAR2,
PeopleCursor in out PeopleCur
);
END Personality;
CREATE OR REPLACE PACKAGE BODY Personality
AS
PROCEDURE GetNames
(
pGender IN VARCHAR2,
PeopleCursor in out Peoplecur
)
IS
begin
OPEN PeopleCursor FOR
SELECT First_Name, Last_Name FROM People WHERE gender = pGender;END GetNames;
END Personality;