我数据库上现有一个用户fat,fat用户下面有很多oracle对象比如表、视图、触发器、函数等等,
我想把这个用户名字改成commsh,如何写sql呢?如何做?

解决方案 »

  1.   

    create user commsh ....;
    exp fat/....
    imp commsh/...
    drop user fat;
      

  2.   

    备份fat数据库~ 再导入数据库改名为commsh
      

  3.   

    你有pl/SQL developer么? 那个里面就有这功能导入和导出
      

  4.   

    1、windows 平台下运行 cmd2、sqlplus /nolog3、SQL> connsys/lmis@lmisdx_localas sysdba 连接到数据库。通常可以用sys用户登陆。4、SQL> select * from user$; 找到 name为需要修改的用户的user#。5、SQL> UPDATE USER$ SET NAME='新用户名' WHERE USER#=38;
       已更新 1 行。6、SQL> COMMIT;提交完成。7、SQL> ALTER SYSTEM CHECKPOINT;
       系统已更改。8、SQL> ALTER USER 新用户名 IDENTIFIED BY 新密码;
       此时会提示新用户不存在。   SQL> ALTER USER 新用户名 IDENTIFIED BY 新密码           *ERROR 位于第 1 行:ORA-01918: 用户'新用户'不存在9、SQL> ALTER SYSTEM FLUSH SHARED_POOL;
       系统已更改。10、SQL> ALTER USER 新用户 IDENTIFIED BY 新密码;
        用户已更改。11、测试连接
        SQL> CONN 新用户/新密码@lmisdx_local;
        已连接。12、SQL> SELECT * FROM TAB;
        查看新用户下是否有原用户的对象,包括表等。13、SQL> CONN /    AS SYSDBA已连接。14、SQL> SHOW USER     --查看当前连接用户
        为"SYS"15、SQL> SHUTDOWN IMMEDIATE   --关闭数据库
        数据库已经关闭。已经卸载数据库。ORACLE 例程已经关闭。16、SQL> STARTUP              --启动数据库
            ORACLE 例程已经启动。......数据库装载完毕。数据库已经打开。17、可以看出没有再恢复为TEST
        SQL> SELECT USER#,NAME,PASSWORD FROM USER$ WHERE USER#=38;
                         
    18、查看数据对象
        SQL> SELECT * FROM TAB;