高分求助,触发器写法问题(有关随机数)
我的触发器
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(SYSDATE);《----这句是不是有问题??如果是,应该怎么写啊??
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;
/
请大家帮忙拉~~谢谢
问题点数:100、回复次数:7Top
1 楼bzszp(SongZip)回复于 2004-08-02 16:09:24 得分 0
换成
dbms_random.seed(TO_CHAR(SYSDATE,'MM-DD-YYYY HH24:MI:SS'));
试试
Top
2 楼bzszp(SongZip)回复于 2004-08-02 16:10:49 得分 0
换成
dbms_random.seed(TO_CHAR(SYSDATE,'MM-DD-YYYY HH24:MI:SS'));
试试
Top
3 楼ulysis6(令狐葱)回复于 2004-08-02 16:29:14 得分 0
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 errorsTop
4 楼bzszp(SongZip)回复于 2004-08-02 16:31:58 得分 0
show error;
命令查看错误信息
贴出来看看Top
5 楼bzszp(SongZip)回复于 2004-08-02 16:44:12 得分 100
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-22
PL/SQL 过程已成功完成。
已用时间: 00: 00: 00.47
16:39:15 SQL>Top
6 楼bzszp(SongZip)回复于 2004-08-02 16:46:22 得分 0
去掉EXECUTE关键字
SELECT COUNT(1) FROM DUAL;
请确保DUAL表中只有一条数据。Top
7 楼ulysis6(令狐葱)回复于 2004-08-02 17:12:31 得分 0
谢谢帮忙,问题解决了~!!!Top




