换成
dbms_random.seed(TO_CHAR(SYSDATE,'MM-DD-YYYY HH24:MI:SS'));
试试

解决方案 »

  1.   

    换成
    dbms_random.seed(TO_CHAR(SYSDATE,'MM-DD-YYYY HH24:MI:SS'));
    试试
      

  2.   

    CREATE OR REPLACE TRIGGER tri_test1 before INSERT ON test1 FOR  EACH  ROW 
    DECLARE
    s_year varchar2(4);
    s_month varchar2(2);
    s_date varchar2(2);
    s_hour varchar2(2);
    s_minute varchar2(2);
    s_second varchar2(2);
    BEGIN
    execute dbms_random.seed(TO_CHAR(SYSDATE,'MM-DD-YYYY HH24:MI:SS'));
    select to_char(trunc(dbms_random.value(1000,9999))) into s_year from dual;
    select to_char(trunc(dbms_random.value(1,12))) into s_month from dual;
    select to_char(trunc(dbms_random.value(1,28))) into s_date from dual;
    select to_char(trunc(dbms_random.value(0,24))) into s_hour from dual;
    select to_char(trunc(dbms_random.value(0,60))) into s_minute from dual;
    select to_char(trunc(dbms_random.value(0,60))) into s_second from dual;
    :new.b:=to_date(s_year||'-'||s_month||'-'||s_date||' '||s_hour||':||s_minute||':'||s_second,'yyyy-mm-dd hh24:mi:ss'); 
    END;/
    还是不行,怎么办啊~
    报错Warning: Trigger created with compilation errors
      

  3.   

    show error;
    命令查看错误信息
    贴出来看看
      

  4.   

    16:38:56 SQL> SET SERVEROUTPUT ON
    16:39:11 SQL> DECLARE  
    16:39:15   2  s_year  varchar2(4);  
    16:39:15   3  s_month  varchar2(2); 
    16:39:15   4  s_date  varchar2(2);  
    16:39:15   5  s_hour  varchar2(2);  
    16:39:15   6  s_minute  varchar2(2);
    16:39:15   7  s_second  varchar2(2);
    16:39:15   8  BEGIN  
    16:39:15   9  dbms_random.seed(TO_CHAR(SYSDATE,'MM-DD-YYYY  HH24:MI:SS'));
    16:39:15  10  select  to_char(trunc(dbms_random.value(1000,9999)))  into  s_year  from  dual;
    16:39:15  11  select  to_char(trunc(dbms_random.value(1,12)))  into  s_month  from  dual;  
    16:39:15  12  select  to_char(trunc(dbms_random.value(1,28)))  into  s_date  from  dual;  
    16:39:15  13  select  to_char(trunc(dbms_random.value(0,24)))  into  s_hour  from  dual;  
    16:39:15  14  select  to_char(trunc(dbms_random.value(0,60)))  into  s_minute  from  dual;  
    16:39:15  15  select  to_char(trunc(dbms_random.value(0,60)))  into  s_second  from  dual;  
    16:39:15  16  dbms_output.put_line(s_year||'-'||s_month||'-'||s_date);
    16:39:15  17  END;
    16:39:15  18  /
    1565-3-22PL/SQL 过程已成功完成。已用时间:  00: 00: 00.47
    16:39:15 SQL>
      

  5.   

    去掉EXECUTE关键字
    SELECT COUNT(1) FROM DUAL;
    请确保DUAL表中只有一条数据。