当前位置:文档之家› Oracle学习笔记

Oracle学习笔记

Oracle学习笔记
Oracle学习笔记

Oracle 学习笔记

Oracl e学习笔记(1)

这是我的Oracle学习笔记系列的第一篇,主要总结了Oracle的体系结构,要学好Oracle,就要先了解Oracle的运行机制和原理。把今天学习的内容整理了一个图,备忘,点击可放大。

另外,还有几个语句(sql*plus):

SYS用户登录

SQL> / as sysdba;

解锁scott用户

SQL> alter user scott identified by tiger account unlock;

切换到scott用户

SQL> conn scott/tiger;

Null值参与列计算

SQL> select ename, sal, comm, (sal+nvl(comm,0)) as salary from emp; sql*plus中用变量查询

SQL> variable va number;

SQL> declare :va:=7788;

SQL> select empno,ename,sal from emp where empno = :va;

看内存中包含"select * from"的SQL语句

SQL> select sql_text from v$sqlarea where sql_text like '%select * from%'; 看内存(SGA)资源情况

SQL> select * from v$sgastat;

刷内存共享池

SQL> alter system flush shared_pool;

强制重启实例

SQL> startup force;

在会话中修改日期格式

SQL> alter session set nls_date_format='yyyy-mm-dd';

如果要永久修改,windows下可在注册表中建立一个名为 nls_date_format 的DWORD值,UNIX/LINUX直接配置环境变量。

关于共享池和SQL语句同性能的关系:

由于共享池中缓存最近SQL语句的特性,所以在构建SQL语句时要特别注意,大小写不同、空格、顺序不同都会被Oracle认为是不同的SQL语句,只有完全一样的SQL语句才会从共享池中保存的SQL语句中重复使用,而由于编写SQL语句的不规范将会产生性能问题,所以要做到:

1、尽量规范SQL语句,用统一的格式,大小写、顺序、空格、缩进、变量名格式都有相应的规范并严格遵守;

2、在大量的同一格式的SQL语句查询时(比如只有where条件的值不同),应尽量使用变量,否则共享池将被大量的垃圾查询占满而使常用的SQL不被缓存,影响效率;

3、PL/SQL或者是复杂的数据查询,可以写存储过程,用带进参数的方式保证共享池中的SQL语句一致;

4、适当调整 shared_pool_size 的大小。

一句话观点:“备份和恢复数据库应该用物理备份的方式而不要用导出和导入功能,除非你的数据库数据量很少,而且都不太重要。”

Oracle学习笔记(2)

今天的内容有点多,分成了两篇,这里是比较简单的第一篇,是总结安装、启动和关闭的过程,先上图,点击放大。

一些SQL命令和语句:

建立数据库时加cache子句可以把表同时建立在内存中,读取时优先读取该表:SQL> create table emp1 cache as select * from emp;

查看内存中的表:

SQL> select table_name, cache from user_tables;

查询参数信息:

/* show parameter 参数类型;*/

SQL> show parameter process;

/* select * from v$parameter where name like '%参数类型%' */

SQL> select * from v$parameter where name like '%session%';

生成pfile和spfile:

/*从spfile生成pfile*/

SQL> create pfile from spfile;

/*从pfile生成spfile*/

SQL> create spfile from pfile;

按步骤启动数据库:

SQL> startup nomount; /*仅启动例程*/

SQL> alter database mount; /*再加载数据库*/

SQL> alter database open [read only] /*再打开数据库(只读模式)*/

启动时指定参数文件:

SQL> startup pfile='/database/initSID2.ora';

以受限方式启动:

SQL> startup restrict;

把数据库设置为受限模式:

SQL> alter system enable restricted;

修改参数文件内容:

SQL> alter system set control_files='/control01.ctl' scope=spfile;

关于Oracle的故障查找:

1、发生故障时的第一步要做的是备份当前的数据,这叫保留事故现场,以免处理故障失败时无法再现初始故障。

2、分步骤启动,确定故障所在:如果第1步失败,则要先检查共享内存、参数文件配置等;如果在第2步失败,则说明极有可能是控制文件出错,要先检查警告文件中的警告信息,恢复控制文件再说;如果在第3步失败,则要检查数据文件和日志文件是否完整可用,也可根据警告文件中的警告信息来排查故障。

3、确认三大核心文件(控制文件、数据文件、日志文件)的检查点是否一致,这是数据库能启动的唯一标志。

一句话观点:“Oracle中的绝大部分故障,都可以从启动的过程中分析出故障的原因并加以解决。”

Oracle学习笔记(3)

这一篇是总结Oracle的数据库管理(database),重点是其物理存储部分。图在下面,点击放大。

一些SQL命令:

手工切换重做日志文件组:

SQL> alter system switch logfile;

添加联机重做日志文件组:

SQL> alter database add logfile group 4

('/oradata/log4a.log','/oradata/log4b.log') size 10M;

/*其中的10M是指每个日志成员文件的大小*/

添加联机重做日志文件组成员:

SQL> alter database add logfile member '/oradata/log4c.log' to group 4, '/oradata/log3c.log' to group 3;

删除联机重做日志文件组(当前组不能删除,至少保留两组):

SQL> alter database drop logfile group 4;

删除联机重做日志文件组成员(只有一个成员时不能删除):

SQL> alter database drop logfile member '/oradata/log4a.log';

清除日志文件内容:

SQL> alter database clear logfile '/oradata/log3c.log';

关于三大核心文件的几点注意事项:

1、控制文件最多可以有8个,多个控制文件最好放在不同的物理磁盘上,有一个出错时可以从其他文件恢复。

2、重做日志文件组是按顺序写、循环写。至少需要两个组,可以有多个组,每个组可以有多个成员,每个成员文件最好也放在不同的物理磁盘上。当归档模式下日志文件占用空间过大时,可以删除部分组来节省空间,但记住从控制文件中删除之后还必须删除物理文件才能腾出空间。

3、不可以删除当前正在使用的重做日志文件组,所以要删除时可手动切换(switch)当前日志文件组后再删除。

