Rumah > pangkalan data > tutorial mysql > Oracle中判断有表DROP无表CREATE的存储过程

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2016-06-07 17:01:10
asal
1107 orang telah melayarinya

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;

 

测试

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号

    Kenyataan Laman Web ini
    Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
    Tutorial Popular
    Lagi>
    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan