oracle修改用户名
--sqlplus
sqlplus;
sys /password as sysdba;
--查找用户ID(user#),数据库里面存放的用户都是大写!
select user#,name,password from user$ where name ='FACT';
USER# NAME PASSWORD
91 FACT 7A0F2B316C212D67
-根据用户ID 更新用户名。
update user$ set name= FACT where user#=91;
--提交。
commit;
--确认用户名是否更新成功。
select user#,name,password from user$ where USER# = 91;
USER# NAME PASSWORD
91 FACT 7A0F2B316C212D673
--修改用户密码。
alter user fact identified by fact;
--手工执行检查点操作,将Database Buffer Cache中的数据强制写出到外存。
alter system checkpoint;
--强制刷新Shared Pool!因为Oracle的数据字典信息是缓存在Shared Pool的Dictionary Cache中的。
alter system flush shared_pool;
--确认密码是否修改成功。
select user#,name,password from user$ where USER# = 91;
USER# NAME PASSWORD
91 FACT 7A0F2B316C212D67
--测试用户是否可用。
conn fact/fact
Connected.
show user
USER is "FACT"
--重启ORACLE服务
相关文档:
在Oracle中的树形操作
1.取子节点及路径(正树):
select t.id ,t.code, t.name ,t.pid
,SYS_CONNECT_BY_PATH(t.id,'.')||'.' as IdPath
from tas_catalog t
--where id!=110
start with id=110
connect by pid = prior id
order siblings by id
2.取各级父节点(倒树):
select t.id ,t.code, t.na ......
总结了一下删除重复记录的方法,以及每种方法的优缺点。
假设表名为Tbl,表中有三列col1,col2,col3,其中col1,col2是主键,并且,col1,col2上加了索引。
1、通过创建临时表
可以把数据先导入到一个临时表中,然后删除原表的数据,再把数据导回原表,SQL语句如下:
creat table tbl_tmp (select distinct* from tb ......
查看正在执行的sql语句
SELECT osuser, username, sql_text from v$session a, v$sqltext b where a.sql_address =b.address order by address, piece;
捕捉运行很久的SQL
select username,sid,opname, round(sofar*100 / totalwork,0) || '%' as progress, time_remaining,sql_text from v$session_longops , v$ ......
按表方式的导出,导入
exp SYSTEM/SYSTEM@SBJSDB00 TABLES=KOKAN90.MASTER_SEND_LIMIT LOG=C:\A.LOG
IMP SYSTEM/SYSTEM@SBJSDB00 IGNORE=Y FULL=Y LOG=C:\B.LOG
之前用过很多语句都报错,得到的教训是 先执行exp SYSTEM/SYSTEM@SBJSDB00,按提示一步步输入成功过后,再把提示翻译成参数和参数值
关于参数说明用 exp hel ......
oracle Set 命令介绍
http://luoke920.javaeye.com/blog/323743
1). 设置当前session是否对修改的数据进行自动提交
SQL>SET AUTO[COMMIT] {ON|OFF|IMM[EDIATE]| n}
2).在用start命令执行一个sql脚本时,是否显示脚本中正在执行的SQL语句
SQL> SET ECHO {ON|OFF}
3).是否显示当前sql语句查询或修改的行数 ......