4、不可以删除重做日志文件组的最后一个成员,若要删除,可直接删除该组。

5、必须要保留两个重做日志文件组支持正常运行,如果要想删除其中一组是不可能的,但可以清除(clear)其中的数据。

一句话观点:“成功启动Oracle数据库的唯一条件是三大核心文件(控制文件、数据文件、日志文件)的检查点一致。”

Oracle和SQL基础

1.Windows下安装、卸载Oracle的相关事项:

(1).Oracle服务管理:

Oracle10g运行时需要800MB左右的内存,安装完Oracle后,会发现在Windows 服务中自动开启了很多个Oracle相关的服务,其实Oracle一般只需要启动Oracle和Oracle监听两个服务就可以了,将其他的Oracle服务停止,可以减轻内存占用量,加快机器运行速度。

(2).卸载Oracle时注意事项:

a.停止所有的Oracle服务。

b.使用Oracle卸载工具oracle universal installer卸载Oracle。

c.修改windows注册表,删除Oracle相关信息:

Oracle软件相关键值:HKEY_LOCAL_MACHINE/SOFTWARE/Oracle。

Oracle服务相关键值:

HKEY_LOCAL_MACHINE/SYSTEM/CurrentControl/Set/Services。

Oracle事件日志键值:

HKEY_LOCAL_MACHINE/SYSTEM/CurrentControl/Set/EventLog/Application。

d.删除Oracle系统目录。

e.删除Oracle环境变量。

f.删除程序菜单项中的oracle项。

g.重启机器后删除oracle的工作目录。

注意:Windows环境下卸载Oracle一定要按上述步骤,否则有可能卸载失败,或者重新安装失败。

2.Oracle安装后默认是没有安装图形化操作工具的,如果使用图形化操作界面,可以安装:

(1).Oracle Home Client(Oracle官方提供的一个用java swing做的图形化界面管理工具,比较庞大),侧重于Oracle日志归档、高级复制、方案优化等底层管理。

(2).Sql developer:Oracle提供一款也是基于Java开发的图形化界面工具,侧重于数据管理和Sql语句编写执行等。

(3).PL/SQL developer:和sql developer类似,侧重于Oracle的pl sql语句编写和执行。

(4).Navicat Lite:是一款比较优秀的图形化数据库管理软件,分为商业版和个人免费版,功能强大,即可提供底层管理,也同时提供了强大的数据管理、sql语句编写和执行等功能。

3.使用Oracle的plsql命令行执行注意事项:

(1).Oracle数据库插入、删除和更新操作后必须使用“commit”命令提交事务后,才能使数据库真正发生改变。

(2).Oracle数据库对SQL语句的大小写不敏感,同时也支持运算符。日期型的数据类型也可以进行算术运算,日期型数据类型直接和整数运算相当于加减多少天。

(3).查询语句中使用字符串和日期时,要用单引号(‘)括起来,字符串大小写敏感,日期类型格式敏感,缺省日期格式为:‘DD-MON-YY‘,获取当前缺省日期格式sql语句为:select sysdate from dual。

4.Oracle的字符串拼接符:

“||”是Oracle的字符串拼接符。相当于java中的字符串拼接符“+”。

5.Oracle查询排序:

使用order by 列名1,列名2……

默认按升序(ASC)排列,可以指定为降序(DESC)排列。

注意:升序(ASC)时null在最后,降序(DESC)时null在最前。

6.SQL语句通配符和运算符:

(1).”%”:表示0个或多个字符。

(2).”_”:表示1个字符。

(3).特殊字符使用ESCAPE进行转义,单引号(‘)使用两个单引号转义。

(4).运算符的优先级由高到低为:Not、And、Or。

7.Oracle数据库的函数:

Oracle数据库的函数都有返回值,

(1).单行函数:

指对每一返回行起作用的函数,包括字符、数值、日期转换和通用函数。

a.字符函数:

lower():将字符转换为小写。

upper():将字符转换为大写。

initcap():字符单词首字母大写。

concat():字符串连接。

instr():定位字符串。

lpad():左侧填充。

rpad():右侧填充。

trim():过滤首尾空格。

replace():字符替换。

b.数值函数:

abs():取绝对值。

round():四舍五入。

trunc():截断。

ceil():向上取整。

floor():向下取整。

sign():判断正负。

c.数值和字符串转换函数:

数字——>字符串:

to_char(number)

to_char(number, ‘模式串’)

字符串——>数字:

to_number()

to_number(char, ‘模式串’)

d.日期函数:

日期可以直接加减整数,两个日期之间也可以直接相减。

round():四舍五入到月。

日期——>字符串转换:

to_char()确实转换为“dd-mm-yy”格式。

to_char(date, ‘日期格式’)转换为模式串指定格式。

字符串——>日期:

to_date()

to_date(char, ‘日期格式’)按模式串指定格式进行解析。

e.通用函数:

nvl():将空值null替换为特定的缺省值,适用于字符、数字、日期等。

nvl(exp1, exp2):若exp1值为null,则返回exp2的值。

nvl2():用于实现条件表达式功能。

nvl2(exp1, exp2, exp3):若exp1的值不为null,则返回exp2的值,否则返回exp3的值。

nullif():用于数据等价性比较,并根据比较结果返回null或其中一个比较的数值。

nullif(exp1, exp2):若exp1与exp2相等,则返回null,否则返回exp1的值。

coalesce():用于实现数据接合功能。

coalesce(exp1, exp2):依次考察各参数表达式,遇到非null值即停止并返回该值。

(2).分组函数:

针对多行记录只返回一个结果(通常忽略空值)。

avg():计算平均值。

count():计算记录数。

max():计算最大值。

min():计算最小值。

sum():求和。

注意:过滤分组函数必须只能使用having而不能使用where,分组函数最多只可嵌套两层。

8.Oracle中实现多路分支条件:

(1).case表达式可以实现多路分支结构:

case exp when exp1 then return _exp1

when exp2 then return _exp2

……

else _expn

end

(2).decode函数和case表达式类似,也可以实现多路分支:

decode(exp1, search1, result1

,search2, result2

……

default)

9.Oracle中的连接:

(1).外连接(outer join):

外连接可以看到参与连接的某一方中不满足连接条件的记录。外连接运算符为”(+)”。

a.右外连接(right join):

如:where table1.column1(+) = table2.column2。

table1中不满足条件的也可以查询到。

b.左外连接(left join):

如:where table1.column1 = table2.column2(+)。

table2中不满足条件的也可以查询到。

c.交叉连接(cross join):

相当于连接时设置限制条件。

d.自然连接(natural join):

等值连接。

https://www.doczj.com/doc/be1324425.html,ing(列名):

指定列自然连接。

f.on(exp1=exp2):

设置任意连接条件。

(2).内连接(inner join):

内连接只返回满足连接条件的数据。

10.TopN查询:

TopN查询是指查询数据库表中符合查询条件的前N条记录,Oracle通常采用子查询方式来实现TopN查询,具体语法:

select 字段列表

from (select 字段列表 from table order by 排列字段)

where rownum <=n;

注意:子查询中是临时表。

TopN查询常用于数据库分页,如查询表中第10到20条记录:

select * from

(select row num row, a.* from ((select * from table order by 排列字段) a)) where row >=10 and row <= 20;

11.数据库表操作:

(1).复制表数据:

insert into 表名1(列名1,……) select 列名1…… from 表名2;

(2).复制表结构:

Create table 表名1 as select * from 表名2 where 1 <> 1;

(3).数据合并:

merge关键字用于数据合并,若记录在目标表中已存在则更新,否则插入记录。语法:

merge into 表名 using(表/视图/子查询)

on (连接条件)

when matched then

update set ……

when not matched then

insert(列) values(值);

(4).保存点:

保存点savepoint相当于跳转标记,可以回退到指定保存点,实现事务的部分回滚。

(5).方案Schema:

Oracle中的方案Schema相当于其他数据库中的database。

(6).使用子查询创建表:

create table(字段列表) as select ……;

(7).修改表结构:

alter t able add/modify/drop(……)。

注意:只能添加字段,或者修改约束条件,不能修改字段名称,若要修改字段名,则只能先删除再添加。

(8).修改表名称:

rename old_name to new_name;

7. 删除表和数据:

(1).删除表数据:

a.delete from 表名;

b.truncate table 表名;

相同点:

只删除数据库,表结构保留。

区别:

delete是数据操作语言(DML),只清空表中数据,效率低,但是可以撤销回滚。

truncate是数据定义语言(DDL),清空表中所有数据,释放表的存储空间,一旦执行不可回滚撤销。

(2).删除表结构:

drop table 表名;

也是数据定义语言(DDL),数据表的结构和数据都被删除。

8. Oracle中查看表和对象:

Oracle中表、视图、存储过程、触发器等都是对象,可以通过以下方式查看:(1).查看当前用户拥有的所有表名称:

Select table_name from user_tables;

(2).查看当前用户可以访问的所有表名称:

Select table_name from all_tables;

(3).查看当前用户拥有的所有对象的类型:

Select distinct object_type from user_objects;

(4).查看所有用户拥有的所有表名称:

Select table_name from dba_tables;

(5).查看所有对象:

Select * from user_catalog;

9. Oracle的5种约束:

(1).not null:字段值非空约束。

(2).unique:字段值唯一约束。

(3).primary key:主键约束。

字段级:字段名类型 primary key;

表级:primary key(列名);

(4).foreign key:外键约束。

字段级:字段名 references 表名(字段名);

表级:foreign key(列名) references 表名(列名);

(5).check:自定义约束。

15.Oracle数据库中的动态替换变量:

动态替换变量是指在运行时由外部传入替换的变量。

(1).’&变量名’:

如,select * from emp where empno = &a;

注意:字符和日期类型的替换变量需要使用单引号(‘)引起来。

(2).使用define关键字预先定义动态变量:

语法:define 变量名= ……

如,select * from emp where empno = &变量名;

(3).使用’&&变量名’可以重复引用动态变量,而不用再次定义。

16.视图:

数据库的视图是符合某种特定查询条件的逻辑表,而非物理存在的表结构,用视图可以方便地进行访问权限控制等。

(1).创建视图:

create view 视图名 as 查询字句;

注意:在创建视图时,加上with check option可以限制视图条件。

(2).修改视图:

create or replace view 视图名

17.序列:

Oracle数据库中,要使字段值自增,是通过一个叫做序列(sequence)来控制的。

(1).创建序列:

create sequence 序列名

increment by 1

start with 1;

(2).修改序列:

alter sequence 序列名……;

注意:序列的起始序号不能修改。

(3).删除序列:

drop sequence 序列名;

(4).使用序列:

select 序列名,nextVal from dual ;

18.同义词:

Oracle中同义词synonym是给某个对象名一个别名。

语法:create public/private synonym 同义词名for ……

19.Oracle的权限管理:

(1).授权:

grant 权限1,权限, …… to user | role | public

[with admin option](权限可以传递)

(2).更改口令:

alter user 用户名

identified by 口令;

(3).授予对象权限:

grant 对象权限 on 对象to user | role ……

[with grant option](传递权限)

(4).将某个表上所有权限授予某个用户:

grant all on 表名 to 用户名

(5).授予表中某列权限给某用户:

grant 权限(列名) on 表名 to 用户名

注意:只有插入和更新权限可以限制到列,其他权限不行。

(6).回收权限:

revoke 权限 on 对象from user | role ……

20.使用Database links建立远端数据库连接:

oracle系统表和视图说明

