想要修改schema 名称,但可以用无损、最快的方式,最终效果 = 只改了 schema 名字,数据、表、结构完全不变。
最推荐、最简单、最快的方案(生产可用)
sql
-- 1. 创建新 schema(用你想要的新名字)
CREATE SCHEMA 新名字 AUTHORIZATION 原用户;
-- 2. 把旧 schema 里的所有表 移动 到新 schema 里
-- 表有多少就写多少条
ALTER TABLE 旧schema.表1 RENAME TO 新schema.表1;
ALTER TABLE 旧schema.表2 RENAME TO 新schema.表2;
-- 3. 移动视图、存储过程、序列等(有就移)
ALTER VIEW 旧schema.视图1 RENAME TO 新schema.视图1;
-- 4. 确认没问题后,删除空的旧 schema
DROP SCHEMA 旧schema CASCADE;
这种方式可以实现吗

不能这样操作,alter table只能修改表名为同模式下其他表名,不能直接修改成其他模式名
可以创建新用户,创建后模式创建新同名模式名,然后用dexp导出工具导出旧模式下的数据,然后用dimp导入,导入时添加模式映射选项参数(REMAP_SCHEMA=old_schema:new_schema)将模式名从原来的模式名修改为新模式名