1. 没试过ORACLE的任务工具, 我们的习惯做法是用操作系统的SHELL语言创建任务, 如在VMS下用这样的语句建立任务:
APACPI_KNUT> type SUBMIT_BATCH.COM
set noverify
$!-----------------------------------------------------------------------------
$! JCL Name    : submit_batch.com
$! Description : To submit the given job at the date and time specified         $ submit  /noprint   -
          /notify    -
          /user=knut -
          /queue=KNUT$batch -
          /log=KNUT$log:'log_file' -
          /after='P2'"+"'P3' -
          'P1' 
$ exit 
-----------------------------------------------------------@KNUT$prg:submit_batch KNUT$prg:KNUT0001 today 00:01:00在NT下我不知道该怎么做, 但一定有类似办法的2. DATE不包含毫秒.

解决方案 »

  1.   

    1. 可以使用dbms_job包2. date中没有毫秒.读取毫秒数只有通过外部手段,如c或java.转贴一段java读取毫秒的例子(适用于8i以后的版本):SQL> CREATE or replace JAVA SOURCE
      2  NAMED "MyTimestamp"
      3  AS
      4  import java.lang.String;
      5  import java.sql.Timestamp;
      6  
      7  public class MyTimestamp
      8  {
      9      public static String getTimestamp()
     10      {
     11        return (new
     12           Timestamp(System.currentTimeMillis())).toString();
     13      }
     14  };
     15  /Java created.SQL> create or replace function my_timestamp 
    return varchar2
      2  AS LANGUAGE JAVA
      3  NAME 'MyTimestamp.getTimestamp() return java.lang.String';
      4  /Function created.
    SQL> l
      1* select my_timestamp, to_char(sysdate,'yyyy-mm-dd 
    hh24:mi:ss') from dual
    SQL> /MY_TIMESTAMP
    -----------------------------------------------------------------
    -----------------------------------
    TO_CHAR(SYSDATE,'YY
    -------------------
    2000-06-22 13:47:53.376
    2000-06-22 13:47:53