当前位置: 首页 > news >正文

秦皇岛市教育考试院网站南阳网站建设南阳

秦皇岛市教育考试院网站,南阳网站建设南阳,炫酷的html5网站,网站建设合同报价​编辑csm8109022010-01-27 09:59:18 这个问题我以前问过类似的,但一直没得到如意的答案!在oracle 里soctt的用户下的emp表,比如写一个函数,传入的参数为部门编号,然后返回所有该部门人员信息的函数。要用到游标&…

​编辑csm8109022010-01-27 09:59:18

这个问题我以前问过类似的,但一直没得到如意的答案!在oracle 里soctt的用户下的emp表,比如写一个函数,传入的参数为部门编号,然后返回所有该部门人员信息的函数。要用到游标,且要封装信息,该如何写?且能在pl/sql developer里能调试的,谢谢。

给本帖投票

88211打赏收藏1

 分享

 转发到动态举报

 写回复

如何按时间分组,并取最大值啊?>>

11 条回复

 切换为时间正序

请发表友善的回复…

发表回复

huangyunzeng2008 2010-01-28

将返回类型定义为一个table或者是一个cursor

csm810902 2010-01-27

cursor不是游标类型吗?不能写return cursor? c_cursor cursor这样申明一个游标类型的实例c_cursor 不是吗?我是这样理解的

suiziguo 2010-01-27

SYS_REFCURSOR是ORACLE内置ref cursor类型。
而cursor,只是一个关键字。

csm810902 2010-01-27

对了,我把函数改成这样会报错:
create or replace function func_emp_dept(v_deptno IN emp.deptno%TYPE)
return cursor IS

c_cursor cursor;
BEGIN
OPEN c_cursor FOR
SELECT * FROM emp WHERE deptno = v_deptno;
RETURN c_cursor;
END;
说必须申明表标CURSOR,这怎么理解?

csm810902 2010-01-27

ding

csm810902 2010-01-27

嗯,搞定,谢谢你们

suiziguo 2010-01-27

函数在PL/SQL里调试也一样。以下是SQLPLUS里调试:

SQL> CREATE OR REPLACE FUNCTION func_emp_dept
2 (pi_deptno IN emp.deptno%TYPE)
3 RETURN SYS_REFCURSOR
4 IS
5 po_result SYS_REFCURSOR;
6 BEGIN
7 OPEN po_result FOR
8 SELECT * FROM emp WHERE deptno=pi_deptno;
9 RETURN po_result;
10 END;
11 /

函数已创建。

SQL> select func_emp_dept(10) from dual;

FUNC_EMP_DEPT(10)
--------------------
CURSOR STATEMENT : 1

CURSOR STATEMENT : 1

EMPNO ENAME JOB MGR HIREDATE SAL COMM
---------- ---------- --------- ---------- -------------- ---------- ----------
DEPTNO
----------
7782 CLARK MANAGER 7839 09-6月 -81 2450
10

7839 KING PRESIDENT 17-11月-81 5000
10

7934 MILLER CLERK 7782 23-1月 -82 1300
10



SQL>

suiziguo 2010-01-27

pl/sql测试窗,下面有所有参数(包括IN and OUT)。

在测试窗运行过程后,下面的参数栏里有个变量为po_result的值一栏里是<Cursor>
点击其右边的...按钮,就可以在新窗口里看见你想要的结果集。

csm810902 2010-01-27

suiziguo你好,存储过程在pl/sql developer一般是传入参数调试,然后在数据库里看结果,这里执行过程后,如何在pl/sql developer上看结果(这里是输出10部门的结果)?写函数还真不知道写呢

suiziguo 2010-01-27

SQL> create or replace procedure emp_dept
2 (pi_deptno IN emp.deptno%TYPE,
3 po_result OUT SYS_REFCURSOR)
4 IS
5 begin
6 OPEN po_result FOR
7 SELECT * FROM emp WHERE deptno=pi_deptno;
8 end ;
9 /

过程已创建。

SQL> var r_cur refcursor
SQL> exec emp_dept(10,:r_cur);

PL/SQL 过程已成功完成。

SQL> print :r_cur

EMPNO ENAME JOB MGR HIREDATE SAL COMM
---------- ---------- --------- ---------- -------------- ---------- ----------
DEPTNO
----------
7782 CLARK MANAGER 7839 09-6月 -81 2450
10

7839 KING PRESIDENT 17-11月-81 5000
10

7934 MILLER CLERK 7782 23-1月 -82 1300
10


SQL>



pl/sql developer里调试,单独查看游标结果集。

oraclemch 2010-01-27

 回复

用游标即可:
 

 
  1. Create or REPLACE FUNCTION getCursorList(

  2. P_USER_ID_I IN VARCHAR2 --接收输入参数

  3. )

  4. RETURN SYS_REFCURSOR

  5. AS

  6. P_RESULT_SET_O SYS_REFCURSOR; --返回游标

  7. X_SQL VARCHAR2(200);

  8. BEGIN

  9. X_SQL :='select user_id,user_name,email from user_mst where user_id like ''%' || P_USER_ID_I ||'%'''; --生成SQL语句

  10. OPEN P_RESULT_SET_O FOR X_SQL;

  11. RETURN P_RESULT_SET_O; --返回游标

  12. END getCursorList;

     

http://www.sczhlp.com/news/106032/

相关文章:

  • 网站开发学历要求义乌网站建设公司书生商友
  • 网站设计的逻辑企业cms免费
  • 建设部网站查询网页制作电子教程
  • 想找Axure替代?这6个原型设计工具值得一试
  • H5游戏性能优化系列-----cpu相关优化
  • IPA 混淆实战 IPA 混淆、IPA 加固、ipa 文件安全与成品包防护全流程指南
  • php网站建设的基本流程图上海公共场所
  • 微网站建设最新报价湛江网站建设与网页
  • 网站建设课题简介下载百度免费
  • 乌兰浩特网站建设物流外贸是做什么的
  • 番禺网站开发费用网站seo内链建设
  • 实用指南:javaweb HTML基本介绍/常见标签
  • 文档处理控件Aspose.Words教程:在 C# 中将 Markdown 转换为 PDF
  • TCP协议与wireshark
  • 高端品牌网站建设策略wordpress仿36kr氪主题
  • 国美在线网站建设建筑模板是干嘛用的
  • 性能网站建设体贴的聊城网站建设
  • 天津网站建设基本流程图wordpress全站同一个标题
  • 免费制作微信网页网站soho建设外贸网站
  • 报关做业务可以上哪些网站开发一个小网站多少钱
  • 天津免费建网站工业园区网站建设方案
  • 网站域名查询ipwordpress升级php7
  • 广州市做民宿什么网站比较好邯郸招工信息网
  • 苏州建站费用长安网站建设推广公司
  • docker容器mysql导入sql文件
  • ObjectSense 包与模块:代码组织的艺术
  • IDE工具RAD Studio 13 Florence重磅发布:64 位 IDE + AI 组件全面升级!
  • C# 批量修改数据库
  • Job for network.service failed because the control process exited with error code.
  • flash 做网站网站引入优酷视频