Oracle中判断有表DROP无表CREATE的存储过程

php中文网
发布: 2016-06-07 17:01:10
原创
1364人浏览过

CREATE OR REPLACE PROCEDURE PD_GENERATE_HELP_LAST_TABLES IS--把从sqlserver中生成的vw_last_xxx所对应的视图生成本地的数据表

Linux公社

首页 → 数据库技术

背景:

阅读新闻

oracle中判断有表drop无表create的存储过程

[日期:2011-05-11] 来源:Linux社区  作者:Linux [字体:]

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;

 

Hugging Face
Hugging Face

Hugging Face AI开源社区

Hugging Face 270
查看详情 Hugging Face

测试

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;

linux

  • 0
  • Oracle 如何判断临时表是否存在

    Oracle客户端连接bug

    相关资讯       Oracle教程 

    图片资讯      

    本文评论   查看全部评论 (0)

    评论声明

    最新资讯

    本周热门

    Linux公社简介 - 广告服务 - 网站地图 - 帮助信息 - 联系我们
    本站(LinuxIDC)所刊载文章不代表同意其说法或描述,仅为提供更多信息,,也不构成任何建议。


    Copyright © 2006-2011 Linux公社 All rights reserved 浙ICP备06018118号

    最佳 Windows 性能的顶级免费优化软件
    最佳 Windows 性能的顶级免费优化软件

    每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

    下载
    来源:php中文网
    本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
    最新问题
    开源免费商场系统广告
    热门教程
    更多>
    最新下载
    更多>
    网站特效
    网站源码
    网站素材
    前端模板
    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送

    Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号