我想在oracle定义一个简单的方法,它有一个参数,fun(a)
有一个sql语句:select * from task where employee_id=a;(结果可以多行)
我想通过那个fun函数调用这个SQL语句,把fun(a)放在oracle里, 运行能得到结果就行。有人肯帮个忙么?怎么写 谢谢了
Oracle文档我看了 没太看懂...
有一个sql语句:select * from task where employee_id=a;(结果可以多行)
我想通过那个fun函数调用这个SQL语句,把fun(a)放在oracle里, 运行能得到结果就行。有人肯帮个忙么?怎么写 谢谢了
Oracle文档我看了 没太看懂...
create or replace procedure fun(a integer) is
type emp_type is table of emp%rowtype index by binary_integer;
emp_t emp_type;
begin
select * into emp_t(1) from emp where empno = a;
dbms_output.put_line('EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO');
dbms_output.put_line(emp_t(1).empno || ' ' || emp_t(1)
.ename || ' ' || emp_t(1).job || ' ' || emp_t(1)
.mgr || ' ' || emp_t(1)
.hiredate || ' ' || emp_t(1)
.sal || ' ' || emp_t(1).deptno);
end;
SQL> set serveroutput on;
SQL> exec fun(7499);EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
7499 ALLEN SALESMAN 7698 20-2ÔÂ -81 1600 30PL/SQL procedure successfully completed
CREATE OR REPLACE PACKAGE PKG_name IS
TYPE RPT_CURSOR IS REF CURSOR;
PROCEDURE P_GET(a IN VARCHAR2,
C_CURSOR OUT RPT_CURSOR); --游标
END PKG_UNDERPIT;CREATE OR REPLACE PACKAGE BODY PKG_name IS
PROCEDURE P_GET(a in varchar2
C_CURSOR OUT RPT_CURSOR)AS
BEGIN
OPEN C_CJCGZL_JXZY FOR select * from task where employee_id=a;
END P_GET;
END PKG_name;这样就可以返回结果集了!
CREATE OR REPLACE PACKAGE PKG_name IS
TYPE RPT_CURSOR IS REF CURSOR;
PROCEDURE P_GET(a IN VARCHAR2,
C_CURSOR OUT RPT_CURSOR); --游标
END PKG_UNDERPIT; CREATE OR REPLACE PACKAGE BODY PKG_name IS
PROCEDURE P_GET(a in varchar2
C_CURSOR OUT RPT_CURSOR)AS
BEGIN
OPEN C_CURSOR FOR select * from task where employee_id=a;
END P_GET;
END PKG_name; 这样就可以返回结果集了!