oracle锁、NLS时间格式

1、oracle经常遇到表被锁的情况,处理办法如下:

(1)锁表查询的代码有以下的形式:
select count(*) from v$locked_object;
select * from v$locked_object;
(2)查看哪个表被锁
select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_objects b where b.object_id = a.object_id;
(3)查看是哪个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; 
(4)杀掉对应进程
执行命令:alter system kill session'1025,41';
其中1025为sid,41为serial#.


2、oracle   NLS时间格式不一致,经常导致导出的sql语句无法插入

解决办法,设置NLS格式

设置时间格式(date和timestamp类型语句不一样)

alter session set NLS_date_FORMAT='yyyy-mm-dd hh24:mi:ss';
alter session set NLS_timestamp_FORMAT='yyyy-mm-dd hh24:mi:ss';
alter session set NLS_timestamp_FORMAT='yyyy-mm-dd hh24:mi:ssxff';
alter session set NLS_timestamp_FORMAT='DD-MON-RR HH.MI.SSXFF AM';


alter session set NLS_LANGUAGE = 'SIMPLIFIED CHINESE'
alter system set nls_language='AMERICAN' scope=spfile;


select * from nls_session_parameters where parameter = upper('NLS_timestamp_FORMAT');

设置查询的session NLS格式设置后  ,在目标数据库将时间格式设置为一样的,然后就可以执行插入语句了。

你可能感兴趣的:(数据库,oracle)