有一个职工表,包括职工的职工号,职称,工资,性别,年龄等根据输入的职工号number,如何用函数把这个职工的全部信息输出来呢?
是不是要对职称,工资,性别,年龄等分别声明一个变量,再用SELECT把结果放入声明的变量中,再输出?
这样的话岂不是要声明很多变量?或者有其他办法?小弟初学oracle,对这些不太懂,请指教~~
是不是要对职称,工资,性别,年龄等分别声明一个变量,再用SELECT把结果放入声明的变量中,再输出?
这样的话岂不是要声明很多变量?或者有其他办法?小弟初学oracle,对这些不太懂,请指教~~
解决方案 »
- 安装Oracle9i时只看到Oracle universal installer界面。。。
- ORACLE中游标和COMMIT的问题
- 有个关于Oracle数据文件的问题,请高手帮忙看看,谢谢!
- 请教2个 PL/SQL语句的问题
- Oracle中如何查询一个用户下有多少张表、视图等等?
- oracle 中的键保留表
- windows2000 server下ORACLE8i监听器及建立建立本地连接问题
- Oracle建表问题
- 请问,这种sql如何优化
- 做个有意思的小测试,rman恢复时报错,麻烦各位朋友看看是什么错
- 相同语句创建的表与视图,对其中的同一个字段做全表sum的结果不一致,怎么入手解释这个现象?
- 这道题应该如何来做?求前辈帮解答下。
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);
下面给你一个例子参考一下:
CREATE OR REPLACE PROCEDURE MyTest IS
-- 定义记录类型变量
rec emp%ROWTYPE;
BEGIN
--可以直接将一条记录存储到记录类型中。
SELECT * INTO rec FROM emp WHERE empno = '3456';
END ;
MyTest(empno in int,out参数填什么啊)
输出是这样输出吗?
DBMS_OUTPUT.PUT_LINE(rec);好像还需要一个return参数呃,那写什么啊?
--比如这样一个例子
--Func是一个函数,根据BOOK_ID,得到book_name
DECLARE
res VARCHAR2(50);
BEGIN
res:=func(1); --res就直接接受函数的返回值了
END;--out 参数的话可以定义一个类型匹配的变量