1.视图的概述 视图其实就是一条查询sql语句,用于显示一个或多个表或其他视图中的相关数据。视图将一个查询的结果作为一个表来使用,因此视图可以被看作是存储的查询或一个虚拟表。视图来源于表,所有对视图数据的修改最终都会被反映到视图的基表中,这些修改必须服从基表的完整性约束,并同样会触发定义在基表上的触发器。(Oracle支持在视图上显式的定义触发器和定义一些逻辑约束) 2.视图的存储 与表不同,视图不会要求分配存储空间,视图中也不会包含实际的数据。视图只是定义了一个查询,视图中的数据是从基表中获取,这些数据在视图被引用时动态的生成。由于视图基于数据库中的其他对象,因此一个视图只需要占用数据字典中保存其定义的空间,而无需额外的存储空间。 3.视图的作用 用户可以通过视图以不同形式来显示基表中的数据,视图的强大之处在于它能够根据不同用户的需要来对基表中的数据进行整理。视图常见的用途如下: 通过视图可以设定允许用户访问的列和数据行,从而为表提供了额外的安全控制 隐藏数据复杂性 视图中可以使用连接(join),用多个表中相关的列构成一个新的数据集。此视图就对用户隐藏了数据来源于多个表的事实。 简化用户的SQL 语句 用户使用视图就可从多个表中查询信息,而无需了解这些表是如何连接的。 以不同的角度来显示基表中的数据 视图的列名可以被任意改变,而不会影响此视图的基表 使应用程序不会受基表定义改变的影响 在一个视图的定义中查询了一个包含4 个数据列的基表中的3 列。当基表中添加了新的列后,由于视图的定义并没有被影响,因此使用此视图的应用程序也不会被影响。 保存复杂查询 一个查询可能会对表数据进行复杂的计算。用户将这个查询保存为视图之后,每次进行类似计算只需查询此视图即可。

Oracle 11gR2 概念 第6章 数据字典和动态性能视图

Previous Next View PDF 6 Data Dictionary and Dynamic Performance Views Previous Next View PDF 第6章数据字典和动态性能视图 This chapter describes the central set of read-only reference tables and views of each Oracle database, known collectively as the data dictionary. The chapter also describes the dynamic performance views, which are special views that are continuously updated while a database is open and in use. 本章介绍了每个 Oracle 数据库都具有的只读参考表和视图中最重要的部分,统称为数据字典。本章还介绍了动态性能视图,它们是一些会在数据库处于打开状态时不断更新的特殊视图。 This chapter contains the following sections: 本章包含以下各节: ?Overview of the Data Dictionary o Contents of the Data Dictionary o Storage of the Data Dictionary o How Oracle Database Uses the Data Dictionary ?Overview of the Dynamic Performance Views o Contents of the Dynamic Performance Views o Storage of the Dynamic Performance Views ?Database Object Metadata ?数据字典概述 o数据字典的内容 o数据字典存储 o Oracle数据库如何使用数据字典?动态性能视图概述 o动态性能视图的内容 o动态性能视图的存储 ?数据库对象元数据 Overview of the Data Dictionary 数据字典概述 An important part of an Oracle database is its data dictionary, which is a read-only set of tables that provides administrative metadata about the database. A data dictionary contains information such as the following: Oracle 数据库的一个重要部分是它的数据字典,它是一组提供有关数据库管理元数据的只读表。数据字典包含如下信息: ?The definitions of every schema object in the database, including default values for columns and integrity constraint information ?在数据库中每个模式对象的定义,包括列的默认值和完整性约束信息 ?The amount of space allocated for and currently used by the schema objects ?分配给模式对象的空间量及当前已使用量 ?The names of Oracle Database users, privileges and roles granted ?Oracle数据库用户的名称、授予用户的权限和角色、和与用户相关

Oracle创建视图

Oracle创建视图 在本练习中,将在HR模式中练习如何创建视图,查询视图的定义,并对视图进行更新。 (1)创建一个视图EMPLOYEES_IT,该视图是基于HR模式中的EMPLOYEES表,并且该视图只包括那些部门为IT的员工信息。在创建视图时使用WITH CHECK OPTION,防止更新视图时,输入非IT部门的员工信息。 create or replace view employees_it as select * from employees where department_id =( select department_id from departments where departments.department_name='IT') with check option; (2)创建一个联接视图EMP_DEPT,它包含EMPLOYEES表中的列和DEPARTMENTS 表中的DNAME列。 create or replace view emp_dept as select t1.employee_id,t1.first_name,https://www.doczj.com/doc/be1324425.html,st_name,t1.email, t1.phone_number,t1.hire_date,t1.job_id,t1.salary,t2.department_name from employees t1,departments t2 where t1.department_id=t2.department_id with check option; (3)Oracle针对创建的视图,只在数据字典中存储其定义。输入并执行如下的语句查看创建的视图定义: select text from user_views where view_name=UPPER('emp_dept'); (4)查看视图各个列是否允许更新。 col owner format a20 col table_name format a20 col column_name format a20 select * from user_updatable_columns where table_name=UPPER('emp_dept');

配置和自动启动Oracle的数据库和监听

配置和自动启动Oracle的数据库和监听(lsnrctl) 1.设置主机名称 [root@myc ~]# cat /etc/sysconfig/network NETWORKING=yes HOSTNAME=myc 2.设置主机名称与IP地址的对应 [root@myc ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.2.16 myc 3.修改:/u01/app/oracle/network/admin/listener.ora [oracle@myc admin]$ cat listener.ora # listener.ora Network Configuration File: /u01/app/oracle/network/admin/listener.ora # Generated by Oracle configuration tools. LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = myc)(PORT = 1521)) ) ) ADR_BASE_LISTENER = /u01/app 4.修改:/u01/app/oracle/network/admin/tnsnames.ora [oracle@myc admin]$ cat tnsnames.ora # tnsnames.ora Network Configuration File: /u01/app/oracle/network/admin/tnsnames.ora # Generated by Oracle configuration tools. ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = myc) ) ) 5.lsnrctl 的常用方法

Oracle EBS常用表和视图

