当前位置:首页
开发技术指南» 文章正文
    引言:
 

 

 ·asp里如何打印出不转义的"号    »显示摘要«
    摘要: 例如我想把这行打印出来<response-result code="1"></response-result> 原来"号是用&quot;转义的,不知道可不可以不用&quot;原来样打印出来呢? response.write "<response-result code="1">&......
    摘要: 我手工从crecordset继承一个类cmyrecordset(没有用classwizard)。想要用一个类在需要时打开相应的table,而不是用classwizard为每个table建立一个crecordset类。在实现时碰到了如下一个问题,请高手指教: 1、动态绑定需要手工建立 table_column 链表和 column_value链表,而建立链表时,要用到 getodbcfiel......


哪位高手帮我看看下面的脚本,奇怪啊

declare    
  tbl_name   varchar(100);  
  cursor   cur_tables   is   select   table_name   from   all_tables   where   owner   =   test;  
  begin  
  open   cur_tables;  
  fetch   cur_tables   into   tbl_name;  
  while   cur_tables%FOUND  
  loop  
  --                       DELETE   from   tbl_name;  
      UPDATE     M_USER   set   user_name   =   tbl_name;  
    fetch   cur_tables   into   tbl_name;  
  end   loop;  
   
  end;  
  这个脚本没有什么问题,但是一旦用delete   就不可以了,好像通过游标得到的变量只能用在update   ,insert,这种语句;作为表名处理就不可以了  
   
  现在我想清空一个表空间内所有的表,就必须要删除功能,各位高手有   什么办法?

NO.1   作者: black_snail

you   need   to   use   DBMS_SQL   package   or   execute   immediate   to   execute   the   dynamic   SQL   like   delete   <yourtable>  
   
  why   update   is   success   ?   the   table   name   is   fixed   to   M_USER!  
 

NO.2   作者: BlueskyWide

使用descade。  
 

NO.3   作者: black_snail

动态SQL是不能这样写的

NO.4   作者: hrb_qiuyb

你说的有一问题,表名是不能通过变变量来的。  
  你的程序做如下修改:  
  declare    
      tbl_name   varchar(100);  
      comstr   varchar2(200);  
      cursor   cur_tables   is   select   table_name   from   all_tables   where   owner   =   test;  
  begin  
      commstr:=delete   from   ;        
      open   cur_tables;  
      fetch   cur_tables   into   tbl_name;  
      while   cur_tables%FOUND  
      loop  
          --以下为删表语句  
          commstr:=commstr||tbl_name;  
          execute   immediate   commstr;  
        --   DELETE   from   tbl_name;  
          UPDATE     M_USER   set   user_name   =   tbl_name;  
          fetch   cur_tables   into   tbl_name;  
      end   loop;  
      close   cur_tables;  
  end;  
 

NO.5   作者: jiezhi

完全可以的,看我以前写的:  
  create   or   replace   procedure   SP_CLEAR(V_TABLE   IN   STRING)   IS  
  /*---------------------------------------------------------------  
  --Function:delete   all   records   of   tables   in   v_table                           //  
  --Author:Liaozq                                                                                                 //    
  --Date:2002/10/8                                                                                               //  
  --Explain:(1)v_table   must   like   this:table1,table2,table3,...       //  
                      (2)Before   delete   records   from   tables,recorder   thess     //  
                            tables.  
  ---------------------------------------------------------------*/  
      TYPE   cur_type   IS   REF   CURSOR;  
      c_tab   cur_type;  
      v_str   STRING(2000);  
      v_tab   t_clear.wlbmc%TYPE;  
      v_sql   STRING(3000);  
   
   
  begin  
      --Get   table   from   v_table  
      --Reorder   these   tables  
      v_str:=upper(v_table);  
      v_str:=REPLACE(v_str,,,,);  
      v_str:=||v_str||;  
      v_sql:=SELECT   WLBMC   FROM   T_CLEAR   WHERE   TRIM(WLBMC)   IN   (||v_str||)   ORDER   BY   BZ   DESC;  
      OPEN   c_tab   FOR   v_sql;  
      LOOP  
          FETCH   c_tab   INTO   v_tab;  
          EXIT   WHEN   c_tab%NOTFOUND;  
          v_sql:=delete   from   ||v_tab||;  
          EXECUTE   IMMEDIATE   v_sql;      
      END   LOOP;        
      COMMIT;      
      --deal   with   exception    
      EXCEPTION    
          WHEN   OTHERS   THEN  
                ROLLBACK;  
                RAISE;  
  end   SP_CLEAR;  
  /  
   
  ------------------------  
  |                                             |  
  |       相逢何必曾相识           |  
  |                                             |  
  ------------------------  
 


    摘要: 打开资源管理器后,焦点在指定的文件上。 谁作出来了,请到另外2篇帖子取分 ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE