【发布时间】:2014-06-23 10:48:51
【问题描述】:
我认为这很简单。
我有一张表 People,其中包含 Name、Surname 和 Age 列。
我想要一个存储过程GetPersonsBySurname
- 输入 -> 一组姓氏
- 输出 -> 该组姓氏中的人的姓名、姓氏和年龄。
提前谢谢你。
现在我有了这个...我可以编写一个只有一个姓氏的存储过程... 我想要一组姓氏...
这是我的代码
表格
CREATE TABLE "PEOPLE"
(
"NAME" VARCHAR2(255 BYTE),
"SURNAME" VARCHAR2(255 BYTE),
"AGE" NUMBER(*,0)
)
标题
create or replace PACKAGE "MYPACK" IS
TYPE r_output IS RECORD
(
name varchar2(255),
surname varchar2(255),
age varchar2(255)
);
TYPE CURS_R_OUTPUT IS REF CURSOR
RETURN r_output;
PROCEDURE GetPersonsBySurname ( mysurname in varchar2,
OUT_P_CUR OUT CURS_R_OUTPUT,
OUT_ESITO OUT VARCHAR2,
OUT_MESSAGGIO OUT VARCHAR2
);
END MYPACK;
身体
create or replace PACKAGE BODY "MYPACK"
IS
PROCEDURE GetPersonsBySurname ( mysurname in varchar2,
OUT_P_CUR OUT CURS_R_OUTPUT,
OUT_ESITO OUT VARCHAR2,
OUT_MESSAGGIO OUT VARCHAR2
)
AS
BEGIN
OPEN OUT_P_CUR FOR
select p.name, p.surname, p.age
from people p
where p.surname = mysurname ;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
OUT_ESITO := 'OK';
OUT_MESSAGGIO := 'No data found';
WHEN OTHERS
THEN
OUT_ESITO := 'KO';
OUT_MESSAGGIO := 'ERROR';
END GetPersonsBySurname;
END MYPACK;
【问题讨论】:
-
欢迎来到 StackOverflow。请提出具体问题,展示您已经编写的代码并解释您的具体问题所在。这不是一个将软件需求和规范从简单的英语变成可运行代码的网站。
-
嗨,谢谢。我已经更新了我的问题
标签: sql stored-procedures oracle11g