fnd_user 系统用户表 fnd_application 应用信息表 FND_PROFILE_OPTIONS_VL 系统配置文件 fnd_menus 菜单 fnd_menu_entries_tl FND_NEW_MESSAGES 消息表 FND_FORM 表单表 FND_CONCURRENT_PROGRAMS_VL 并发程序视图 FND_CONCURRENT_PROGRAMS_TL FND_CONCURRENT_PROGRAMS FND_DESCR_FLEX_COL_USAGE_VL FND_DESCR_FLEX_COL_USAGE_TL FND_DESCR_FLEX_COLUMN_USAGES FND_EXECUTABLES_FORM_V 可执行并发程序视图FND_EXECUTABLES_TL FND_EXECUTABLES FND_DESCRIPTIVE_FLEXS FND_CONC_REQ_SUMMARY_V 并发请求视图FND_CONCURRENT_REQUESTS FND_RESPONSIBILITY 职责表

FND_RESPONSIBILITY_VL 职责FND_USER_RESP_GROUPS 用户职责 fnd_flex_value_sets 值集表 FND_FLEX_VALUES FND_IREP_ALL_INTERFACES 接口表 FND_IREP_CLASSES Fnd_Irep_Classes_Tl fnd_territories_vl 国家视图 fnd_log_messages 日志表 fnd_form_functions 功能 FND_DOCUMENT_SEQUENCES 单据序列 FND_DOC_SEQUENCE_ASSIGNMENTS 序列分配 fnd_id_flexs 关键弹性域定义表 FND_ID_FLEX_STRUCTURES 弹性域结构表 FND_ID_FLEX_SEGMENTS 弹性域段表 fnd_descriptive_flexs 描述性弹性域属性表 FND_DESCR_FLEX_CONTEXTS 弹性域列类别表 FND_DESCR_FLEX_COLUMN_USAGES 弹性域列类别属性表FND_FLEX_VALUE_SETS 值集表 FND_FLEX_VALUES 值表 Fnd_Flex_Values_Tl 值描述表

ORACLE常用SQL语句大全

ORACLE常用SQL语句大全 一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:/mssql7backup/MyNwind_1.dat' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not nul l],..) 根据已有的表创建新表: A:select * into table_new from table_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definition only<仅适用于Oracle> 5、说明:删除表 drop table tablename

6、说明:增加一个列,删除一个列 A:alter table tabname add column col type B:alter table tabname drop column colname 注:DB2DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、添加主键: Alter table tabname add primary key(col) 删除主键: Alter table tabname drop primary key(col) 8、创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、创建视图:create view viewname as select statement 删除视图:drop view viewname 10、几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc] 总数:select count as totalcount from table1 求和:select sum(field1) as sumvalue from table1 平均:select avg(field1) as avgvalue from table1 最大:select max(field1) as maxvalue from table1 最小:select min(field1) as minvalue from table1 11、几个高级查询运算词 A:UNION 运算符 UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。 B:EXCEPT 运算符 EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。 C:INTERSECT 运算符 INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。 注:使用运算词的几个查询结果行必须是一致的。 12、使用外连接

oracle12.2.0.3 监听白名单配置

oracle12.2.0.3 监听白名单配置 出于提高数据安全性等目地,有时需要对 oracle的进行访问限制,允许某些IP连接数据库或拒绝某些IP访问数据库。当然使用防火墙(iptables)也能达到限制的目地,但是从监听端口变更限制仍可生效、只针对oracle自己不和其他端口的限制相混杂和不需要root账号这几方面来说,通过配置sqlnet.ora文件来进行访问限制可能是一种更好的选择。 1.配置sqlnet.ora文件 进入$ORACLE_HOME/network/admin(一般对应的真实路径形如/u01/app/oracle19c/pr oduct/19.2.0/db_1/network/admin)查看是否存在sqlnet.ora文件及是否已配置tcp.val idnode_checking、tcp.invited_nodes、tcp.excluded_nodes项。如果文件存在且已有这几项,则在此基础上修改这几项;如果文件存在但这几项不存在,则在最后追加;如果文件不存在则直接新建。 oracle默认是没有的,我们以没有为例新建该文件,并写入以下内容: tcp.validnode_checking=yes tcp.invited_nodes=(192.168.220.128,127.0.0.1) tcp.excluded_nodes=(192.168.220.1) tcp.validnode_checking:此项是启用IP合法检查,此项是必须配置的,如果不启用其它两项配置了也无效。 tcp.invited_nodes:此项是允许连接数据库的IP地址,多个地址用逗号(半角)隔开,如果启用此项,一定要配上本地地址不然监听无法启动。 tcp.excluded_nodes:此项是不允许连接数据库的IP地址,多个地址用逗号(半角)隔开,如果与tcp.invited_nodes有相同IP,则还是允许该IP访问数据库。 tcp.invited_nodes和tcp.excluded_nodes其实可以只配置一项,当只配tcp.invited_no des时就是白名单,在此项列表中的所有IP允许访问数据库,所有不在此项列表中的所有I P拒绝访问数据库。当只配置tcp.excluded_nodes时,在此项列表中的所有IP拒绝访问数据库,所有不在此项列表中的所有IP允许访问数据库。 2.重新加载使配置生效 如果之前不存在sqlnet.ora则需要重启监听,如果之前存在sqlnet.ora则只需要重新加载配置即可。 重启和reload的区别,应该是监听完全停上和不完全停止的区别,使用stop/start 当前所有已连接的会话会强制断开,reload不会断开已有会话。 重启监听(业务会中断,在不影响业务情况下重启): lsnrctl stop

oracle中以dba_、user_、v$_、all_、session_、index_开头的常用表和视图

