请教,如何用函数根据输入的参数输出相关的记录
时间:2011-12-12
来源:互联网
有一个职工表,包括职工的职工号,职称,工资,性别,年龄等
根据输入的职工号number,如何用函数把这个职工的全部信息输出来呢?
是不是要对职称,工资,性别,年龄等分别声明一个变量,再用SELECT把结果放入声明的变量中,再输出?
这样的话岂不是要声明很多变量?或者有其他办法?
小弟初学oracle,对这些不太懂,请指教~~
根据输入的职工号number,如何用函数把这个职工的全部信息输出来呢?
是不是要对职称,工资,性别,年龄等分别声明一个变量,再用SELECT把结果放入声明的变量中,再输出?
这样的话岂不是要声明很多变量?或者有其他办法?
小弟初学oracle,对这些不太懂,请指教~~
作者: scutcs09 发布时间: 2011-12-12
仅供参考:
SQL code
SQL code
CREATE OR REPLACE PROCEDURE sp_test ( p_outstr OUT VARCHAR2 ,p_outint OUT NUMBER ,p_ref1 OUT SYS_REFCURSOR ,p_ref2 OUT SYS_REFCURSOR ) AS BEGIN p_outstr := 'abc'; p_outint := '56789'; OPEN p_ref1 FOR SELECT ROWNUM*2 AS RN FROM DUAL CONNECT BY ROWNUM<=10; OPEN p_ref2 FOR SELECT ROWNUM*2+1 AS RN FROM DUAL CONNECT BY ROWNUM<=10; END sp_test; / SET AUTOPRINT ON VAR p_outstr VARCHAR2(10); VAR p_outint NUMBER; VAR p_ref1 REFCURSOR; VAR p_ref2 REFCURSOR; EXEC sp_test(:p_outstr,:p_outint,:p_ref1,:p_ref2);
作者: yixilan 发布时间: 2011-12-12
可以使用记录类型。
下面给你一个例子参考一下:
SQL code
下面给你一个例子参考一下:
SQL code
CREATE OR REPLACE PROCEDURE MyTest IS -- 定义记录类型变量 rec emp%ROWTYPE; BEGIN --可以直接将一条记录存储到记录类型中。 SELECT * INTO rec FROM emp WHERE empno = '3456'; END ;
作者: LuiseRADL 发布时间: 2011-12-12
引用 2 楼 luiseradl 的回复:
可以使用记录类型。
下面给你一个例子参考一下:
SQL code
CREATE OR REPLACE PROCEDURE MyTest IS
-- 定义记录类型变量
rec emp%ROWTYPE;
BEGIN
--可以直接将一条记录存储到记录类型中。
SELECT * INTO rec FROM emp WHERE empno = '3……
可以使用记录类型。
下面给你一个例子参考一下:
SQL code
CREATE OR REPLACE PROCEDURE MyTest IS
-- 定义记录类型变量
rec emp%ROWTYPE;
BEGIN
--可以直接将一条记录存储到记录类型中。
SELECT * INTO rec FROM emp WHERE empno = '3……
那请问函数声明的括号里要写什么呢?
MyTest(empno in int,out参数填什么啊)
输出是这样输出吗?
DBMS_OUTPUT.PUT_LINE(rec);
好像还需要一个return参数呃,那写什么啊?
作者: scutcs09 发布时间: 2011-12-12
引用 3 楼 scutcs09 的回复:
引用 2 楼 luiseradl 的回复:
可以使用记录类型。
下面给你一个例子参考一下:
SQL code
CREATE OR REPLACE PROCEDURE MyTest IS
-- 定义记录类型变量
rec emp%ROWTYPE;
BEGIN
--可以直接将一条记录存储到记录类型中。
SELECT * INTO rec FROM emp WHERE em……
因为函数具有返回值,所以调用函数通常作为一个表达式的一部分。SQL code
引用 2 楼 luiseradl 的回复:
可以使用记录类型。
下面给你一个例子参考一下:
SQL code
CREATE OR REPLACE PROCEDURE MyTest IS
-- 定义记录类型变量
rec emp%ROWTYPE;
BEGIN
--可以直接将一条记录存储到记录类型中。
SELECT * INTO rec FROM emp WHERE em……
--比如这样一个例子 --Func是一个函数,根据BOOK_ID,得到book_name DECLARE res VARCHAR2(50); BEGIN res:=func(1); --res就直接接受函数的返回值了 END; --out 参数的话可以定义一个类型匹配的变量
作者: yinan9 发布时间: 2011-12-12
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28