Welcome 微信登录

首页 / 数据库 / MySQL / Oracle中判断有表DROP无表CREATE的存储过程

CREATE OR REPLACE PROCEDURE PD_GENERATE_HELP_LAST_TABLES IS
--把从sqlserver中生成的vw_last_xxx所对应的视图生成本地的数据表
  tabNocount NUMBER ;
  v_sql      VARCHAR2(200);BEGIN
  --判断表dat_help_last_scqy1(成品油生产旬报)
  SELECT count(*) INTO tabNocount FROM user_tables WHERE table_name = "DAT_HELP_LAST_SCQY1";
  IF tabNocount>0 THEN
     dbms_output.put_line("drop table dat_help_last_scqy1");
     v_sql := "DROP TABLE DAT_HELP_LAST_SCQY1";
     EXECUTE IMMEDIATE v_sql;
  END IF;
     dbms_output.put_line("create table dat_help_last_scqy1");
     v_sql := "CREATE TABLE DAT_HELP_LAST_SCQY1 AS SELECT * FROM VW_LAST_SCQY1";
     EXECUTE IMMEDIATE v_sql;
  --判断表dat_help_last_scqy2(成品油生产月报)
 
  SELECT count(*) INTO tabNocount FROM user_tables WHERE table_name = "DAT_HELP_LAST_SCQY2";
  IF tabNocount>0 THEN
     dbms_output.put_line("drop table dat_help_last_scqy2");
     v_sql := "DROP TABLE DAT_HELP_LAST_SCQY2";
     EXECUTE IMMEDIATE v_sql;
  END IF;
     dbms_output.put_line("create talbe dat_help_last_scqy2");
     v_sql := "CREATE TABLE DAT_HELP_LAST_SCQY2 AS SELECT * FROM VW_LAST_SCQY2";
     EXECUTE IMMEDIATE v_sql;
  --判断表dat_help_last_shsndybb(能源调度月报表)
  SELECT count(*) INTO tabNocount FROM user_tables WHERE table_name = "DAT_HELP_LAST_SHSNDYBB";
  IF tabNocount>0 THEN
     dbms_output.put_line("drop table dat_help_last_shsndybb");
     v_sql := "DROP TABLE DAT_HELP_LAST_SHSNDYBB";
     EXECUTE IMMEDIATE v_sql;
  END IF;
     dbms_output.put_line("create table dat_help_last_shsndybb");
     v_sql := "CREATE TABLE dat_help_last_shsndybb AS SELECT * FROM vw_last_shsndybb";
     EXECUTE IMMEDIATE v_sql;
END PD_GENERATE_HELP_LAST_TABLES; 测试begin
  -- Call the procedure
  pd_generate_help_last_tables;
end; 如果出现 ORA-01031: 权限不足
ORA-06512: 在"SYSTEM.CCCCCC", line 6
ORA-06512: 在line 1 的错误,则执行以下授权语句grant create table to jwdc;
grant resource to jwdc;
grant create procedure to jwdc;Oracle 如何判断临时表是否存在Oracle客户端连接bug相关资讯      Oracle教程 
  • Oracle中纯数字的varchar2类型和  (07/29/2015 07:20:43)
  • Oracle教程:Oracle中查看DBLink密  (07/29/2015 07:16:55)
  • [Oracle] SQL*Loader 详细使用教程  (08/11/2013 21:30:36)
  • Oracle教程:Oracle中kill死锁进程  (07/29/2015 07:18:28)
  • Oracle教程:ORA-25153 临时表空间  (07/29/2015 07:13:37)
  • Oracle教程之管理安全和资源  (04/08/2013 11:39:32)
本文评论 查看全部评论 (0)
表情: 姓名: 字数