问题是这样的:
因为经常要查一些数据,而且是每周或者每月要提供,以前都是人手工用sql脚本,在客户端执行,现在考虑能否让数据库自动执行。
1、如想在某个时间,比如一周或者一个月执行一次,执行操作为向数据库表中按照查询条件插入记录。
2、然后根据上面执行的结果进行select的查询操作,操作结果保存在文本中。
3、然后把这个文本通过邮件服务器,发送到一些特定的人中。
现在不知道该如何处理?
是先写一个数据库存储过程(即插入操作),那么怎么实现查询,然后发送邮件。另外定时执行的话,是用job来做吗?数据库是按照在Digital Unix下,还是用crontab吗?具体应该怎么做,能不能稍微提供一点操作代码和方法。
另外如果我的操作中还设计到先建立临时表,然后向表中插入数据的话,是不是要用动态sql语句啊?
那位大虾能够提供帮忙啊?
本来打算装一个Embarcadero job scheduler2.81的软件,好像有这方面的功能,但不知道为什么在客户端这个程序老是装不上。是不是在服务器端也要进行一些设置啊?

解决方案 »

  1.   

    你可以用oracle的dbms_job来做
    oracle有个包UTL_SMTP 可以发邮件DBMS_JOB.SUBMIT ( 
       job       OUT BINARY_INTEGER,
       what      IN  VARCHAR2,
       next_date IN  DATE DEFAULT sysdate,
       interval  IN  VARCHAR2 DEFAULT 'null',
       no_parse  IN  BOOLEAN DEFAULT FALSE,
       instance  IN  BINARY_INTEGER DEFAULT any_instance,
       force     IN  BOOLEAN DEFAULT FALSE);
    厄。VARIABLE jobno number;
    BEGIN
       DBMS_JOB.SUBMIT(:jobno, 
          'dbms_ddl.analyze_object(''TABLE'',
          ''DQUON'', ''ACCOUNTS'', 
          ''ESTIMATE'', NULL, 50);' 
          SYSDATE, 'SYSDATE + 1');
       commit;
    END;
    /
    Statement processed.
    print jobno
    JOBNO
    ----------
    14144
      

  2.   

    http://expert.csdn.net/Expert/topic/1744/1744381.xml?temp=.8352472
      

  3.   

    在oracle 中按照 mwonder的操作
    在unix中,
    crontab -e 进行编辑,制定需要执行的文件名称和执行的时间应该可以了
      

  4.   

    各位朋友,小弟近日正在学习oracle9i,由于授课教师水平很戳,所以学习没有多大进展,本人想请各位朋友帮我找一些oracle的电子文档或幻灯片,以助我学习提高,小弟感激不尽.来信请发:
    [email protected]
      

  5.   

    我的经验还是使用crontab这样的东西比dbms_job要好得多,方便简单。