CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Oracle >  开发

高分求助,触发器写法问题(有关随机数)

楼主ulysis6(令狐葱)2004-08-02 15:42:59 在 Oracle / 开发 提问

我的触发器  
   
  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

相关问题

  • 求触发器写法?
  • 求触发器写法
  • 求触发器写法?
  • 求一触发器写法
  • 触发器的写法
  • 有关触发器
  • 有关触发器
  • 一个触发器的写法
  • 请教一个触发器的写法
  • 求一触发器写法!在线等~!

关键词

  • dbms
  • date
  • trunc
  • random
  • varchar
  • hh24
  • minute
  • sysdate
  • hour
  • month

得分解答快速导航

  • 帖主:ulysis6
  • bzszp

相关链接

  • Oracle类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo