资讯   |   开发   |   选机中心   |   产品大全 | IBM | 惠普 | 联想 | 戴尔 | 苹果 | 神舟
更多: | 华硕 | 明基 | 方正 | 紫光 | TCL | 夏新 | 联宝 | 宏碁 | 七喜 | 长城 | 清华同方 | 海尔 | 三星 | 东芝 | 索尼 | 富士通 | LG | 技术 | ddnoon
当前位置:笔记本 > 软件开发 >
Advertisement
文章正文

下面是一段自己修改的一个oracle存储过程,里面错误应该很多,大家找。按错误个数及难度给分.

类型:转载   责任编辑:asp.net   日期:2007/05/23


热门软件下载:


   

下面的过程的目的是清楚所有的用户(TEMP)的数据库表,表之间有外键引用的情况.  
  同时,希望大家的在存储过程用于学习。分不够再加。由于是从sql   server   的数  
  据库转来,所以大家从这方面入手较易.  
  create   or   replace   procedure   TruncateDatabase   is    
   
   
   
  varchar(3000)   SqlExecute:=select   *   from   %tablename%;  
   
  varchar(40)   tablename;  
   
  varchar(100)   sql;  
   
  table(tablename   varchar(100))   stack;  
   
   
   
  begin  
   
  insert   into   stack   select   TABLE_NAME   from   dba_tables   where   owner=TEMP;  
   
  while(   exists(select   *   from   stack))  
   
  begin  
   
  cursor   mycur   is   select   tablename   from   stack;  
   
  open   mycur;  
   
  loop  
   
  fetch   next   from   mycur   into   tablename;  
   
  exit   when   mycur%notfound;      
   
   
   
  if(exist(select   *   from   user_constraints   where   table_name=tablename   and   table_name   in   (select   tablename   from   stack)   and   CONSTRAINT_TYPE=R))    
   
  begin  
   
  dbms_output.putline(tablename);  
   
  end;  
   
  else  
   
  begin  
   
  delete   from   stack   where   tablename=tablename;  
   
  sql:=replace(sqlexecute,%tablename%,tablename);  
   
   
   
  dbms_output.put_line(sql);  
   
  execute   immediate   sql;  
   
  end;  
   
  end   loop;  
   
  close   mycur;  
   
  deallocate   mycur;  
   
  end;  
   
  end;

网友回答:

发表者:wylwyl1130

SqlExecute   varchar2(3000):=select   *   from   %tablename%;  
   
  tablename   varchar2(40)   ;  
   
  s_ql   varchar2(100)   ;  
 


 

 
热门推荐笔记本: 戴尔笔记本
相关文章:
webmaster:popbb@126.com   最佳浏览:1024X768 MSIE
©2007 popbb.net All Rights Reserved