oracle中以dba_、user_、v$_、all_、session_、index_开头的常用表和视图(https://www.doczj.com/doc/be1324425.html,/gzz%5Fgzz/blog/item/1f6ef92a67599392033bf6de.html) 2009年08月10日星期一 17:06 oracle中以dba_、user_、v$_、all_、session_、index_开头的常用表和视图dba_开头 dba_users 数据库用户信息 dba_segments 表段信息 dba_extents 数据区信息 dba_objects 数据库对象信息 dba_tablespaces 数据库表空间信息 dba_data_files 数据文件设置信息 dba_temp_files 临时数据文件信息 dba_rollback_segs 回滚段信息 dba_ts_quotas 用户表空间配额信息 dba_free_space 数据库空闲空间信息 dba_profiles 数据库用户资源限制信息 dba_sys_privs 用户的系统权限信息 dba_tab_privs 用户具有的对象权限信息 dba_col_privs 用户具有的列对象权限信息 dba_role_privs 用户具有的角色信息 dba_audit_trail 审计跟踪记录信息 dba_stmt_audit_opts 审计设置信息 dba_audit_object 对象审计结果信息 dba_audit_session 会话审计结果信息 dba_indexes 用户模式的索引信息 user_开头 user_objects 用户对象信息 user_source 数据库用户的所有资源对象信息 user_segments 用户的表段信息 user_tables 用户的表对象信息 user_tab_columns 用户的表列信息 关于这个还涉及到两个常用的例子如下: 1、oracle中查询某个字段属于哪个表 Sql代码 select table_name,owner from dba_tab_columns t where t.COLUMN_NAME like upper('%username%'); select table_name,owner from dba_tab_columns t where t.COLUMN_NAME like

oracle中性能视图V$SYSSTAT小结

V$SYSSTAT中包含多个统计项,这部分介绍了一些关键的v$sysstat统计项,在调优方面相当有用。下列按字母先后排序: 数据库使用状态的一些关键指标: l CPU used by this session:所有session的cpu占用量,不包括后台进程。这项统计的单位是百分之x秒.完全调用一次不超过10ms l db block changes:那部分造成SGA中数据块变化的insert,update或delete操作数这项统计可以大概看出整体数据库状态。在各项事务级别,这项统计指出脏缓存比率。 l execute count:执行的sql语句数量(包括递归sql) l logons current:当前连接到实例的Sessions。如果当前有两个快照则取平均值。l logons cumulative:自实例启动后的总登陆次数。 l parse count (hard):在shared pool中解析调用的未命中次数。当sql语句执行并且该语句不在shared pool或虽然在shared pool但因为两者存在部分差异而不能被使用时产生硬解析。如果一条sql语句原文与当前存在的相同,但查询表不同则认为它们是两条不同语句,则硬解析即会发生。硬解析会带来cpu和资源使用的高昂开销,因为它需要oracle 在shared pool中重新分配内存,然后再确定执行计划,最终语句才会被执行。 l parse count (total):解析调用总数,包括软解析和硬解析。当session执行了一条sql语句,该语句已经存在于shared pool并且可以被使用则产生软解析。当语句被使用(即共享) 所有数据相关的现有sql语句(如最优化的执行计划)必须同样适用于当前的声明。这两项统计可被用于计算软解析命中率。 l parse time cpu:总cpu解析时间(单位:10ms)。包括硬解析和软解析。 l parse time elapsed:完成解析调用的总时间花费。 l physical reads:OS blocks read数。包括插入到SGA缓存区的物理读以及PGA中的直读这项统计并非i/o请求数。 l physical writes:从SGA缓存区被DBWR写到磁盘的数据块以及PGA进程直写的数据块数量。 l redo log space requests:在redo logs中服务进程的等待空间,表示需要更长时间的log switch。 l redo size:redo发生的总次数(以及因此写入log buffer),以byte为单位。这项统计显示出update活跃性。

如何配制listener.ora

listener.ora 是oracle服务器端的网络配置文件,oracle 根据它来配置监听服务。listener.ora可配置多个监听器,每个监听器的文件组成是: SID_LIST_ORCLLISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = d:\oracle\product\10.2.0\db_1) (PROGRAM = extproc) ) (SID_DESC = (GLOBAL_DBNAME = testDB) (ORACLE_HOME = d:\oracle\product\10.2.0\db_1) (SID_NAME = testDB) ) ) ORCLLISTENER = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 20100908-2130)(PORT = 1521)) ) 即由2部分组成: XXXLiSTENER=(DESCRIPTION=xxx):指定一个监听器所对应的服务器地址和端口号

SID_LIST_XXXLISTENER=((SID_LIST =xxx):指定XXXLISTENER所服务的数据库。即XXXLISTENER 将对请求这些数据库(SID)的连接提供监听接待服务。 listener.ora可配置多个监听和多个监听对应数据库(SID). ORCLLISTENER所监听的数据库列表 SID_LIST_ORCLLISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = d:\oracle\product\10.2.0\db_1) (PROGRAM = extproc) ) (SID_DESC = (GLOBAL_DBNAME = testDB) (ORACLE_HOME = d:\oracle\product\10.2.0\db_1) (SID_NAME = testDB) ) ) LISTENER所监听的数据库 SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = Oracle8)

Oracle常用数据字典表(系统表或系统视图)及查询SQL

Oracle常用数据字典表(系统表或系统视图)及查询SQL 2014年12月15日?数据库?共4187字?暂无评论?阅读861 次 文章目录 ?数据字典分类 ?dba_开头 ?user_开头 ?v$开头 ?all_开头 ?session_开头 ?index_开头 ?伪表 ?数据字典常用SQL查询 数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的。比如一个表的创建者信息,创建时间信息,所属表空间信息,用户访问权限信息的视图等。 数据字典系统表,保存在system表空间中。查询所有数据字典可用语句“select * from dictionary;”。 数据字典分类 数据字典主要可分为四部分: 1)内部RDBMS表:x$*,用于跟踪内部数据库信息,维持DB的正常运行。是加密命名的,不允许sysdba以外的用户直接访问,显示授权不被允许。

