oracle中escape关键字解析
定义:escape关键字经常用于使某些特殊字符,如通配符:'%','_'转义为它们原来的字符的意义,被定义的转义字符通常使用'',但是也可以使用其他的符号。实例:SQL> select * from t11 where name like '%_%';NAME----------aa_aaaaSQL> select * from t11 where name like '%_%' escape '';NAME----------aa_a注意:如果是 '/' 作为检索字符, 必须 用 '/' 作为转义符, 正斜扛也一样.select * from wan_test where psid like '%//%' escape '/'[@more@]
查看oracle 数据库各种文件的空间使用情况
查找表: DBA_DATA_FILES,DBA_FREE_SPACE[@more@]SELECT FILE_NAME,TOTAL_SIZE, ----文件总大小TOTAL_SIZE-FREE_SIZE USED_SIZE, ----文件已用大小FREE_SIZE ----文件剩余大小FROM (SELECT FILE_ID,FILE_NAME,BYTES/1024/1024 TOTAL_SIZEFROM DBA_DATA_FILES) F,(SELECT FILE_ID,SUM(BYTES)/1024/1024 FREE_SIZEFROM DBA_FREE_SPACEGROUP BY FILE_ID) EWHERE F.FILE_ID=E.FILE_ID;
连接sqlplus出错解决方法
使用oracle能正常连接sqlplus,但是用其他用户,如:Bill,就出现如下出错:[@more@]sqlplus: Error while loading shared libraries: libsqlplus.so: cannot open shared object file: no such file or directory 解决方法:将Bill用户增加组属性:oinstall 1、vi /etc/group oinstall:x:501:Bill 2、同步组:grpconv
数据字典视图和动态性能视图的区别
5月8日数据字典视图和动态性能视图的区别a:数据字典视图名一般用复数,而动态性能视图名一般用单数,比如dba_tablepsaces vs v$tablespace。b:数据字典视图只有在数据库open的情况下才可以访问,而部分动态性能视图可以在数据库非open状态下使用。c:数据字典视图里看到的列信息一般都是大写,而动态性能视图里看到的一般都是小写。d:数据字典视图里的信息是静态的,在数据库关闭后不丢失;而动态性能视图里的信息是动态的,关闭instance后信息丢失。获取动态性能视图的定义:select * from V_$FIXED_VIEW_DEFINITION;获取数据字
大表update例子比较
测试表a_tmp,1百万条数据,增加一个columnALTER TABLE A_TMP ADD dt DATE给a_tmp的dt Update入date数据。尝试了几种方法,均不理想,最后使用merge,迅速update成功。[@more@]1、declareaa integer :=100;dd date;begindd := TO_DATE('20000101','yyyymmdd');loopaa := aa + 2;dd := dd + 1/24update a_tmp set dt = dd where a = aa;---commit;exit when aa > 1000000;end loop;end;运行10分钟,没有结果,中断。2、UPDATE A_TMP tt SET tt.dt = ( SELECT TO_DATE('20000101','yyyymmdd')+ta.rn/24 FROM ( SELECT ROWID rd, ROWNUM
数据库从文件系统转移至ASM实验记录[转]
实验环境:WinXP SP2数据库版本:10.2.0.1准备迁移的数据库实例名:TESTASM实例名:+ASMASM磁盘组:+TESTref: http://woodnan.itpub.net/post/37055/458037 [@more@]创建ASM实例和磁盘组的步骤这里不再重复,请参考:http://liang573728.itpub.net/post/37715/475287注:由于itpub的blog会屏蔽反斜杠,以下反斜杠都用斜杠代替了Microsoft Windows XP [版本 5.1.2600](C) 版权所有 1985-2001 Microsoft Corp.C:/WINDOWS>set ORACLE_SID=testC:/WINDOWS>sqlplus "/as sysdba"SQL*Plus: Release 10.2.0.1.0 - Production on
[转]oracle数据批量装载
在《ORACLE高效设计》一书P87里看到对于数据仓库或数据市场的批量装载方法下面是书中做法[@more@] 1)设置索引为UNUSABLE状态(不删除索引,只是把它们设置为UNUSABLE)。 2)设置会话跳过UNUSABLE索引并进行批量装载。 3)重新启用索引。 在SQL*Plus中采用以下几个步骤实现以上几点。 比如有一个表名为t,表t上有一索引为t_idx。 1)alter index t_idx unusable; 2)alter session set skip_unusable_indexes=true; insert /*+ APPEND */ into t select * from t2; 3)alter index t_idx rebuild nologgin
create tablespace
1 create tablespace Bill. --创建永远久表空间 datafile '/u01/tablespace/bill.dbf' size 3M uniform size 128K segment space management auto;[@more@]1 create temporary tablespace billtmp ----创建临时表空间 2 tempfile '/u01/tablespace/billtmp.dbf' size 10M 3 extent management local 4* uniform size 128kSQL> /Tablespace created. SQL> create undo tablespace billundo -----创建UNDO表空间 2 datafile '/u01/tablespa
load large data into database
1 关闭index2 nologing alter table table_name nologing3 alter session enable parallel dml4 insert /*+parallel(A1,8)*/ /*+ APPEND */ into A1 select /*+parallel(A2,10)*/ * from A2 ; Or: alter table A1 parallel 8 //"8" 并行数,与CPU有关 alter table A2 parallel 10[@more@]pl/sql实例: alter session enable parallel dml;DECLARE PRAGMA AUTONOMOUS_TRANSACTION; X NUMBER; SUMNUM NUMBER; INSERT_NUM NUMBER;BEGIN INSERT_NUM := 0; X := 0; SELECT COUNT(*) INTO SUMNUM
"unable to attach to shared memory segment"问题的解决
将$ORACLE_HOME/bin/oracle的权限改为6751[@more@]
sqlldr的用法总结
sqlldr userid=lgone/tiger control=a.ctl LOAD DATA INFILE 't.dat' // 要导入的文件 // INFILE 'tt.date' // 导入多个文件 // INFILE * // 要导入的内容就在control文件里 下面的BEGINDATA后面就是导入的内容[@more@] INTO TABLE table_name // 指定装入的表 BADFILE 'c:bad.txt' // 指定坏文件地址 ************* 以下是4种装入表的方式 APPEND // 原先的表有数据 就加在后面 // INSERT // 装载空表 如果原先的表有数据 sqlloader会停止 默认值 // REPLACE // 原先的表有数据 原先的数据会
oracle最高账号sys的密码认证模式
CONNECT USERNAME/PASSWORD@SERVERNAME AS SYSDBAconnect 是指连接到username是指用户名password是指密码servername是指服务名as sysdba是指已数据库管理员的身份登录[@more@]oracle提供的认证模式1. 操作系统验证(匿名登录 不检验用户名和密码)conn / as sysdba既是操作系统认证只能用在本地 因为数据库软件安装在操作系统之上用户必须是dba组;能直接访问操作系统了 oracle就不需要限制了.在类UNIX系统中基于权限委派的原因对于普通用户添加到oinstall dba组中即可如果只添加dba组也不可以因为oracle安装目录基本都是750权限即使改目录权
DBMS_STATS.GATHER_TABLE_STATS详解
作用:DBMS_STATS.GATHER_TABLE_STATS统计表,列,索引的统计信息.[@more@]DBMS_STATS.GATHER_TABLE_STATS的语法如下:DBMS_STATS.GATHER_TABLE_STATS ( ownname VARCHAR2, tabname VARCHAR2, partname VARCHAR2, estimate_percent NUMBER, block_sample BOOLEAN, method_opt VARCHAR2, degree NUMBER, granularity VARCHAR2, cascade BOOLEAN, stattab VARCHAR2, statid VARCHAR2, statown VARCHAR2, no_invalidate BOOLEAN, force BOOLEAN);参数说明:ownname:要分析表的拥有者tabname:要分析的表名.partname:分区的名字,只对分区表或分区索引
Ceil()函数和floor()函数举例
ceil,floor比较少用,特此记录.[@more@]CEIL(n)函数:取大于等于数值n的最小整数 SELECT mgr,mgr/100,CEIL(mgr/100) FROM scott.emp;--结果: MGR MGR/100 CEIL(MGR/100)---------- ---------- ------------- 7902 79.02 80 7698 76.98 77 7698 76.98 77 7839 78.39 79 7698 76.98 77 7839 78.39 79 7839 78.39 79 7566 75.66 76 7698
Oracle的分析表和索引脚本
Oracle的分析表和索引脚本[@more@]#!/bin/ksh# analyze.kshORACE_SID=XXXexport ORACLE_SIDORACLE_HOME=`cat /var/opt/oracle/oratab|grep ^$ORACLE_SID: |cut -f2 -d':'``export ORACLE_HOMEPATH = $ORACLE_HOME/bin:$PATHexport PATH$ORACLE_HOME/bin/sqlplus /<<!set page 999set heading offset echo offset feedback offconnect internal;spool /export/home/oracle/analyze.sql;select'analyze table '||owner||'.'||table_name||' estimate statistics sample 5000 rows;'from dba_tableswhereowner not in ('SYS','SYSTEM',
How to grant on v$ views
Today i was faced with an error when I try to give permission on a v$view[@more@]SQL> grant select on v$session to hr;grant select on v$session to hr*ERROR at line 1:ORA-02030: can only select from fixed tables/viewsI wonder why i couldn’t give select privilage to a v$ view. I tried to give to permission to another v$ views but the error was same. Action for this error on error codes manual was meaningless to me (Action: You may only select rows from fixed tables/views.)From a little googlin
oracle hints
oracle hints[@more@] 1. /*+ALL_ROWS*/ 表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化. 例如: SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT'; 2. /*+FIRST_ROWS*/ 表明对语句块选择基于开销的优化方法,并获得最佳响应时间,使资源消耗最小化. 例如: SELECT /*+FIRST_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT'; 3. /*+CHOOSE*/ 表明如果数据字典中有访问表的统计信息,将基于开销的优化方法,并获得最佳的吞吐量; 表明
使用ttBulkCp从timesten中导入和导出数据
导出ttBulkCp -o -s "|" DSN=DLUA DLUA_ACCOUNT /home/elink/billliang/VIDTX_LOCAL_STREAM/DLUA_ACCOUNT.dat 导入ttBulkCp -i DSN=DLUA DLUA_ACCOUNT DLUA_ACCOUNT.dat [@more@]
使用dbms_utility找background_dump_dest路径
摘取<ORACLE 9i & 10g 编程艺术> page78,这真是本好书SET serveroutput ONDECLAREl_string VARCHAR2(255);l_dummy NUMBER;BEGINl_dummy := DBMS_UTILITY.GET_PARAMETER_VALUE('background_dump_dest',l_dummy,l_string);DBMS_OUTPUT.PUT_LINE('backgroud: '||l_string);l_dummy := DBMS_UTILITY.GET_PARAMETER_VALUE('user_dump_dest',l_dummy,l_string);DBMS_OUTPUT.PUT_LINE('user: '||l_string);END;[@more@]
Oracle维护常用SQL语句
网友的帖子,在日常数据维护中常用的sql语句.收藏下.[@more@]1、查看表空间的名称及大小 select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size from dba_tablespaces t, dba_data_files d where t.tablespace_name = d.tablespace_name group by t.tablespace_name; 2、查看表空间物理文件的名称及大小 select tablespace_name, file_id, file_name, round(bytes/(1024*1024),0) total_space from dba_data_files order by tablespace_name; 3、查看回滚段名称及大小