1、项目背景
需要将导入一份最新的用户数据在tbl用户上,但需要将原来的tbl用户数据保留并能实现两个用户的比对。
2、解决思路
思路一:1)新建用户tbl_feng,导入数据;2)将两个用户换名称 3)比对
思路二:1)将旧用户tbl换用户名为tbl_feng;2)新建tbl用户,导入新数据 3)比对
以上方案中都需要保留旧用户上的数据,并将旧用户修改用户名。因此,下面主要说明 将tbl用户改名为 tbl_feng 的过程。
3、修改步骤
1) 查询待更改Oracle用户 的信息 USER#
SYS@orcl> select user#,name from user$ where name='NH_DW_TBL';
USER# NAME
---------------------------------------------------------------------------------------------- 149 NH_DW_TBL
查询结果:
2)更改用户名 为“tbl_feng”
SYS@orcl> update user$ set name='NH_DW_TBL_FENG' WHERE USER#=149;
1 row updated.
执行截图:
3)清除缓存数据字典信息 (强制checkpoint、flush shared_pool)
此时,如果不做操作,是不可以创建 tbl用户的,会提示重名,需要执行:强制将更改写入文件,清除缓存中数据字典信息,下次读取时从文件中读取已更改的信息。
alter system checkpoint;
alter system flush shared_pool;
4) 创建新用户即可
create user NH_DW_TBL identified by XXX
default tablespace NH_DW_TBL_DATA
temporary tablespace TEMP
profile DEFAULT;
5)检查结果 ok换用户名成功。
SYS@orcl> SELECT USER#,NAME FROM USER$ WHERE NAME LIKE 'NH_DW_TBL%';
USER# NAME
----- ------------------------------
149 NH_DW_TBL_FENG
208 NH_DW_TBL
或者登录上PL/SQL Developer工具,查看用户:
检查连接:ok