2)数据字典表:*$,如tab$,obj$,ts$等,用来存储表、索引、约束以及其他数据库结构的信息。 3)动态性能视图:gv$*,v$*,记录了DB运行时信息和统计数据,大部分动态性能视图被实时更新以反映DB当前状态。 4)数据字典视图:user_*、all_*、dba_*,在非Sys用户下,我们访问的都是同义词,而不是V$视图或GV视图。 数据库启动时,动态创建x$,在X$基础上创建GV$,在GV$基础上创建V$X$表-->GV$(视图)--->V$(视图)。 数据字典视图可分为静态数据字典视图和动态数据字典视图。 静态数据字典是指在用户访问数据字典时内容不会发生改变。这类数据字典主要是由表和视图组成,应该注意的是,数据字典中的表是不能直接被访问的,但是可以访问数据字典中的视图。 静态数据字典中的视图分为三类,它们分别由三个前缀够成:user_*(该用户方案对象的信息)、all_*(该用户可以访问的所有对象的信息)、dba_*(全部数据库对象的信息)。 动态数据字典是Oracle包含的一些潜在的由系统管理员如SYS维护的表和视图,由于当数据库运行的时候它们会不断进行更新,所以称它们为动态数据字典。这些视图提供了关于内存和磁盘的运行情况,所以我们只能对其进行只读访问而不能修改它们。Oracle中这些动态性能视图都是以v$开头的视图,比如v$access。 dba_开头 dba_users数据库用户信息

oracle监听配置详细步骤

一、Oracle 监听 客户端请求通过web页面发给中间件weblogic 中间件再发给orale数据库图示如下: Oracle 为了和外界联系必须开启监听,来接受外部的请求。 开启oracle监听有2种方法 方法一:修改配置文件 方法二:通过图形化的工具改 监听配置文件所在的位置: cd $ORACLE_HOME Cd network/admin下 监听配置文件的位置为:/oracle/app/oracle/product/10.2.0/db_1/network/admin目录下有listener.ora文件,这个文件可以通过配置来生成或者新建vi listener.ora 1 方法一:图形化的工具生产监听文件 前提:用图形化工具时必须是oracle用户界面,也就是orale用户登录,如果是root用户登录的话,有个shell环境问题。 步骤一:以oracle用户登录,输入netca命令或者输入netmgr命令,如下图所示: 步骤二:出现图形界面,一直下一步就行,但这个命令只能配置监听,不能配置传输功能。所以我们在这里就不使用netca命令了。

下面输入netmgr命令 步骤一:输入netmgr命令 步骤二:回车之后,界面如下: 把local目录展开界面如下 步骤三:点击左上角绿色的添加‘监听’步骤四:添加要监听的主机(或ip地址)

步骤五:添加要监听的数据库 步骤六:设置好后关闭,保存。 步骤七:cd $ORACLE_HOME/network/admin下有了listener.ora文件了,如下: 步骤八:启动监听输入命令:lsnrctl start,如下图: 2 方法二直接编辑监听文档 Listener.ora文档也可以自己编辑生成,在$ORACLE_HOME/network/admin下编辑步骤一:Vi listener.ora, 文档添加以下内容: #listener.ora Network Configuration File: /oracle/app/oracle/product/10.2.0/db_1/network/admin/listener.ora # Generated by Oracle configuration tools. (SID_DESC = (GLOBAL_DBNAME = TEST) (ORACLE_HOME = /oracle/app/oracle/product/10.2.0/db_1) (SID_NAME = TEST) ) ) LISTENER = (DESCRIPTION =

oracle服务器端与客户端配置

近段时间很多网友提出监听配置相关问题,客户终端(Client)无法连接服务器端(Server)。本文现对监听配置作一简单介绍,并提出一些客户终端无法连接服务器端的解决思路,愿对广大网友与读者有一些帮助。 一、监听器(LISTENER) 监听器是Oracle基于服务器端的一种网络服务,主要用于监听客户端向数据库服务器端提出的连接请求。既然是基于服务器端的服务,那么它也只存在于数据库服务器端,进行监听器的设置也是在数据库服务器端完成的。 二、本地服务名(Tnsname) Oracle客户端与服务器端的连接是通过客户端发出连接请求,由服务器端监听器对客户端连接请求进行合法检查,如果连接请求有效,则进行连接,否则拒绝该连接。 本地服务名是Oracle客户端网络配置的一种,另外还有Oracle名字服务器(Oracle Names Server)等。Oracle常用的客户端配置就是采用的本地服务名,本文中介绍的也主要是基于本地服务名的配置。 三、Oracle网络连接配置方法 配置Oracle服务器端与客户端都可以在其自带的图形化Oracle网络管理器(Oracle Net Manager)里完成(强烈建议在这个图形化的工具下完成Oracle 服务端或客户端的配置)。在Windows下,点击“开始/程序/Oracle - OraHome92/Configuration and Migration Tools/Net Manager”启动Oracle 网络管理器工具,在Linux/Unix下,利用netmgr命令来启动图形化Oracle网络管理器,如: $ netmgr Windows下启动Net Manager图形窗口如下图示:

Oracle11g数据库基础教程-参考答案资料

