01 2013 档案
摘要:sqlplus "sys/123456@//10.8.114.2:1521/orcl as sysdba"或 conn "sys/123456@//10.8.114.2:1521/orcl as sysdba"select instance_name,status from v$instance;
阅读全文
摘要:今天一台测试机器的oracle服务端,在测试人员建库的时候字符集设置成了WE8MSWIN1252字符集,导致无法保存俄文等其他国家语言。于是我建议测试将字符集修改为AL32UTF8。首先查看服务端字符集select * from v$nls_parameters where parameter = 'NLS_CHARACTERSET'NLS_CHARACTERSET WE8MSWIN1252然后用sys用户进行修改#sqlplus "/as sysdba">shutdown immediate;>startup mount;>ALTER S
阅读全文
摘要:1.sessions在初始化参数所设定的限制中,最为人所知的估计就是sessions和processesSessions 参数指定了一个 Instance中能够同时存在的sessions数量,或者说,就是能同时登陆到数据库的并发用户数。通常,我们设定这个数字时需要考虑我们可能会有多少个同时连接到数据库的并发用户,并加上后台进程的进程数,最后乘与1.1.比如说,估计系统中可能会同时有100个用户连接到数据库,那么,你的session最少应该为(100 + 10 ) * 1.1 = 121当数据库连接的并发用户已经达到这个值时,又有新session连进来,就会报错00018, 00000, &qu
阅读全文
摘要:jion 语句有三种,inner join, left outer join 和 right outer join 都可以简写,分别为jion,left join,right jion。jion语句可以用来组合两个表中的记录,只要在公共字段之中有相符的值即可,该语句联合两个表查询得到的结果是可以添加新的数据,可以把它看成将两个具有相关内容的表联接在一起新生成的表,而一般的select 语句没有这个功能。1) 内连接,inner join ... on 语句格式: FROM (((表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号) INNER JO...
阅读全文
摘要:NVL(expr1, expr2) -->expr1为NULL,返回expr2;expr1不为NULL,返回expr1。NVL2(expr1, expr2, expr3) -->expr1不为NULL,返回expr2;expr1为NULL,返回expr3。expr2与expr3类型不同时,expr3转化为expr2;NULLIF(e1, e2) -->如果e1=e2, 则返回null; 如果不相等,返回e1;COALESCE(A, B, C, D) -->返回参数表中第一个非空的表达式的值。A,B,C,D可以是字段,也可以是其它函数的返回值或者表达式的值,如果如果所有的
阅读全文
摘要:SQL> desc user_constraints Name Null? Type ----------------------------------------- -------- ---------------------------- OWNER VARCHAR2(30) CONSTRAINT_NAME NOT NULL VARCHAR2(30) CONSTRAIN...
阅读全文
摘要:0、表空间 SQL>select username,default_tablespace from user_users; 查看当前用户的角色 SQL>select * from user_role_privs; 查看当前用户的系统权限和表级权限 SQL>select * from user_sys_privs; SQL>select * from user_tab_privs; 查看用户下所有的表 SQL>select * from user_tables; 1、用户 查看当前用户的缺省表空间 SQL>select username,default_tab
阅读全文
摘要:Oracle中start with...connect by prior子句用法 connect by 是结构化查询中用到的,其基本语法是:select ... from tablename start with 条件1connect by 条件2where 条件3;例:select * from table start with org_id = 'HBHqfWGWPy' connect by prior org_id = parent_id; 简单说来是将一个树状结构存储在一张表里,比如一个表中存在两个字段:org_id,parent_id那么通过表示每一条记录的paren
阅读全文
摘要:insert first/all利用insert first/all使得INSERT语句可以同时插入多张表,还可以根据判断条件来决定每条记录插入到哪张或哪几张表中。insert first/all语法[ ALL | FIRST ]WHEN condition THEN insert_into_clause [values_clause][insert_into_clause [values_clause]]...[WHEN condition THEN insert_into_clause [values_clause][insert_into_clause [values_clause]].
阅读全文
摘要:权限管理主要涉及三个概念:用户,角色,权限。在Oracle中对应于三个对象User,Role,Privilege;用户就是具体使用数据库的使用者,包括DBA,开发使用者,角色包含一组相关的权限,可以方便权限的管理,权限可以分为System privilege和Object privilege,系统权限主要是针对数据库级别的,而对象权限主要是针对数据库的对象的级别。简单的类比:张老师,王同学是User;老师,学生是角色;教课,上课等等就是权限。具体操作:create user user1 identified by user1;alter user user1 identified by tes
阅读全文
摘要:因为很少用到, 所以几乎忘记了这几个函数, 不过它们还是很有用的使用它们可以大大简化一些SQL文的语法, 至于效率问题,如CCW所说它们和EXISTS, IN 之类没有什么差别, 而且要具体问题具体分析其中ANY和SOME在意思上是相同的,可以相互替代.举几个例子来说明ALL和ANY的用法1. SELECT * FROM TABLEA WHERE FLD > ALL(SELECT FLD FROM TABLEA)这相当于SELECT * FROM TABLEA WHERE FLD > (SELECT MAX(FLD) FROM TABLEA)2. SELECT * FROM TAB
阅读全文
摘要:System:允许用户执行特定的数据库操作或某类数据库操作,例如,创建表空间的权限就是一种系统权限。Object:允许用户对特定对象(如表、视图、序列、过程、函数或程序包)执行特定的操作。oracle有100多种不同的系统权限。系统权限可分为以下几类:1)允许执行系统范围操作的权限;如CREATE SESSION,CREATE TABLESPACE2)允许管理用户自己方案中的对象的权限;如CREATE TABLE3)允许管理任何方案中的对象的权限;如CREATE ANY TABLE可使用DDL命令GRANT和REVOKE控制权限,这两个命令为用户或角色添加和撤消系统权限。系统权限举例:图1授予
阅读全文
摘要:INTERVAL数据类型用来存储两个时间戳之间的时间间隔。可以指定years and months,或者days,hours,minuts,seconds之间的间隔。ORACLE支持两种INTEVAL类型,它们分别是YEAR TO MONTH和DAY TO SECOND。每个类型都包含leading field和trailing field。主参数定义要被计算的date或者time,副参数定义最小增长量。一、INTERVAL YEAR TO MONTH声明INTERVAL YEAR TO MONTH的语法是:其中:'INTEGER[-INTEGER],为leading field以及可
阅读全文
摘要:where -->group by --> having -->order by使用 HAVING 子句选择行 HAVING 子句对 GROUP BY 子句设置条件的方式与 WHERE 子句和 SELECT 语句交互的方式类似。WHERE 子句搜索条件在进行分组操作之前应用;而 HAVING 搜索条件在进行分组操作之后应用。HAVING 语法与 WHERE 语法类似,但 HAVING 可以包含聚合函数。HAVING 子句可以引用选择列表中出现的任意项。 下面的查询得到本年度截止到目前的销售额超过 $40,000 的出版商: USE pubs SELECT pub_id, to
阅读全文
摘要:1、创建序列Oracle中的序列号顾名思义就是创建一个序列号,可以在插入或者更新的时候调用,相当于是一个生成器创建语法:create sequence myseincrement by 1 --增长度start with 1 --从哪里增加,就是说下一个获取的值从这个值开始nomaxvalue --不设置最大值 对应的:maxvalue 30、order --指定一定往下增加nocycle --不循环,CYCLE和NOCYCLE 表示当序列生成器的值达到限制值后是否循环cache 10 --CACHE(缓冲)定义存放序列的内存块的大小,默认为20。NOCACHE表示不对序列进行内存缓冲。对序列
阅读全文
摘要:NOT ALLOWED:当前的数据库不是带有备用数据库的主数据库PREPARING DICTIONARY:该逻辑备用数据库正在向一个主数据库和其他备用数据库发送它的重做数据,以便为切换做准备PREPARING SWITCHOVER:接受用于切换的重做数据时,逻辑备用配置会使用它RECOVERY NEEDED:备用数据库还没有接收到切换请求SESSIONS ACTIVE:在主数据库中存在活动的SQL会话;在继续执行之前必须断开这些会话SWITCHOVER PENDING:适用于那些已收到主数据库切换请求但是还没有处理该请求的备用数据库SWITCHOVER LATENT:切换没有完成并返回到主数据
阅读全文
摘要:1.视图的概述视图其实就是一条查询sql语句,用于显示一个或多个表或其他视图中的相关数据。视图将一个查询的结果作为一个表来使用,因此视图可以被看作是存储的查询或一个虚拟表。视图来源于表,所有对视图数据的修改最终都会被反映到视图的基表中,这些修改必须服从基表的完整性约束,并同样会触发定义在基表上的触发器。(Oracle支持在视图上显式的定义触发器和定义一些逻辑约束)2.视图的存储 与表不同,视图不会要求分配存储空间,视图中也不会包含实际的数据。视图只是定义了一个查询,视图中的数据是从基表中获取,这些数据在视图被引用时动态的生成。由于视图基于数据库中的其他对象,因此一个视图只需要占用数据字典中保.
阅读全文
摘要:start with 子句,用于规定分级结构中的根行。 connect by 子句,用于规定分级结构中父行与子行之间的关系。 nocycle 参数,用于指定oracle在分级结构存在回路的情况时,依然返回结构行。 在分级查询中,在条件(指定父子关系)中的一个表达式(父或子)必须由prior操作符进行限定,用来指定父子关系中的父。 ... PRIOR expr = expr or ... expr = PRIOR expr 关于prior我个人的理解,假设有关系 R(id, pid),有如下数据: IDPID1021304152 select * from R start...
阅读全文
摘要:子查询可以独立执行的就是非相关子查询,否则是相关子查询子查询:嵌套在其他查询中的查询称之。子查询又称内部,而包含子查询的语句称之外部查询(又称主查询)。所有的子查询可以分为两类,即相关子查询和非相关子查询1. 非相关子查询是独立于外部查询的子查询,子查询总共执行一次,执行完毕后将值传递给外部查询。2. 相关子查询的执行依赖于外部查询的数据,外部查询执行一行,子查询就执行一次。故非相关子查询比相关子查询效率高ms对于相关子查询的解释:许多查询都可以通过执行一次子查询并将得到的值代入外部查询的 WHERE 子句中进行计算。在包括相关子查询(也称为重复子查询)的查询中,子查询依靠外部查询获得值。这意
阅读全文
摘要:标准规定,约束可以是deferrable或not deferrable(默认)。 not deferrable 约束在每一个DML语句后检查; deferrable 约束可以在每一个insert,delete,或update(即时模式)后立即检查,或者在事务末尾检查(延迟模式) 当没有按特定顺序执行数据加载时,这项功能特别有用——它允许先把数据载入子表,然后再装入父表。 另一种用法是在加载不符合某个check约束的数据之后,对其进行适当的更新。 语法如下: [ [not] deferrable [initially {immediate | deferred} ] ] 或 [ [initi..
阅读全文
摘要:oracle insert语句的扩展 向一个表发散弹枪: ⑴ insert into table_name [(column[,column...])] select_statement 每次只能插入一个表,但性能上比写多条insert语句要高。另外,oracle还提供create table table_name as select ...,as不可少!实现直接创建并且插入表,依赖于后面的select语句的结果,如:create table new_table as select * from source_table where 1=0 案例: ...
阅读全文
摘要:一、问题现场有一张大数据量的分区表,数据量在10G以上。因某种原因需要删除其中的某些字段。如果直接用alter table1 drop (column1,column2); 或者alter table1 drop column column1;和alter table1 drop column column2; 的话,需要执行很长时间,这期间该表被锁,会影响到其它应用。二、解决方法使用set unused,等系统空闲时再drop unused。1.alter table table1 set unused (column1,column2);或者alter table table1 set u
阅读全文
摘要:--======================-- RMAN备份详解--======================一、数据库备份与RMAN备份的概念1.数据库完全备份:按归档模式分为归档和非归档归档模式打开状态,属于非一致性备份关闭状态,可以分为一致性和非一致性非归档模式打开状态,非一致性备份无效关闭状态,一致性备份,非一致性备份不被推荐2.RMAN备份RMAN使用服务器会话来完成备份操作,从RMAN客户端连接到服务器将产生一个服务器会话RMAN备份内容包括:整个数据库,表空间,数据文件,指定的数据文件,控制文件,归档日志文件,参数文件等3.RMAN备份的类型完整备份(full)或增量备份
阅读全文
摘要:用some,any和all对子查询中返回的多行结果进行处理。下面我们来简单介一下这几个关键词的含义。Some在此表示满足其中一个的意义,是用or串起来的比较从句。Any也表示满足其中一个的意义,也是用or串起来的比较从句,区别是any一般用在非“=”的比较关系中,这也很好理解,英文中的否定句中使用any肯定句中使用sone,这一点是一样的。All则表示满足其其中所有的查询结果的含义,使用and串起来的比较从句。下面是一些例子找出员工中,只要比部门号为10的员工中的任何一个员工的工资高的员工的姓名个工资。也就是说只要比部门号为10的员工中的那个工资最少的员工的工资高就满足条件。select en
阅读全文
摘要:“子查询”就是查询中嵌套着另一个查询,也即通过SELECT语句的嵌套使用形成子查询。当我们不知道特定的查询条件时,可以用子查询来为父查询提供查询条件以获得查询结果。ORACLE中常见的子查询有下面几类:A、单行子查询(Single-row subqueries)。B、多行子查询(Multirow subqueries)。C、内部视图型子查询(Inline views)。D、多列子查询(Multiple-column subqueries)。在我们继续详细讨论子查询之前,先看看写子查询的一些特别要注意的地方:A、子查询必须放在括号内。B、子查询也必须放在比较操作符号的右边。C、子查询最多可以嵌套
阅读全文
摘要:1、表的主键、外键必须有索引;2、数据量超过300的表应该有索引;3、经常与其他表进行连接的表,在连接字段上应该建立索引;4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引;5、索引应该建在选择性高的字段上;6、索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引;7、复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替: A、正确选择复合索引中的主列字段,一般是选择性较好的字段; B、复合索引的几个字段是否经常同时以AND方式出现在Where子句中?单字段查询是否极少甚至没有?如果是,则可以建立复合索引;否则考虑单字段索引; C、如果复合索引中包含的字段...
阅读全文
摘要:oracle关于Create table中的using index语句在9i之后,创建一个PK的时候,是自动创建一个与之对应的唯一索引的。如果不特别指定,那么这个索引的表空间和表格的空间是一样的,但是我们不建议放在一起。一般的语句形如: Create table test(name varchar2(10)); alter table test add primary key(name) tablespace Yspace;按照以上的方式来处理,有两个不好的地方:第一是无法指定索引的名称,其次无法指定索引存放的表空间。为了避免这种错误,最好按照以下方式来定义表格和表空间:Create tabl
阅读全文
摘要:如果你某个字段为空,但是你想让这个字段显示0nvl(字段名,0),就是当你选出来的时候,这个字段虽然为空,但是显示的是0,当然这个0也可以换成其他东西,如:1,2,3……Oracle中函数以前介绍的字符串处理,日期函数,数学函数,以及转换函数等等,还有一类函数是通用函数。主要有:NVL,NVL2,NULLIF,COALESCE,这几个函数用在各个类型上都可以。下面简单介绍一下几个函数的用法。在介绍这个之前你必须明白什么是oracle中的空值null1.NVL函数NVL函数的格式如下:NVL(expr1,expr2)含义是:如果oracle第一个参数为空那么显示第二个参数的值,如果第一个参数的值
阅读全文
摘要:redo与undo2009-10-28 20:09:05|分类:学习|字号订阅redo(重做信息)是Oracle在在线(或归档)重做日志文件中记录的信息,万一出现失败时可以利用这些数据来“重放”(或重做)事务。Oracle维护着两类重做日志文件:在线(online)重做日志文件和归档(archived)重做日志文件。数据库所在主机掉电,导致实例失败,Oracle会使用在线重做日志将系统恰好恢复到掉电之前的那个时间点。如果磁盘驱动器出现故障(这是一个介质失败),Oracle会使用归档重做日志以及在线重做日志将该驱动器上的数据备份恢复到适当的时间点。归档重做日志文件实际上就是已填满的“旧”在线重做
阅读全文
摘要:34. View the Exhibit and examine the structure of the ORDERS and ORDER_ITEMS tables.Evaluate the following SQL statement:SELECT oi.order_id, product_id, order_dateFROM order_items oi JOIN orders oUSING(order_id);Which statement is true regarding the execution of this SQL statement?A. The statement w
阅读全文
摘要:读本文之前请注意:1. 本文的目标是提供一些vim的使用技巧,利用这些技巧可以提高vim的操作效率。部分技巧在vi上也可以使用,但是现在基本上都是用vim了。2. 本文是整理和总结使用技巧,而非讲解vim入门,因此不会涉及最基本的使用,例如如何上移或下移光标,对此类操作请参阅任何一本vim或者vi教程。3. 本文阅读对象是了解了vim的基本操作,而希望高效地利用vim进行工作的人。熟练使用vim的人自然不必细读,如果能留下您的宝贵意见,本人将感激不尽。4. 本文由本人搜集整理,转载请注明出处本文一般情况下用(里边的字母一般大小写无所谓,除非特别注明)表示按住ctrl同时按下相关字母,命令前加一
阅读全文
摘要:外表(external table)就像普通的表对像一样,可以select等,只是它是只读的,数据库中只保存了表结构的描述,表数据却没有存放在数据库内,而是存放在了文件系统上。当用户想偶尔使用数据库外的结构化数据时,用起外表来就非常方便,甚至比sqlldr都要方便的多外部表是在数据库以外的文件系统上存储的只读表,例如EXCEL、CSV等文件定义Externaltablesaccessdatainexternalsourcesasifitwereinatableinthedatabase.Youcanconnecttothedatabaseandcreatemetadatafortheexter
阅读全文
摘要:在介绍GROUP BY 和 HAVING 子句前,我们必需先讲讲sql语言中一种特殊的函数:聚合函数,例如SUM, COUNT, MAX, AVG等。这些函数和其它函数的根本区别就是它们一般作用在多条记录上。SELECT SUM(population) FROM bbc 这里的SUM作用在所有返回记录的population字段上,结果就是该查询只返回一个结果,即所有国家的总人口数。 通过使用GROUP BY 子句,可以让SUM 和 COUNT 这些函数对属于一组的数据起作用。当你指定 GROUP BY region 时, 属于同一个region(地区)的一组数据将只能返回一行值,也就是说,..
阅读全文
摘要:Oracle With Clause 本文参考网址:http://psoug.org/reference/with.html http://www.oracle-base.com/articles/misc/with-clause.php http://gennick.com/with.html------Understanding the WITH Claus 参考文档下载地址:http://ishare.iask.sina.com.cn/f/21674385.html TheWITH query_name clause lets...
阅读全文
摘要:83. View the Exhibit and examine the structure of the ORDERS table.You have to display ORDER_ID, ORDER_DATE, and CUSTOMER_ID for all thoseorders that were placed after the last order placed by the customer whoseCUSTOMER_ID is 101.Which query would give you the desired output?A. SELECT order_id, orde
阅读全文
摘要:NEXT_DAYThe NEXT_DAY function returns the date of the first instance of a particular day of the week that follows the specified date.SyntaxDescription of the illustration next_day.gifPurposeNEXT_DAYreturns the date of the first weekday named bycharthat is later than the datedate. The return type is
阅读全文
摘要:V$FLASHBACK_DATABASE_STATV$FLASHBACK_DATABASE_STATdisplays statistics for monitoring the I/O overhead of logging flashback data.This view also displays the estimated flashback space needed based on previous workloads.ColumnDatatypeDescriptionBEGIN_TIMEDATEBeginning of the time intervalEND_TIMEDATEEn
阅读全文
摘要:在进行数据库恢复的过程中,很多时候我们需要知道Oracle数据库的DBID,通常有以下几种方法可以获得数据库的DBID.1.查询v$database获得由于DBID在控制文件和数据文件中都存在记录,所以如果能够mount数据库就可以查询v$database视图获得.SQL> alter database mount;Database altered.SQL> select dbid from v$database; DBID----------31520292242.在nomount状态时如果数据库配置了自动控制文件备份(Oracle9i),并且名称是缺省的,那么我们可以从自动备份
阅读全文
摘要:Flashback技术是以Undosegment中的内容为基础的,因此受限于UNDO_RETENTON参数。要使用flashback的特性,必须启用自动撤销管理表空间。在Oracle10g中,Flashback家族分为以下成员:FlashbackDatabase,FlashbackDrop,FlashbackQuery(分FlashbackQuery,FlashbackVersionQuery,FlashbackTransactionQuery三种)FlashbackTable。一.FlashbackDatabaseFlashbackDatabase功能非常类似与RMAN的不完全恢复,它可以把
阅读全文
摘要:2.4.3 Flashback DropFlashback Drop是从Oracle 10g开始出现的,用于恢复用户误删除的对象(包括表,索引等),这个技术依赖于Tablespace Recycle Bin(表空间回收站),这个功能和windows的回收站非常类似。Flashback不支持sys用户. system表空间下的对象,也不能从回收站里拿到。故使用SYS或者SYSTEM用户登陆时,show recyclebin为空。Flashback Drop是基于Tablespace RecycleBin来实现恢复的。它只支持闪回与table相关连的对象,比如表,索引,约束,触发器等。如果是函数或
阅读全文

浙公网安备 33010602011771号