1.oracle视图操作
创建视图:create view视图名称as查询数据;
删除视图:drop view视图名称;
例:
create view myview as select * from test_person;(可以修改视图,修改的数据会影响到基表)
create view myview as select * from test_person with read only;(不可修改视图)
update myview set age='32' where id = '1';
drop view myview;
注:视图和数据库中的表一样 ,可以执行select、insert、update、delete等语句
2.oracle主从数据库:
主从数据库的建立一般基于以下三个方面考虑:
1、容灾:备库在异地,主库不存在了,备库可以立即接管,无须恢复时间
2、负载均衡:主库做增删改,备库做查询,这样很多查询业务不占用主库资源
3、数据集中和分发:此种模式主要用于数据从分公司集中到总公司,或从总公司分发到分公司,前提是公司需要同步的数据
很少,另外各公司间业务系统不是同一家公司开发的同步功能主要通过数据库同步软件实现的.
3.oracle表回滚到一个指定时间的操作语句
alter table表名enable row movement;
flashback table表名to timestamp to_timestamp('2011-03-04 05:00:00','yyyy-mm-dd HH24:MI:SS');
4.增加数据库表列sql
alter table table_name add(column_name类型);
alter table table_name add(column_name类型);
ex:
alter table e_Rpt_Iq_Teamperform add(psnnumzaizhihege integer);
alter table e_Rpt_Iq_Teamperform add(psnnumzaizhihejiyou integer);
5.修改列名sql
格式:alter table rename column to ;
ex:alter table e_Rpt_Iq_Teamperform rename column psnnumzaizhihejiyou to psnnumzaizhijiyou;
6.Oracle查询被锁的表的信息
select object_name,machine,s.sid,s.serial#
from gv$locked_object l,dba_objects o,gv$session s
where l.object_id = o.object_id
and l.session_id = s.sid;
查看是哪个session引起的
select b.username,b.sid,b.serial#,logon_time
from v$locked_object a,v$session b
where a.session_id = b.sid order by b.logon_time;
杀掉这个进程
alter system kill session 'sid,serial#';(sid和serial#是从上面的那个sql中查询出来的)
7.修改数据库表列名
alter table(table_name)rename column(column_old_name)to(column_new_name);
8.oracle小数点前0不显示问题
select to_char(0.1,'fm9999990.9999')from dual;
9.查询整个数据库中哪个表中使用到了ELE_RELATION_ID字段
SELECT TABLE_NAME,COLUMN_NAME FROM USER_TAB_COLUMNS WHERE COLUMN_NAME='ELE_RELATION_ID';
10.修改登录数据库用户的密码
alter user chnlgrp(用户名)account unlock;
alter user chnlgrp(用户名)identified by chnlgrp(修改后的密码);
11.修改登录数据库用户的密码有效期
查看
SELECT * FROM dba_profiles s WHERE s.profile = 'DEFAULT' AND resource_name = 'PASSWORD_LIFE_TIME';
修改
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;