我现在就想完成以下这个一件事,需要用存储过程实现
将visitnum表中的visitnum字段值更新到VISITCOUNT表中.
我首先要select visitnum from visitnum;查询visitnum 表的visitnum字段
然后insert into VISITCOUNT values(visitnum)就这么简单,但是我怎么能把visitnum 值拿到呢?大家有会的写个完整的存储过程吧,多谢啦

解决方案 »

  1.   


    CREATE OR REPLACE PROCEDURE AAA IS
       PARA VISITNUM.VISITNUM%TYPE;
       
       BEGIN
          SELECT VISITNUM INTO PARA FROM VISITNUM;
          INSERT INTO VISITCOUNT VALUES(PARA);
       END AAA;
      

  2.   

    哦,这个是oracle的,其他的你可以去网上查查
      

  3.   

    可以不用存储过程,一个SQL语句就搞定了
    INSERT INTO VISITCOUNT(ins_time,cnt) 
    select sysdate,VISITNUM FROM VISITNUM;
    就可以了。
    这是oracle的,其它数据库也有类似的语法支持。
      

  4.   


    正解。BTW,不是针对LZ
    不要动不动就喜欢写存储过程。很多一句SQL就可以搞定的事情,不要用存储过程。
    另外,有些人美其名曰“效率”。数据库效率是设计出来的,不是用存储过程就能解决的。
      

  5.   


          CREATE OR REPLACE PROCEDURE test IS
             begin
                 select visitnum from visitnum
                 into visitnum
                 from VISITCOUNT
             end test;
    注意:VISITCOUNT前提存在............
      

  6.   

    上面的SQL效率是执行两条SQL的一倍...
      

  7.   

    既然一句可以搞定,同样放在存储过程中,一句sql也就能搞定。
    不过不同数据库取时间的函数不同。这个主意下就行了!
      

  8.   

    oracle:sysdate
    SQL server:GetDate()
    mysql :now();
      

  9.   

    a b 两张表:用如下可以拷贝数据:
    insert into a(id,name) select id,name from b;
      

  10.   


    谁用2条了?
    insert into ... select from ... 的语法,应该属于所有和数据库打交道的程序员都应知应会的。
      

  11.   

    insert into VISITCOUNT visitnum select visitnum from visitnum
      

  12.   

    但我确实在说你,简单的一个insert into ... select from ... 的语法,竟然还需要动用存储过程
      

  13.   


    你说“上面的SQL效率是执行两条SQL的一倍...”,看遍所有回帖,没人两条SQL——除了用存储过程的
      

  14.   

    可以不用存储过程,一个SQL语句就搞定了
    INSERT INTO VISITCOUNT(ins_time,cnt)  
    select sysdate,VISITNUM FROM VISITNUM;
    觉得这个比较好