壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3936|回复: 5

程序不运行问题

[复制链接]
发表于 2006/11/17 17:07:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622  。

您需要 登录 才可以下载或查看,没有帐号?注册

x
我在数据库写了一个存储过程,目的是更新某张表的数据,除了log以外并没有输出信息,我现在在ORACLE ERP里面注册成一个可执行并发程序,挂到请求组里面运行后去查看运行状态一直都是待定,运行不出来,这是为什么啊,这个存储过程我在PL/SQL里面测试是没有问题的啊,请高手赐教,谢谢!!
发表于 2006/11/17 17:40:08 | 显示全部楼层
一个独力运行的存储过程和一个请求的存储过程是有区别的,请注意红色部分的区别。
errbuf OUT VARCHAR2, retcode OUT NUMBER这两个参数一定要有。



  1. create or replace package cux_other01_report is
  2.   -- Author  : Wanjun Hu
  3.   -- Created : 2004-7-9 下午 01:44:57
  4.   -- Purpose : other01 用户,职责表
  5.   procedure do(errbuf OUT VARCHAR2, retcode OUT NUMBER);
  6. end cux_other01_report;
  7. /
  8. create or replace package body cux_other01_report is
  9.   cursor cursor_user_role is
  10.     select c.user_name           as login_name,
  11.            d.full_name           as employee_name,
  12.            f.name                as department_name,
  13.            a.user_id             as user_id,
  14.            a.responsibility_id   as responsibility_id,
  15.            b.RESPONSIBILITY_NAME as RESPONSIBILITY_NAME
  16.       from FND_USER_RESP_GROUPS         a,
  17.            FND_RESPONSIBILITY_VL        b,
  18.            fnd_user                     c,
  19.            hr_employees                 d,
  20.            per_assignments_f            e,
  21.            hr_all_organization_units_tl f
  22.      where a.user_id = c.user_id
  23.        and c.employee_id = d.employee_id
  24.        and c.employee_id = e.PERSON_ID
  25.        and e.ORGANIZATION_ID = f.organization_id
  26.        and a.responsibility_id = b.RESPONSIBILITY_ID
  27.        and sysdate > e.EFFECTIVE_START_DATE
  28.        and sysdate < e.EFFECTIVE_END_DATE
  29.      order by c.description, c.user_name, a.responsibility_id
  30.    
  31.     ;
  32.   -- Author  : Wanjun Hu
  33.   -- Created : 2004-8-24 下午 01:47:23
  34.   -- Purpose : 在控制台输出和在报表中输出
  35.   procedure print(content varchar2) is
  36.   begin
  37.     dbms_output.put_line(content);
  38.     fnd_file.put_line(fnd_file.output, content);
  39.   end print;
  40.   procedure do(errbuf OUT VARCHAR2, retcode OUT NUMBER) is
  41.     p_row_cursor_user_role cursor_user_role%rowtype;
  42.   begin
  43.   
  44.     open cursor_user_role;
  45.     loop
  46.       --循环
  47.       fetch cursor_user_role
  48.         into p_row_cursor_user_role;
  49.       EXIT WHEN cursor_user_role%NOTFOUND OR cursor_user_role%NOTFOUND IS NULL;
  50.       print(p_row_cursor_user_role.login_name || ',' ||
  51.             replace(p_row_cursor_user_role.employee_name, ',', '') || ',' ||
  52.             p_row_cursor_user_role.department_name || ',' ||
  53.             p_row_cursor_user_role.user_id || ',' ||
  54.             p_row_cursor_user_role.responsibility_id || ',' ||
  55.             p_row_cursor_user_role.RESPONSIBILITY_NAME);
  56.    
  57.     end loop;
  58.   
  59.     close cursor_user_role;
  60.   
  61.   end do;
  62. end cux_other01_report;
  63. /


复制代码
 楼主| 发表于 2006/11/18 16:46:21 | 显示全部楼层
thank you very much!!
 楼主| 发表于 2006/11/18 16:52:10 | 显示全部楼层
还想请教一个问题,我的存储过程本身是没有输出的,只是一个更新数据库的动作,现在要把更新后的结果以log的方式输出,怎样把log以文件的形式输出并保存,以便给用户看呢
发表于 2006/11/18 20:47:00 | 显示全部楼层
原帖由 ttx2000 于 2006-11-18 16:52 发表
还想请教一个问题,我的存储过程本身是没有输出的,只是一个更新数据库的动作,现在要把更新后的结果以log的方式输出,怎样把log以文件的形式输出并保存,以便给用户看呢



注意上面的例子中有一个函数为:
  1.   -- Author  : Wanjun Hu
  2.   -- Created : 2004-8-24 下午 01:47:23
  3.   -- Purpose : 在控制台输出和在报表中输出
  4.   procedure print(content varchar2) is
  5.   begin
  6.     dbms_output.put_line(content);
  7.     fnd_file.put_line(fnd_file.output, content);
  8.   end print;
复制代码


这个函数中dbms_output.put_line为向控制台输出文件,fnd_file.put_line为写log日志。
log日志你可以在请求运行完后点击"查看输出"进行日志查看.
希望对你有帮助...
 楼主| 发表于 2006/11/20 10:45:11 | 显示全部楼层
用纵横四海的方法搞定了,非常感谢。但还有一点我不明白,就是“dbms_output.put_line为向控制台输出文件”,这个输出文件是什么,在哪里可以找到它呢。我是新手,请赐教!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/30 04:45 , Processed in 0.012112 second(s), 14 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表