> 数据库 > Oracle >

Oracle 常用SQL

查看语言环境和编码
select userenv('language') from dual; 

SQL中转码
CONVERT(NAME,'WE8ISO8859P15','AL32UTF8')

日期转换
select to_char(SYSTIMESTAMP,'yyyy-mm-dd hh24:mi:ss.FF3') systime from dual;
to_timestamp('2006-01-01 12:10:10.1','yyyy-mm-dd hh24:mi:ss.ff')

***************************************************************************
--设置oracle时间格式
alter session set nls_timestamp_format='yyyy-mm-dd hh24:mi:ss.ff3';

alter system set nls_timestamp_format='yyyy-mm-dd hh24:mi:ss.ff3' scope=spfile;
alter system set nls_date_format='yyyy-mm-dd hh24:mi:ss' scope=spfile;

scope=memory,表示修改立即生效,持续到数据库关闭为止,若数据库使用pfile启动,这是唯一可选值,也是默认值。

scope=spfile ,会修改spfile参数,新设置只有在重新使用spfile启动数据库的时候生效
scope=both,表示修改会发生在内存上立即生效,并修改spfile保证数据库重启后也生效。
若数据库使用spfile启动,则scope=both是默认值
若数据库使用pfile启动,则scope=memory是默认值,也是唯一值。
静态参数,不能通过修改内存(默认scope值或scope=memory或scope=both)来生效,要通过修改spfile(),重启数据库来生效。

**********************************************************************
--查看系统资源
SELECT   resource_name,current_utilization,max_utilization,LIMIT,ROUND (max_utilization / LIMIT * 100) || '%' rate
  FROM   (SELECT   resource_name,current_utilization, max_utilization,TO_NUMBER (initial_allocation) LIMIT
          FROM   v$resource_limit WHERE   resource_name IN ('processes', 'sessions')AND max_utilization > 0);
--如果资源不足,修改连接资源,然后重启数据库
alter system set processes=1000 scope=spfile;

*********************************************************************
--如果表里有数据,而dba_tables表里num_rows没有
  analyze table 表名 compute statistics;




(责任编辑:IT)