第1章Oracle 11g数据库安装与配置 1.简答题 (1) 企业版数据库服务器包含所有的数据库组件,主要针对高端的应用环境,适用于安全性和性能要求较高的联机事务处理(OLTP)、查询密集型的数据仓库和要求较高的Internet应用程序:标准版数据库服务器提供大部分核心的数据库功能和特性,适合于工作组或部门级的应用程序:个人版数据库服务器只提供基本数据库管理功能和特性,适合单用户的开发环境,为用户提供开发测试平台。 (2) 常用数据库类型包括事务处理类、数据仓库类以通用类型。其中事务处理类型主要针对 具有大量并发用户连接,并且用户主要执行简单事务处理的应用环境。事务处理数据库的典型应用有银行系统数据库、Internet电子商务数据库、证券交易系统数据库等。对于需要较 高的可用性和事务处理性能、存在大量用户并行访问相同数据以及需要较高恢复性能的数据 库环境,事务处理类型的配置可以提供最佳性能;数据仓库类型的数据库主要针对有大量的 对某个主题进行复杂查询的应用环境。数据仓库的典型应用有客户订单研究、支持呼叫、销售预测、采购模式以及其他战略性业务问题的历史数据研究。对于需要对大量数据进行快速 访问,以及复杂查询的数据库环境,数据仓库类型配置是最佳选择;通用类型配置的数据库是事务处理数据库与数据仓库配置的折衷方案。既可以支持大量并发用户的事务处理,又可以快速对大量历史数据进行复杂的数据扫描和处理。 (3) 数据库名可以由字母、数字、下划线(_)、#和美元符号($)组成,且必须以字母开头,长度不超过30个字符。在单机环境中,可以不设置域名,域名长度不能超过128个字符。Oracle服务标识符(SID)是一个Oracle实例的唯一名称标识,长度不能超过12个字符。(4) OracleServiceORCL:数据库服务(数据库实例),是Oracle核心服务,是数据库启 动的基础,只有该服务启动,Oracle数据库才能正常启动。(必须启动) OracleOraDb11g_home1TNSListener:监听器服务,该服务只有在远程访问数据库时 才需要(无论远程计算机还是本地计算机,凡是通过Oracle Net网络协议连接数据 库都属于远程访问)。(必须启动) OracleOraDb11g_home1ConfigurationManager:配置Oracle启动时的参数的服务。(非必须启动) OracleOraDb11g_home1ClrAgent:提供对.NET支持的Oracle数据库扩展服务。(非必须启动) OracleJobSchedulerORCL:数据库作业调度服务。(非必须启动) OracleDBConsoleorcl:Oracle控制台服务,即企业管理器服务。只有该服务启动了, 才可以使用Web方式的企业管理器管理数据库。(非必须启动) OracleVssWriterORCL:是Oracle对VSS提供支持的服务。(非必须启动) OracleMTSRecoveryService:是允许数据库充当一个微软事务服务器、COM/COM+对象和分布式环境下的事务资源管理器的服务。

ORACLE系统视图及表大全

总结ORACLE系统视图及表大全: dba_开头..... dba_users 数据库用户信息 dba_segments 表段信息 dba_extents 数据区信息 dba_objects 数据库对象信息 dba_tablespaces 数据库表空间信息 dba_data_files 数据文件设置信息 dba_temp_files 临时数据文件信息 dba_rollback_segs 回滚段信息 dba_ts_quotas 用户表空间配额信息 dba_free_space数据库空闲空间信息 dba_profiles 数据库用户资源限制信息 dba_sys_privs 用户的系统权限信息 dba_tab_privs用户具有的对象权限信息dba_col_privs用户具有的列对象权限信息dba_role_privs用户具有的角色信息 dba_audit_trail审计跟踪记录信息 dba_stmt_audit_opts审计设置信息 dba_audit_object 对象审计结果信息 dba_audit_session会话审计结果信息 dba_indexes用户模式的索引信息 user_开头 user_objects 用户对象信息 user_source 数据库用户的所有资源对象信息user_segments 用户的表段信息 user_tables 用户的表对象信息 user_tab_columns 用户的表列信息 user_constraints 用户的对象约束信息 user_sys_privs 当前用户的系统权限信息

user_tab_privs 当前用户的对象权限信息 user_col_privs 当前用户的表列权限信息 user_role_privs 当前用户的角色权限信息 user_indexes 用户的索引信息 user_ind_columns用户的索引对应的表列信息 user_cons_columns 用户的约束对应的表列信息 user_clusters 用户的所有簇信息 user_clu_columns 用户的簇所包含的内容信息 user_cluster_hash_expressions 散列簇的信息 v$开头 v$database 数据库信息 v$datafile 数据文件信息 v$controlfile控制文件信息 v$logfile 重做日志信息 v$instance 数据库实例信息 v$log 日志组信息 v$loghist 日志历史信息 v$sga 数据库SGA信息 v$parameter 初始化参数信息 v$process 数据库服务器进程信息 v$bgprocess 数据库后台进程信息 v$controlfile_record_section 控制文件记载的各部分信息v$thread 线程信息 v$datafile_header 数据文件头所记载的信息 v$archived_log归档日志信息 v$archive_dest 归档日志的设置信息 v$logmnr_contents 归档日志分析的DML DDL结果信息v$logmnr_dictionary 日志分析的字典文件信息 v$logmnr_logs 日志分析的日志列表信息 v$tablespace 表空间信息

Oracle DBA 常用视图

Oracle DBA 常用视图 ☆dba_开头..... dba_users 数据库用户信息 dba_segments 表段信息 dba_extents 数据区信息 dba_objects 数据库对象信息 dba_tablespaces 数据库表空间信息 dba_data_files 数据文件设置信息 dba_temp_files 临时数据文件信息 dba_rollback_segs 回滚段信息 dba_ts_quotas 用户表空间配额信息 dba_free_space 数据库空闲空间信息dba_profiles 数据库用户资源限制信息dba_sys_privs 用户的系统权限信息 dba_tab_privs 用户具有的对象权限信息dba_col_privs 用户具有的列对象权限信息dba_role_privs 用户具有的角色信息 dba_audit_trail 审计跟踪记录信息 dba_stmt_audit_opts 审计设置信息 dba_audit_object 对象审计结果信息 dba_audit_session 会话审计结果信息dba_indexes 用户模式的索引信息

☆user_开头 user_objects 用户对象信息 user_source 数据库用户的所有资源对象信息user_segments 用户的表段信息 user_tables 用户的表对象信息 user_tab_columns 用户的表列信息 user_constraints 用户的对象约束信息 user_sys_privs 当前用户的系统权限信息 user_tab_privs 当前用户的对象权限信息 user_col_privs 当前用户的表列权限信息 user_role_privs 当前用户的角色权限信息 user_indexes 用户的索引信息 user_ind_columns 用户的索引对应的表列信息user_cons_columns 用户的约束对应的表列信息user_clusters 用户的所有簇信息 user_clu_columns 用户的簇所包含的内容信息user_cluster_hash_expressions 散列簇的信息 ☆v$开头 v$database 数据库信息 v$datafile 数据文件信息 v$controlfile 控制文件信息 v$logfile 重做日志信息

相关主题
文本预览
相关文档 最新文档