达梦通过命令行批量删除表
先保存下面的内容为 SQL 脚本:
DECLARE SCH_NAME VARCHAR(20) := 'YOUR_SCHEMA'; -- 替换为要删除表的模式名 TAB_NAME VARCHAR(100); SQL1 VARCHAR(500); SQL2 VARCHAR(500); C1 CURSOR; BEGIN -- 使用 USER_TABLES 视图查找用户下的表 SQL1 := 'SELECT TABLE_NAME FROM USER_TABLES;'; OPEN C1 FOR SQL1; LOOP FETCH C1 INTO TAB_NAME; EXIT WHEN C1%NOTFOUND; SQL2 := 'DROP TABLE "' || SCH_NAME || '"."' || TAB_NAME || '";'; EXECUTE IMMEDIATE SQL2; END LOOP; CLOSE C1; END; /
DECLARE 定义了变量和游标。SQL1 用于获取要删除的表的名称。
执行时,打开游标 C1 执行 SQL1。LOOP 循环遍历游标中的每一行,执行 SQL2 删除表。
EXIT WHEN C1%NOTFOUND;
表示当没有更多行时退出循环。
然后切换到达梦的bin
目录:
cd /path/to/your/dmdbms/bin/
执行如下命令进入 SQL 命令行:
./disql USER_NAME/\"PASS_WORD\"@localhost:5236
加两个
\"
是处理密码中存在@
之类的特殊字符的情况
然后先执行set define off;
来禁用 SQL 命令行中的特殊字符,再执行上面的 SQL 脚本:
SQL> set define off; SQL> start /path/to/your/script.sql
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
2022-02-07 JavaScript 正则替换中的美元符($)
2022-02-07 对土的三相关系的一种理解