当前位置: 首页 > article >正文

oracle中删除指定前缀的表

近期接手做的项目,发觉数据库中有许多多余的表。究其原因,应该是同事贪图方便,将过去做过的项目复制粘贴,然后修修改改。包括数据库也是克隆过来的,然后又没有删除本项目多余的表,结果经过几个轮回,就不知道哪些表需要,哪些不需要了。

本来不管它,也不会报错,问题是,表实在太多了,密密麻麻,想找某个表,费时费力,也不利于对本项目的理解和把握。咬咬牙,我辛苦一点,清理一下。

幸而大部分表,创建时都加了前缀,比较好识别。那么,删除时有没有可能按照指定的表名前缀,查找出来,然后删除呢?一言不合问AI,AI说可以,噌噌噌给了我一段脚本,说运行这段脚本就能删除指定前缀的表。不过我想稍为改动一下,改为利用脚本生成删除表语句,然后再手动执行。我本能地觉得,删表可不是开玩笑,尽管这是在开发环境,也做了备份,但还是看看生成的删表语句,审核一下,然后再手动运行比较稳妥。后来发现,幸亏是这么做了,因为AI给出的脚本,过滤条件有点不靠谱,指定前缀的表包括进去了,但跟前缀有点像的表也包括进去了,如果直接运行的话,会将一些无辜的表也删掉了。

思路:

1、备份数据库
2、写一个脚本,生成删除表语句
3、运行删除表语句

本来AI给出的答案,是直接在脚本里删除。但我也

1、备份数据库

略过不提

2、写一个脚本,生成删除表语句

脚本如下:

DECLARE
v_sql VARCHAR2(4000);
BEGIN
FOR rec IN (SELECT table_name
FROM user_tables
WHERE table_name LIKE ‘JSJC_%’)
LOOP
v_sql := ‘DROP TABLE ’ || rec.table_name || ’ CASCADE CONSTRAINTS;’;
DBMS_OUTPUT.PUT_LINE(v_sql);
END LOOP;
END;
/

注意在PL/SQL Developer中,需在test windows下运行这段脚本:
在这里插入图片描述
在这里插入图片描述

3、运行这些删除语句

我认为需要将这些删除语句留底保存,以备日后查验。

4、小结

其实现在回想起来,在PL/SQL的图形界面上直接删除岂不更快?但我又不想这么做,也许是怕手一抖,删错了吧。


http://www.kler.cn/a/416047.html

相关文章:

  • 【通俗理解】步长和学习率在神经网络中是一回事吗?
  • 自编码器(二)
  • 前端导出文件,下载文件,downloadFile 方法汇总
  • ArcGIS 软件中路网数据的制作
  • canal同步数据教程
  • QT的槽函数的四种写法
  • Oracle 插入数据的存储过程
  • CAN收发器芯片TJA1042规格书解读
  • C# 进行AI工程开发
  • Web3开发指南:构建去中心化应用(DApps)的关键步骤
  • Java基础常用类库全解析
  • kafka消费者组和分区数之间的关系是怎样的?
  • 【AIGC】2023-ICCV-用于高保真语音肖像合成的高效区域感知神经辐射场
  • 将有序数组转换为二叉搜索树python
  • [Redis#7] set | 命令 | 集合 | 用户画像 | UV
  • 【随笔】AI大模型对软件开发的影响
  • 编码器接口测速
  • 宠物领养平台:SpringBoot技术解密
  • 【vue for beginner】Vue该怎么学?
  • 看华为,引入IPD的正确路径
  • 清朗行动再开展,算法安全如何保障
  • springboot+redis+lua实现分布式锁
  • 在PHP中使用正则表达式来处理数据类型验证和提取
  • 强化安全责任意识,传音开展第四届信息及隐私安全文化宣传周活动
  • 数字3D虚拟展厅成熟运用于旅游业
  • 计算机网络基础(2):网络安全/ 网络通信介质