oracle中表和列转大写

linux 上mysql区分大小写,mysql 数据同步到oracle之后也区分大小写(oracle默认自动转大写),现于oracle数据库中,把用户下所有表调成大写

bash 复制代码
BEGIN
    FOR c IN (SELECT table_name tn FROM user_tables WHERE table_name <> UPPER(table_name)) 
    LOOP
        BEGIN
            EXECUTE IMMEDIATE 'ALTER TABLE "' || c.tn || '" RENAME TO ' || UPPER(c.tn);
            DBMS_OUTPUT.PUT_LINE('表 "' || c.tn || '" 已重命名为 ' || UPPER(c.tn));
        EXCEPTION
            WHEN OTHERS THEN
                DBMS_OUTPUT.PUT_LINE('表 ' || c.tn || ' 重命名失败: ' || SQLERRM);
        END;
    END LOOP;
END;
/
bash 复制代码
-- 设置更大的缓冲区(1MB)
SET SERVEROUTPUT ON SIZE 1000000;

BEGIN
    FOR t IN (SELECT table_name tn FROM user_tables) 
    LOOP
        FOR c IN (SELECT column_name cn FROM user_tab_columns 
                  WHERE table_name = t.tn AND column_name <> UPPER(column_name)) 
        LOOP
            BEGIN
                EXECUTE IMMEDIATE 'ALTER TABLE "' || t.tn || '" RENAME COLUMN "' || c.cn || '" TO ' || UPPER(c.cn);
                -- 每成功10条输出一次,减少缓冲区压力
                -- 如果需要静默执行,可以直接注释掉DBMS_OUTPUT
                -- DBMS_OUTPUT.PUT_LINE('成功: ' || t.tn || '.' || c.cn || ' -> ' || UPPER(c.cn));
            EXCEPTION
                WHEN OTHERS THEN
                    DBMS_OUTPUT.PUT_LINE('失败: ' || t.tn || '.' || c.cn || ' - ' || SQLERRM);
            END;
        END LOOP;
    END LOOP;
    
    DBMS_OUTPUT.PUT_LINE('执行完成!');
END;
/
相关推荐
草莓熊Lotso25 分钟前
【C++ 基于微服务的即时通讯系统】etcd + brpc 从安装到服务注册发现全链路实战
网络·数据库·c++·redis·微服务·etcd
Lethehong6 小时前
Oracle 加个字段,目标库就报错?KFS 用“先拆后组“打通异构 DDL
数据库·oracle
Web极客码6 小时前
锁定真正的磁盘卡顿:我用 OpenCode 配合 eBPF 诊断 NVMe 队列深度延迟与 I/O 写放大
数据库·oracle
cspttty7 小时前
2027用户研究求职准备:应用统计学如何补齐研究设计与业务表达
大数据·数据库
roman_日积跬步-终至千里8 小时前
【数据Agent论文·查询与语义|05】Spider:为什么换一个数据库,模型就不会查了?
数据库·数据分析
猫咪很可爱8 小时前
Oracle RAC 启动失败排查:私网通信与内核参数优化实战
运维·数据库·oracle
XLYcmy9 小时前
《数字经济赋能城市低碳治理的路径研究检索报告》审阅与修改指导意见——基于完整检索报告体例的完整性诊断、学术规范核查与方法论纠偏 上
数据库·ai·chatgpt·文心一言·检索·知网·豆包
泡海椒9 小时前
JQuick-SQL 快速开始:注册内存表并执行查询
数据库·windows·sql
ss2739 小时前
PG实战笔记 | 09 PostgreSQL psql客户端基本操作
数据库·笔记·postgresql
电商API_180079052479 小时前
反向海淘多币种结算:汇率该在哪个时点被冻结
java·开发语言·数据库·跨境电商·1688 api