搜档网
当前位置:搜档网 › oracle10g安装到使用教程

oracle10g安装到使用教程

oracle10g安装到使用教程
oracle10g安装到使用教程

Oracle从安装到使用一:Oracle认证,与其它数据库比较,安装

Oracle安装会自动的生成sys用户和system用户:

(1)sys用户是超级用户,具有最高权限,具有sysdba角色,有create database的权限,该用户默认的密码是change_on_install

(2)system用户是管理操作员,权限也很大。具有sysoper角色,没有create database的权限,默认的密码是manager

(3)一般讲,对数据库维护,使用system用户登录就可以拉

也就是说sys和system这两个用户最大的区别是在于有没有create database的权限。

二: Oracle的基本使用--基本命令

sql*plus的常用命令

连接命令

1.conn[ect]

用法:conn 用户名/密码@网络服务名[as sysdba/sysoper]当用特权用户身份连接时,必须带上as sysdba或是as sysoper

2.disc[onnect]

说明: 该命令用来断开与当前数据库的连接

3.psssw[ord]

说明: 该命令用于修改用户的密码,如果要想修改其它用户的密码,需要用

sys/system登录。

4.show user

说明: 显示当前用户名

5.exit

说明: 该命令会断开与数据库的连接,同时会退出sql*plus

文件操作命令

1.start和@

说明: 运行sql脚本

案例: sql>@ d:\a.sql或是sql>start d:\a.sql

2.edit

说明: 该命令可以编辑指定的sql脚本

案例: sql>edit d:\a.sql,这样会把d:\a.sql这个文件打开

3.spool

说明: 该命令可以将sql*plus屏幕上的内容输出到指定文件中去。

案例: sql>spool d:\b.sql 并输入 sql>spool off

交互式命令

1.&

说明:可以替代变量,而该变量在执行时,需要用户输入。

select * from emp where job='&job';

2.edit

说明:该命令可以编辑指定的sql脚本

案例:SQL>edit d:\a.sql

3.spool

说明:该命令可以将sql*plus屏幕上的内容输出到指定文件中去。

spool d:\b.sql 并输入 spool off

显示和设置环境变量

概述:可以用来控制输出的各种格式,set show如果希望永久的保存相关的设置,可以去修改glogin.sql脚本

1.linesize

说明:设置显示行的宽度,默认是80个字符

show linesize

set linesize 90

2.pagesize说明:设置每页显示的行数目,默认是14

用法和linesize一样

至于其它环境参数的使用也是大同小异

三:oracle用户管理

oracle用户的管理

创建用户

概述:在oracle中要创建一个新的用户使用create user语句,一般是具有dba(数据库管理员)的权限才能使用。

create user 用户名identified by 密码; (oracle有个毛病,密码必须以字母开头,如果以字母开头,它不会创建用户)

给用户修改密码

概述:如果给自己修改密码可以直接使用

password 用户名

如果给别人修改密码则需要具有dba的权限,或是拥有alter user的系统权限

SQL> alter user 用户名identified by 新密码

删除用户

概述:一般以dba的身份去删除某个用户,如果用其它用户去删除用户则需要具有drop user 的权限。

比如drop user 用户名【cascade】

在删除用户时,注意:

如果要删除的用户,已经创建了表,那么就需要在删除的时候带一个参数cascade;

用户管理的综合案例

概述:创建的新用户是没有任何权限的,甚至连登陆的数据库的权限都没有,需要为其指定相应的权限。给一个用户赋权限使用命令grant,回收权限使用命令revoke。

为了给讲清楚用户的管理,这里我给大家举一个案例。

SQL> conn xiaoming/m12;

ERROR:

ORA-01045: user XIAOMING lacks CREATE SESSION privilege; logon denied

警告: 您不再连接到ORACLE。

SQL> show user;

USER 为""

SQL> conn system/p;

已连接。

SQL> grant connect to xiaoming;

授权成功。

SQL> conn xiaoming/m12; //后面的为密码分开来输入。

已连接。

SQL>

注意:grant connect to xiaoming;在这里,准确的讲,connect不是权限,而是角色。。看图:

现在说下对象权限,现在要做这么件事情:

* 希望xiaoming用户可以去查询emp表

* 希望xiaoming用户可以去查询scott的emp表

grant select on emp to xiaoming

* 希望xiaoming用户可以去修改scott的emp表

grant update on emp to xiaoming

* 希望xiaoming用户可以去修改/删除,查询,添加scott的emp表

grant all on emp to xiaoming

* scott希望收回xiaoming对emp表的查询权限

revoke select on emp from xiaoming

//对权限的维护。

* 希望xiaoming用户可以去查询scott的emp表/还希望xiaoming可以把这个权限继续给别

人。

--如果是对象权限,就加入with grant option

grant select on emp to xiaoming with grant option

我的操作过程:

SQL> conn scott/tiger;

已连接。

SQL> grant select on scott.emp to xiaoming with grant option;

授权成功。

SQL> conn system/p;

已连接。

SQL> create user xiaohong identified by m123;

用户已创建。

SQL> grant connect to xiaohong;

授权成功。

SQL> conn xiaoming/m12;

已连接。

SQL> grant select on scott.emp to xiaohong;

授权成功。

--如果是系统权限。

system给xiaoming权限时:

grant connect to xiaoming with admin option

问题:如果scott把xiaoming对emp表的查询权限回收,那么xiaohong会怎样?

答案:被回收。

下面是我的操作过程:

SQL> conn scott/tiger;

已连接。

SQL> revoke select on emp from xiaoming;

撤销成功。

SQL> conn xiaohong/m123;

已连接。

SQL> select * from scott.emp;

select * from scott.emp

第1 行出现错误:

ORA-00942: 表或视图不存在

结果显示:小红受到诛连了。

使用profile管理用户口令

概述:profile是口令限制,资源限制的命令集合,当建立数据库的,oracle会自动建立名称为default的profile。当建立用户没有指定profile选项,那么oracle就会将default分配给用户。

1.账户锁定

概述:指定该账户(用户)登陆时最多可以输入密码的次数,也可以指定用户锁定的时间(天)一般用dba的身份去执行该命令。

例子:指定scott这个用户最多只能尝试3次登陆,锁定时间为2天,让我们看看怎么实现。创建profile文件

SQL> create profile lock_account limit failed_login_attempts 3 password_lock_time 2;

SQL> alter user scott profile lock_account;

2.给账户(用户)解锁

SQL> alter user tea account unlock;

3.终止口令

为了让用户定期修改密码可以使用终止口令的指令来完成,同样这个命令也需要dba的身份来操作。

例子:给前面创建的用户tea创建一个profile文件,要求该用户每隔10天要修改自己的登陆密码,宽限期为2天。看看怎么做。

SQL> create profile myprofile limit password_life_time 10 password_grace_time 2;

SQL> alter user tea profile myprofile;

口令历史

概述:如果希望用户在修改密码时,不能使用以前使用过的密码,可使用口令历史,这样oracle就会将口令修改的信息存放到数据字典中,这样当用户修改密码时,oracle就会对新旧密码进行比较,当发现新旧密码一样时,就提示用户重新输入密码。

例子:

1)建立profile

SQL>create profile password_history limit password_life_time 10 password_grace_time 2 password_reuse_time 10

password_reuse_time //指定口令可重用时间即10天后就可以重用

2)分配给某个用户

删除profile

概述:当不需要某个profile文件时,可以删除该文件。

SQL> drop profile password_history 【casade】

注意:文件删除后,用这个文件去约束的那些用户通通也都被释放了。

加了casade,就会把级联的相关东西也给删除掉

四:oracle表的管理(数据类型,表创建删除,数据CRUD操作)

oracle的表的管理

表名和列的命名规则

?必须以字母开头

?长度不能超过30个字符

?不能使用oracle的保留字

?只能使用如下字符 A-Z,a-z,0-9,$,#等

oracle支持的数据类型

字符类

char定长最大2000个字符。

例子:char(10) …小韩?前四个字符放…小韩?,后添6个空格补全如…小韩?

varchar2(20)变长最大4000个字符。

例子:varchar2(10)…小韩? oracle分配四个字符。这样可以节省空间。

clob(character large object) 字符型大对象最大4G

char 查询的速度极快浪费空间,查询比较多的数据用。

varchar 节省空间

数字型

number范围 -10的38次方到 10的38次方

可以表示整数,也可以表示小数

number(5,2)

表示一位小数有5位有效数,2位小数

范围:-999.99到999.99

number(5)

表示一个5位整数

范围99999到-99999

日期类型

date 包含年月日和时分秒 oracle默认格式 1-1月-1999

timestamp 这是oracle9i对date数据类型的扩展。可以精确到毫秒。

图片

blob 二进制数据可以存放图片/声音 4G 一般来讲,在真实项目中是不会把图片和声音真的往数据库里存放,一般存放图片、视频的路径,如果安全需要比较高的话,则放入数据库。

怎样创建表

建表

--学生表

create table student ( ---表名

xh number(4), --学号

xm varchar2(20), --姓名

sex char(2), --性别

birthday date, --出生日期

sal number(7,2) --奖学金

);

--班级表

CREATE TABLE class(

classId NUMBER(2),

cName VARCHAR2(40)

);

修改表

添加一个字段

SQL>ALTER TABLE student add (classId NUMBER(2));

修改一个字段的长度

SQL>ALTER TABLE student MODIFY (xm VARCHAR2(30));

修改字段的类型/或是名字(不能有数据)不建议做

SQL>ALTER TABLE student modify (xm CHAR(30));

删除一个字段不建议做(删了之后,顺序就变了。加就没问题,应为是加在后面)

SQL>ALTER TABLE student DROP COLUMN sal;

修改表的名字很少有这种需求

SQL>RENAME student TO stu;

删除表

SQL>DROP TABLE student;

添加数据

所有字段都插入数据

INSERT INTO student VALUES ('A001', '张三', '男', '01-5月-05', 10); oracle中默认的日期格式‘dd-mon-yy’ dd日子(天) mon 月份 yy 2位的年‘09-6月-99’ 1999年6月9日

修改日期的默认格式(临时修改,数据库重启后仍为默认;如要修改需要修改注册表)

ALTER SESSION SET NLS_DATE_FORMAT ='yyyy-mm-dd';

修改后,可以用我们熟悉的格式添加日期类型:

INSERT INTO student VALUES ('A002', 'MIKE', '男', '1905-05-06', 10); 插入部分字段

INSERT INTO student(xh, xm, sex) VALUES ('A003', 'JOHN', '女');

插入空值

INSERT INTO student(xh, xm, sex, birthday) VALUES ('A004', 'MARTIN', '男', null);

问题来了,如果你要查询student表里birthday为null的记录,怎么写sql 呢?

错误写法:select * from student where birthday = null;

正确写法:select * from student where birthday is null;

如果要查询birthday不为null,则应该这样写:

select * from student where birthday is not null;

修改数据

修改一个字段

UPDATE student SET sex = '女' WHERE xh = 'A001';

修改多个字段

UPDATE student SET sex = '男', birthday = '1984-04-01' WHERE xh = 'A001'; 修改含有null值的数据

不要用 = null 而是用 is null;

SELECT * FROM student WHERE birthday IS null;

删除数据

DELETE FROM student;

删除所有记录,表结构还在,写日志,可以恢复的,速度慢。

Delete 的数据可以恢复。

savepoint a; --创建保存点

DELETE FROM student;

rollback to a; --恢复到保存点

一个有经验的DBA,在确保完成无误的情况下要定期创建还原点。

DROP TABLE student; --删除表的结构和数据;

delete from student WHERE xh = 'A001'; --删除一条记录;

truncate TABLE student; --删除表中的所有记录,表结构还在,不写日志,无法找回删除的记录,速度快。

五:oracle表查询(1)

oracle表基本查询

介绍

在我们讲解的过程中我们利用scott用户存在的几张表(emp,dept)为大家演示如何使用select 语句,select语句在软件编程中非常有用,希望大家好好的掌握。

emp 雇员表

clerk 普员工

salesman 销售

manager 经理

analyst 分析师

president 总裁

mgr 上级的编号

hiredate 入职时间

sal 月工资

comm 奖金

deptno 部门

dept部门表

deptno 部门编号

accounting 财务部

research 研发部

operations 业务部

loc 部门所在地点

salgrade 工资级别

grade 级别

losal 最低工资

hisal 最高工资

简单的查询语句

查看表结构

DESC emp;

查询所有列

SELECT * FROM dept;

切忌动不动就用select *

SET TIMING ON; 打开显示操作时间的开关,在下面显示查询时间。

CREATE TABLE users(userId V ARCHAR2(10), uName V ARCHAR2 (20), uPassw

V ARCHAR2(30));

INSERT INTO users V ALUES('a0001', '啊啊啊啊', 'aaaaaaaaaaaaaaaaaaaaaaa');

--从自己复制,加大数据量大概几万行就可以了可以用来测试sql语句执行效率INSERT INTO users (userId,UNAME,UPASSW) SELECT * FROM users;

SELECT COUNT (*) FROM users;统计行数

查询指定列

SELECT ename, sal, job, deptno FROM emp;

如何取消重复行DISTINCT

SELECT DISTINCT deptno, job FROM emp;

查询SMITH所在部门,工作,薪水

SELECT deptno,job,sal FROM emp WHERE ename = 'SMITH';

注意:oracle对内容的大小写是区分的,所以ename='SMITH'和ename='smith'是不同的

使用算术表达式 nvl null

问题:如何显示每个雇员的年工资?

SELECT sal*13+nvl(comm, 0)*13 "年薪" , ename, comm FROM emp;

使用列的别名

SELECT ename "姓名", sal*12 AS "年收入" FROM emp;

如何处理null值

使用nvl函数来处理

如何连接字符串(||)

SELECT ename || ' is a ' || job FROM emp;

使用where子句

问题:如何显示工资高于3000的员工?

SELECT * FROM emp WHERE sal > 3000;

问题:如何查找1982.1.1后入职的员工?

SELECT ename,hiredate FROM emp WHERE hiredate >'1-1月-1982';

问题:如何显示工资在2000到3000的员工?

SELECT ename,sal FROM emp WHERE sal >=2000 AND sal <= 3000;

如何使用like操作符

%:表示0到多个字符_:表示任意单个字符

问题:如何显示首字符为S的员工姓名和工资?

SELECT ename,sal FROM emp WHERE ename like 'S%';

如何显示第三个字符为大写O的所有员工的姓名和工资?

SELECT ename,sal FROM emp WHERE ename like '__O%';

在where条件中使用in

问题:如何显示empno为7844, 7839,123,456 的雇员情况?

SELECT * FROM emp WHERE empno in (7844, 7839,123,456);

使用is null的操作符

问题:如何显示没有上级的雇员的情况?

错误写法:select * from emp where mgr = '';

正确写法:SELECT * FROM emp WHERE mgr is null;

六:oracle表查询(2)

使用逻辑操作符号

问题:查询工资高于500或者是岗位为MANAGER的雇员,同时还要满足他们的姓名首字母为大写的J?

SELECT * FROM emp WHERE (sal >500 or job = 'MANAGER') and ename LIKE 'J%';

使用order by 字句默认asc

问题:如何按照工资的从低到高的顺序显示雇员的信息?

SELECT * FROM emp ORDER by sal;

问题:按照部门号升序而雇员的工资降序排列

SELECT * FROM emp ORDER by deptno, sal DESC;

使用列的别名排序

问题:按年薪排序

select ename, (sal+nvl(comm,0))*12 "年薪" from emp order by "年薪" asc;

别名需要使用“”号圈中,英文不需要“”号

分页查询

等学了子查询再说吧。。。。。。。。

Clear 清屏命令

oracle表复杂查询

说明

在实际应用中经常需要执行复杂的数据统计,经常需要显示多张表的数据,现在我们给大家介绍较为复杂的select语句

数据分组——max,min,avg,sum,count

问题:如何显示所有员工中最高工资和最低工资?

SELECT MAX(sal),min(sal) FROM emp e;

最高工资那个人是谁?

错误写法:select ename, sal from emp where sal=max(sal);

正确写法:select ename, sal from emp where sal=(select max(sal) from emp);

注意:select ename, max(sal) from emp;这语句执行的时候会报错,说ORA-00937:非单组分组函数。因为max是分组函数,而ename不是分组函数.......

但是select min(sal), max(sal) from emp;这句是可以执行的。因为min和max都是分组函数,就是说:如果列里面有一个分组函数,其它的都必须是分组函数,否则就出错。这是语法规定的问题:如何显示所有员工的平均工资和工资总和?

问题:如何计算总共有多少员工问题:如何

扩展要求:

查询最高工资员工的名字,工作岗位

SELECT ename, job, sal FROM emp e where sal = (SELECT MAX(sal) FROM emp);

显示工资高于平均工资的员工信息

SELECT * FROM emp e where sal > (SELECT AVG(sal) FROM emp);

group by 和having子句

group by用于对查询的结果分组统计,

having子句用于限制分组显示结果。

问题:如何显示每个部门的平均工资和最高工资?

SELECT A VG(sal), MAX(sal), deptno FROM emp GROUP by deptno;

(注意:这里暗藏了一点,如果你要分组查询的话,分组的字段deptno一定要出现在查询的列表里面,否则会报错。因为分组的字段都不出现的话,就没办法分组了)

问题:显示每个部门的每种岗位的平均工资和最低工资?

SELECT min(sal), A VG(sal), deptno, job FROM emp GROUP by deptno, job;

问题:显示平均工资低于2000的部门号和它的平均工资?

SELECT A VG(sal), MAX(sal), deptno FROM emp GROUP by deptno having A VG(sal) < 2000;

对数据分组的总结

1 分组函数只能出现在选择列表、having、order by子句中(不能出现在where中)

2 如果在select语句中同时包含有group by, having, order by 那么它们的顺序是group by, having, order by

3 在选择列中如果有列、表达式和分组函数,那么这些列和表达式必须有一个出现在group by 子句中,否则就会出错。

如SELECT deptno, A VG(sal), MAX(sal) FROM emp GROUP by deptno HA VING A VG(sal) < 2000;

这里deptno就一定要出现在group by 中

多表查询

说明

多表查询是指基于两个和两个以上的表或是视图的查询。在实际应用中,查询单个表可能不能满足你的需求,(如显示sales部门位置和其员工的姓名),这种情况下需要使用到(dept 表和emp表)

问题:显示雇员名,雇员工资及所在部门的名字【笛卡尔集】?

规定:多表查询的条件是至少不能少于表的个数-1 才能排除笛卡尔集

(如果有N张表联合查询,必须得有N-1个条件,才能避免笛卡尔集合)

SELECT e.ename, e.sal, d.dname FROM emp e, dept d WHERE e.deptno = d.deptno;

问题:显示部门号为10的部门名、员工名和工资?

SELECT d.dname, e.ename, e.sal FROM emp e, dept d WHERE e.deptno = d.deptno and e.deptno = 10;

问题:显示各个员工的姓名,工资及工资的级别?

先看salgrade的表结构和记录

SQL>select * from salgrade;

GRADE LOSAL HISAL

------------- ------------- ------------

1 700 1200

2 1201 1400

3 1401 2000

4 2001 3000

5 3001 9999

SELECT e.ename, e.sal, s.grade FROM emp e, salgrade s WHERE e.sal BETWEEN s.losal AND s.hisal;

扩展要求:

问题:显示雇员名,雇员工资及所在部门的名字,并按部门排序?

SELECT e.ename, e.sal, d.dname FROM emp e, dept d WHERE e.deptno = d.deptno ORDER by e.deptno;

(注意:如果用group by,一定要把e.deptno放到查询列里面)

自连接

自连接是指在同一张表的连接查询

问题:显示某个员工的上级领导的姓名?

比如显示员工…FORD?的上级

SELECT worker.ename, boss.ename FROM emp worker,emp boss WHERE worker.mgr = boss.empno AND worker.ename = 'FORD';

子查询

什么是子查询

子查询是指嵌入在其他sql语句中的select语句,也叫嵌套查询。

单行子查询

单行子查询是指只返回一行数据的子查询语句

请思考:显示与SMITH同部门的所有员工?

思路:

1 查询出SMITH的部门号

select deptno from emp WHERE ename = 'SMITH';

2 显示

SELECT * FROM emp WHERE deptno = (select deptno from emp WHERE ename = 'SMITH'); 数据库在执行sql 是从左到右扫描的,如果有括号的话,括号里面的先被优先执行。

多行子查询

多行子查询指返回多行数据的子查询

请思考:如何查询和部门10的工作相同的雇员的名字、岗位、工资、部门号

SELECT DISTINCT job FROM emp WHERE deptno = 10;

SELECT * FROM emp WHERE job IN (SELECT DISTINCT job FROM emp WHERE deptno = 10);

(注意:不能用job=..,因为等号=是一对一的)

在多行子查询中使用all操作符

问题:如何显示工资比部门30的所有员工的工资高的员工的姓名、工资和部门号?SELECT ename, sal, deptno FROM emp WHERE sal > all (SELECT sal FROM emp WHERE deptno = 30);

扩展要求:

大家想想还有没有别的查询方法。

SELECT ename, sal, deptno FROM emp WHERE sal > (SELECT MAX(sal) FROM emp WHERE deptno = 30);

执行效率上,函数高得多

在多行子查询中使用any操作符

问题:如何显示工资比部门30的任意一个员工的工资高的员工姓名、工资和部门号?SELECT ename, sal, deptno FROM emp WHERE sal > ANY (SELECT sal FROM emp WHERE deptno = 30);

扩展要求:

大家想想还有没有别的查询方法。

SELECT ename, sal, deptno FROM emp WHERE sal > (SELECT min(sal) FROM emp WHERE deptno = 30);

多列子查询

单行子查询是指子查询只返回单列、单行数据,多行子查询是指返回单列多行数据,都是针对单列而言的,而多列子查询是指查询返回多个列数据的子查询语句。

请思考如何查询与SMITH的部门和岗位完全相同的所有雇员。

SELECT deptno, job FROM emp WHERE ename = 'SMITH';

SELECT * FROM emp WHERE (deptno, job) = (SELECT deptno, job FROM emp WHERE

ename = 'SMITH');

在from子句中使用子查询

请思考:如何显示高于自己部门平均工资的员工的信息

思路:

1. 查出各个部门的平均工资和部门号

SELECT deptno, A VG(sal) mysal FROM emp GROUP by deptno;

2. 把上面的查询结果看做是一张子表

SELECT e.ename, e.deptno, e.sal, ds.mysal FROM emp e, (SELECT deptno, A VG(sal) mysal FROM emp GROUP by deptno) ds WHERE e.deptno = ds.deptno AND e.sal > ds.mysal;

如何衡量一个程序员的水平?

网络处理能力,数据库,程序代码的优化程序的效率要很高

小总结:

在这里需要说明的当在from子句中使用子查询时,该子查询会被作为一个视图来对待,因此叫做内嵌视图,当在from子句中使用子查询时,必须给子查询指定别名。

注意:别名不能用as,如:SELECT e.ename, e.deptno, e.sal, ds.mysal FROM emp e, (SELECT deptno, A VG(sal) mysal FROM emp GROUP by deptno) as ds WHERE e.deptno = ds.deptno AND e.sal > ds.mysal;

在ds前不能加as,否则会报错(给表取别名的时候,不能加as;但是给列取别名,是可以加as的)

分页查询

按雇员的id号升序取出

oracle的分页一共有三种方式

1.根据rowid来分

select * from t_xiaoxi where rowid in (select rid from (select rownum rn, rid from(select rowid rid, cid from t_xiaoxi order by cid desc) where rownum<10000) where rn>9980) order by cid desc; 执行时间0.03秒

2.按分析函数来分

select * from (select t.*, row_number() over(order by cid desc) rk from t_xiaoxi t) where

rk<10000 and rk>9980;

执行时间1.01秒

3.按rownum来分

select * from (select t.*,rownum rn from(select * from t_xiaoxi order by cid desc)t where rownum<10000) where rn>9980;

执行时间0.1秒

其中t_xiaoxi为表名称,cid为表的关键字段,取按cid降序排序后的第9981-9999条记录,t_xiaoxi表有70000多条记录。

个人感觉1的效率最好,3次之,2最差。

//测试通过的分页查询okokok

select * from (select a1.*, rownum rn from(select ename,job from emp) a1 where

rownum<=10)where rn>=5;

下面最主要介绍第三种:按rownum来分

1. rownum 分页

SELECT * FROM emp;

2. 显示rownum[oracle分配的]

SELECT e.*, ROWNUM rn FROM (SELECT * FROM emp) e;

rn相当于Oracle分配的行的ID号

3.挑选出6—10条记录

先查出1-10条记录

SELECT e.*, ROWNUM rn FROM (SELECT * FROM emp) e WHERE ROWNUM <= 10;

如果后面加上rownum>=6是不行的,

4. 然后查出6-10条记录

SELECT * FROM (SELECT e.*, ROWNUM rn FROM (SELECT * FROM emp) e WHERE ROWNUM <= 10) WHERE rn >= 6;

5. 几个查询变化

a. 指定查询列,只需要修改最里层的子查询

只查询雇员的编号和工资

SELECT * FROM (SELECT e.*, ROWNUM rn FROM (SELECT ename, sal FROM emp) e WHERE ROWNUM <= 10) WHERE rn >= 6;

b. 排序查询,只需要修改最里层的子查询

工资排序后查询6-10条数据

SELECT * FROM (SELECT e.*, ROWNUM rn FROM (SELECT ename, sal FROM emp ORDER by sal) e WHERE ROWNUM <= 10) WHERE rn >= 6;

用查询结果创建新表

这个命令是一种快捷的建表方式

CREATE TABLE mytable (id, name, sal, job, deptno) as SELECT empno, ename, sal, job, deptno FROM emp;

创建好之后,desc mytable;和select * from mytable;看看结果如何?

合并查询

合并查询

有时在实际应用中,为了合并多个select语句的结果,可以使用集合操作符号union,union all,intersect,minus

多用于数据量比较大的数据局库,运行速度快。

1). union

该操作符用于取得两个结果集的并集。当使用该操作符时,会自动去掉结果集中重复行。SELECT ename, sal, job FROM emp WHERE sal >2500

UNION

SELECT ename, sal, job FROM emp WHERE job = 'MANAGER';

2).union all

该操作符与union相似,但是它不会取消重复行,而且不会排序。

SELECT ename, sal, job FROM emp WHERE sal >2500

UNION ALL

SELECT ename, sal, job FROM emp WHERE job = 'MANAGER';

该操作符用于取得两个结果集的并集。当使用该操作符时,会自动去掉结果集中重复行。

3). intersect

使用该操作符用于取得两个结果集的交集。

SELECT ename, sal, job FROM emp WHERE sal >2500

INTERSECT

SELECT ename, sal, job FROM emp WHERE job = 'MANAGER';

4). minus

使用改操作符用于取得两个结果集的差集,他只会显示存在第一个集合中,而不存在第二个集合中的数据。

SELECT ename, sal, job FROM emp WHERE sal >2500

MINUS

SELECT ename, sal, job FROM emp WHERE job = 'MANAGER';

(MINUS就是减法的意思)

创建数据库有两种方法:

1). 通过oracle提供的向导工具。√

database Configuration Assistant 【数据库配置助手】

2).我们可以用手工步骤直接创建。

七:java操作oracle

java连接oracle

介绍:前面我们一直在plsql中操作oracle,那么如何在java 程序中操作数据库呢?下面我们举例说明,写一个java,分页显示emp表的用户信息。

Java代码

1.package com.sp;

2.

3.import java.sql.Connection;

4.import java.sql.DriverManager;

5.import java.sql.ResultSet;

6.import java.sql.Statement;

7.

8.//演示如何使用 jdbc_odbc桥连接方式

9.public class TestOracle {

10.

11. public static void main(String[] args) {

12. try {

13.

14. // 1.加载驱动

15. Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

16.

17. // 2.得到连接

18. Connection ct = DriverManager.getConnection(

19. "jdbc.odbc:testConnectOracle", "scott",

20.

21."tiger");

22.

23. // 从下面开始,和SQL Server一模一样

24. Statement sm = ct.createStatement();

25. ResultSet rs = sm.executeQuery("select * from emp")

;

26. while (rs.next()) {

27. //用户名

28. System.out.println("用户

名: "+rs.getString(2));

29. //默认是从1开始编号的

30. }

31. } catch (Exception e) {

32. e.printStackTrace();

33. }

34. }

35.}

在得到连接那里,要去配置数据源,点击控制面板-->系统和安全-->管理工具-->数据源(ODBC),打开后点添加,如图:

可以看到,有个Oracle in OraDb10g_home1的驱动,它是Oracle安装完后自动加上去的。选中后,点完成,再填如下信息,如图:

这样配好后基本就可以了,但为了安全起见,建议大家测试一下,点击 Test Connection按钮,测试通过后点ok,然后数据源就生成了,如图:

然后把数据源名称写进jdbc.odbc:里。

这里要注意:jdbcodbc能不能远程连接呢?不能远程连接,也就是你这样写的话就意味着java程序和oracle数据库应该是在同一台机器上,因为这里没有指定IP地址,肯定默认就是本地。如果要远程连,就用jdbc,jdbc是可以远程连的。

运行TestOracle.java,控制台输出.......................

Linux下Oracle10g创建数据库

Linux下Oracle10g创建数据库流程 通过Redhat as4 Linux 下的两种途径来创建数据库,详细描述各个步骤的来龙去脉,让理清创建一个数据库的整体流程。 前提:用户已经成功的安装ORACLE数据库服务器到对应的LINUX平台,下面的动作都是基于ORACLE+REDHAT AS4的基础上完成的。 在linux平台创建数据库的方法有两种:1.通过oracle数据库建库脚本直接到终端下运行对应的脚本即可,前提是这些脚本报保证它的正确性;2.通过linux平台下提供的图形界面来创建数据库,这种方式用的最多也是最简便的一种 1.图形界面安装oracle数据库 登陆到linux操作系统界面下,切换到root用户,执行命令xhost,具体如下: xhost +ip/hostname ---主要是让本机终端能够访问x server图形界面服务 切换用户到oracle,执行env查看DISPLAY环境变量的值,通常DISPLAY=:0.0,这时需要把对应的ip/hostname设置到DISPLAY中,执行命令: export DISPLAY=ip:0.0 如果一切正常的话,那么这时候我们直接进入oracle用户下执行dbca命令。 进入安装界面

直接点击上图的下一步。

在上图 Database Templates 页面上,选择创建数据库使用的数据库模板类型。您可以单击 Show Details 查看每种数据库类型的配置。选择适合于您的数据库将支持的工作负载的类型的模板。如果您不确定,选择默认的 General Purpose(一般用途)模板。直接点击上图的下一步。

linux5安装oracle10G

VMWare7.0环境linux5.4安装oracle10G单实例.doc 注:本文档所涉及的软件仅供个人学习研究使用,请勿应用于商业环境。如需应用请购买相应正版lisence或软件。 1. 运行环境 (3) 1.1 硬件安装环境 (3) 1.2 相关软件 (3) 2. 安装Vmware 7.0 (4) 2.1 软件 (4) 2.2 图解安装过程 (4) 2.2.1 欢迎界面 (4) 2.2.2 安装方式 (4) 2.2.3 选择安装目录 (5) 2.2.4 快捷方式 (5) 2.2.5 准备安装了 (5) 2.2.6 安装完成,重启PC (6) 2.2.7 打汉化补丁 (6) 2.2.8 注册 (8) 3. 安装Linux (9) 3.1 运行VMWare (9) 3.2 新建虚拟机,并安装Red Hat Linux5.4操作系统。 (9) 3.2.1 欢迎 (9) 3.2.2 安装操作系统(Red Hat Linux 5.4) (10) 3.2.3 创建Linux一个用户。 (11) 3.2.4 虚拟机名称和包位置 (11) 3.2.5 定义虚拟机磁盘大小 (12) 3.2.6 定制显示分辨率。 (12) 3.2.7 选一个自己觉得合适的吧 (13) 3.2.8 完成配置。 (13) 3.2.9 安装完成。 (14) 3.3 确认Linux核心参数。 (14) 3.3.1 内核版本 (14) 3.3.2 CPU (14) 3.3.3 内存 (15) 3.3.4 Swap交换区 (15) 3.3.5 确认存储 (15) 3.3.6 Linux主机名 (15) 3.3.7 网络 (15) 3.3.8 确认Linux版本 (15) 3.3.9 确认操作系统位数 (16) 3.4 可选步骤:修改主机名。 (16) 4. 安装oracle 10G (17) 4.1 修改Linux参数 (17) 4.1.1 修改/etc/sysctl.conf,核心参数 (17) 4.1.2 修改/etc/security/limits.conf,可选 (18)

Oracle10g客户端安装与配置说明

Oracle10g客户端安装与配置说明 一、Oracle客户端安装 将oracle10g客户端虚拟光盘插入虚拟光驱中,系统自动弹出Oracle10g安装界面,选择开始安装。 1)出现【安装】界面,单击[开始安装]按钮。如下图所示: (图示安装) 2)出现【DOS】界面,等待片刻。如下图所示: (图示 DOS) 3)出现【欢迎使用】界面,单击[下一步]按钮。如下图所示:

(图示欢迎使用) 4)出现【选择安装类型】界面,此处以选择‘管理员’选项安装为例,单击[下一步] 按钮。如下图所示: (图示选择安装类型) 5)出现【安装目录】界面,选择安装路径,单击[安装]按钮。如下图所示:

(图示安装目录) 6)出现【产品特定的先决条件检查】界面,检测是否符合安装条件,单击[下一步] 按钮。如下图所示: (图示产品特定的先决条件检查) 7)出现【概要】界面,单击[下一步]按钮。如下图所示:

(图示概要) 8)出现【安装】界面,单击[下一步]按钮。如下图所示: (图示安装) 9)出现【本地服务配置】界面,暂时先不配置,单击[取消]按钮即可,若要配置,操 作见Oracle客户端配置。如下图所示:

(图示本地服务配置) 10)出现【安装结束】界面,单击[退出]按钮即可完成安装。如下图所示: (图示安装结束) 二、Oracle客户端配置 1)单击“开始→程序→Oracle - OraClient10g_home1→配置和移植工具→Net Manager”菜单。如下图所示:

(图示启动Oracle) 2)出现【本地配置】界面中添加数据库,先选择‘Oracel net配置→本地→服务命 名’,再单击窗口左上角的“+”或单击‘编辑→创建’,打开【Net 服务命向导:欢迎使用】界面中输入“Net 服务名”,然后单击[下一步]。如下图所示: (图示本地配置) 注意:网终服务名应与服务器的服务名设置一致,否则流程表单打不开。并记住此服务名,后续的杰思科地籍管理信息系统连接需要使用。 3)出现【选择协议】界面,设置TCP/IP(Internet协议),然后单击[下一步]。如下 图所示:

linux下安装oracle10g的艰难之旅

2005-10-17 09:10作者:田逸出处:chinaitlab责任编辑:罗可龙 在linux下安装oracle是一件令人生畏的事情,其复杂程度远远超过安装linux操作系统本身。如果能够进行成功的安装oracle,那么同时也就顺便掌握了linux一些技术。本文介绍在redhat linux 下安装oracle 10g 的方法。在这里说明一下,Oracle 10g的g是grid 的缩写,意为网格,目前较为前沿的网络计算技术。 Oracle 10g 对软硬件的要求都非常的高,所以要玩转的话的花不少银子。首先来看看它对硬件的要求:内存512兆(建议1G),cpu 主频2.0G以上,硬盘转速7200转以上(建议使用scsi硬盘),依此条件,我看买台服务器才行。其次是软件要求:在oracle 官方的文档里,对于x86系列支持的操作系统只有3种(radhat ES/AS (x86),redhat ES/AS 3(x86),(x86) ),如果只有redhat 9也是可以安装的,不过要麻烦一点点。当然oracle 10g需要更多的软件模块才能进行安装,这些软件模块我将在后面逐一说明。在本例中,使用RedHat ES 3(x86)作为操作平台,并且安装了xwindow。 接下来,我们检查是否符合oracle 10g 的安装要求,以表格的形式列出。首先是硬件情况。以root 登录系统,并且启动x-window.如果用下表命令输出的值大于或等于建议值,请 检查项目命令/方法建议值 内存 #grep MemTotal /proc/meminfo 512MB 交换分区 #grep SwapTotal /proc/meminfo 1GB /tmp目录空闲区 #df –k /tmp 400MB 硬盘空闲空间 #df -k 4GB 继续往下,检查软件需求。对redhat ES 3(x86),需要如下的软件包: · Gnu gcc package, gcc-3.2.3-2 or 更高 下面的包也必须被安装:· · · openmotif-2.2.2-16· · compat-gcc-c++ compat-libstdc++ compat-libstdc++ 为了保证系统满足需求,执行下面的步骤检查安装的linux版本和安装的套件。 检查项目命令/方法建议值 Linux 版本 #cat /etc/issue ES 3 已安装的包 #rpm -q package_name 安装所需包(上表所列) 到这里我们已经全面的检查了安装oracle 10g所要求的软硬件环境,接着我们就要为安装创建组和用户。 下面的组和用户必须存在 The oinstall group (the oracle inventory group)

Linux下Oracle10g的安装与卸载(全)

Linux下Oracle10g的安装与卸载 第一章Oracle 10g的安装3 1.1检查硬件环境3 1.1.1硬件要求3 1.1.2检查内存3 1.1.3检查交换分区3 1.1.4检查/tmp临时文件夹空闲空间3 1.1.5检查磁盘空闲空间大小4 1.2检查软件环境4 1.2.1软件环境要求4 1.2.2检查操作系统型号5 1.2.3检查内核型号5 1.2.4检查安装Oracle10g必须的操作系统安装包是否安装5 1.3创建组和用户6 1.3.1 创建oinstall组6 1.3.2 创建dba组6 1.3.3创建用户名为oracle的用户并将其指派到相应的组6 1.3.4修改oracle用户密码6 1.3.5 检查确认用户6 1.4创建安装目录并修改目录属性7 1.4.1创建目录7 1.4.2分配组7 1.4.3分配权限7 1.5修改Linux内核参数7 1.5.1 在/etc/sysctl.conf文件中加入下列行7 1.5.2 运行以下命令改变核心参数8 1.6设置oracle用户限制9 1.6.1 在配置文件 /etc/security/limits.conf 文件中加入下列行9 1.6.2 在/etc/pam.d/login文件中加入下列行9 1.7修改host文件及环境变量10 1.7.1 修改/etc/hosts文件10 1.7.2 修改用户环境变量11 1.8开始安装Oracle12 1.8.1 解压安装包12 1.8.2 进入解压目录,安装Oracle12 1.8.3 指定产品清单目录和XX明,默认即可,点击下一步13 1.8.4 产品特定的先决条件检查,点选用户已验证然后点击下一步即可14 1.8.5 安装15 1.8.6 执行配置脚本16 1.8.7 安装完毕退出17 第二章配置监听及建库18

ORACLE10G安装过程成功解决网络配置检测

Oracle10g安装过程成功解决网络配置检测: 注:ORACLE的安装路径中不能出现中文字符及空格(这也是Oracle为什么不能安装到C:\Program Files的原因),否则即使使用如下配置Microsoft LoopBack Adapter网络配置检测也不能通过。 在安装ORACLE10G前系统会检测安装的一些前提条件是否满足,往往会提示说:将Microsoft LoopBack Adapter配置为系统的主网络适配器。如果你没有这样配置,且你不希望安装过程由于这个而出错,那么过程如下: (1)停掉当前的网络连接(安装时只开通下面创建的Microsoft loopback Adapter,所有的其他网络连接都停掉); (2)控制面板-->添加硬件-->下一步-->是,我已经连接了此硬件-->添加新硬件-->安装我手动从列表选择的硬件-->网络适配器-->microsoft-->Microsoft loopback Adapter-->下一步-->安装完成 添加完成,你会发现新建了个“本地连接”,用的就是这个假的“Microsoft Loopback Adapter”(因为我根本就没有连接这个硬件,只是骗下Oracle而已)。把这个本地连接的IP设下(如192.168.0.1); (3)好了,现在回去重新让Oracle检测一遍吧,肯定是通过了。 应用程序访问方式:访问当前本地连接地址(Microsoft loopback Adapter是否该关闭?记得非常成功的一次是最好关闭),例如Microsoft Loopback Adapter的IP为192.168.0.1,而我当前网络的对外通路(即本地)连接为192.168.0.2,则访问此Oracle的地址为192.168.0.2 〖经验〗 (1)如果在安装时没有停掉本地连接,只是拔掉网线,网络断开,则仍可正确安装和使用,只是在开启Oracle10g服务之前必须开启Microsoft Loopback Adapter,否则Oracle10g服务无法启动. 在网络上其他机器Oracle9i Console连接此Oracle10g服务时使用sys之SYSDBA身份可以正常登录,而system提示授权不足无法登录 (2)如果在安装时没有停掉本地连接,也没有拔掉网线,而使本机在网络连通状态下,又如上配置Microsoft Loopback Adapter并开启,如此安装仍可成功,并且PLSQL、SQLPLUS 等Oracle10g环境下都可正常访问,但是局域网中的其他Oracle9i Console也无法连接此Oracle10g服务,而且本机和网络中的java程序都无法访问,apache-tomcat-6.0.14控制台将打印以下错误: 2007-10-823:31:47org.apache.catalina.startup.HostConfig checkResources 信息:Reloading context[/P54_AutoRefresh] java.sql.SQLException:Io异常:The Network Adapter could not establish the connection at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134) at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179) at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:333) at oracle.jdbc.driver.OracleConnection.(OracleConnection.java:404) at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:468) at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:314) at java.sql.DriverManager.getConnection(DriverManager.java:548) at java.sql.DriverManager.getConnection(DriverManager.java:179) at classmate.DB.(DB.java:16)

Oracle 10g安装教程带图片

ORACLE 10g 安装教程 刚刚接触ORACLE的人来说,从那里学,如何学,有那些工具可以使用,应该执行什么操作,一定回感到无助。所以在学习使用ORACLE之前,首先来安装一下ORACLE 10g,在来掌握其基本工具。俗话说的好:工欲善其事,必先利其器。我们开始吧! 首先将ORACLE 10g的安装光盘放入光驱,如果自动运行,一般会出现如图1安装界面: 图1

单击“开始安装”,就可以安装ORACLE 10g,一般会检查系统配置是否符合要求,然后出现“Oracle DataBase 10g安装”对话框,如图2所示: 图2

在安装Oracle DataBase 10g时可以选择“基本安装”和“高级安装”两种方法。选择“基本安装”时,“Oracle主目录位置”用于指定Oracle DataBase 10g软件的存放位置;“安装类型”用于指定Oracle产品的安装类型(企业版、标准版和个人版)。如果选择“创建启动数据库”,那就要指定全局数据库名称和数据库用户的口令。 选择“高级安装”,单击“下一步”,会出现“指定文件对话框”,在源路径显示的是安装产品所在的磁盘路径;目标名称用于资定Oracle主目录所对应的环境变量,目标路径用于指定安装Oracle软件的目标安装路径。设置目标名称为:OraDb10g_home1,目标路径为:D:oracleproduct10.1.0db1。如图3: 图3

单击“下一步”,会加载Oracle产品列表,然后出现“选择安装类型”对话框;如图4: 图4

选择安装类型时一般选择“企业版”,单击“下一步”,会出现“选择数据库配置”对话框,如图5 : 图5

LINUX下服务器安装oracle10g数据库教程

目录 1、l inux下安装oracle10g 2、表空间的建立及用户建立 3、O racle数据库随linux系统启动关闭及 自动备份 在linux下安装oracle10g 安装oracle: 1、内存及交换分区检查 [root@oracle10g ~]# cat /proc/meminfo | grep MemTotal MemTotal: 1034604 kB [root@oracle10g ~]# cat /proc/meminfo | grep SwapTotal SwapTotal: 1574360 kB 建议内存最少1G,交换分区为内存1.5~2倍。如果空间充足建议2倍。Oracle 安装之前会检测,但我在交换分区为内存一半的情况下,也安装成功过。当时内存为4G。 2、修改主机名及hosts文件 [root@oracle10g ~]# hostname oracle10g [root@oracle10g ~]# vi /etc/hosts # Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 localhost.localdomain localhost 172.16.60.196 oracle10g“改成配给那个门店的ip和服务器名qtjlmd” 建议修改,避免以后网络访问出现异常。退出重联看是否生效。 3、检查所需操作系统的RPM包是否完整 以下是oracle10g在RHEL5环境下,需要装的包。 # From RedHat AS5 Disk 1 cd /media/cdrom/Server rpm -Uvh setarch-2*

Oracle 10g安装与简介

中文名: Oracle 10g For Windows 英文名: Oracle 10g For Windows 别名: Oracle;10g 资源格式: 光盘镜像 版本: 10.1.0 发行时间: 2004年 制作发行: Oracle 甲骨文 地区: 大陆,美国 简介: [已通过安全检测] 瑞星17.57.42 [安装测试]WinXP SP2 上安装 Oracle 数据库 10g 共享服务时间:每天上午10点-下午6点

共享服务器:随机 软件版权归原作者及原软件公司所有,如果你喜欢,请购买正版软件 已经有人发过Linux版,那么再发一份Win版.安装需要机器配置较高. 一、概要 Oracle Database 10g 是第一个为企业级网格计算而设计的数据库,允许IT快速响应业务需求,在降低成本的同时,提供最高质量的服务。最重要的是,它易于部署和管理。 企业级网格计算的关键是要创建大型的行业标准的、模块化的存储器和服务器池。利用这种体系结构,每一个新系统都可以从这个组件池中快速得到供应。用户也不需要根据高峰负载来确定系统规模,因为可以容易地从这些资源池中按需要增加或重新分配容量。 企业级网格计算通过多种途径显着地降低了大型应用系统所需的存储器和服务器成本。凭借使用低成本的组件和提高资源利用水平,降低了硬件成本。同时因为每一个系统都可以按照相同的设计来构建,加上集中化管理和管理工具减轻了维护和监控的负担和相应的人工成本。利用这种更高的效率,IT能够快速响应业务需求,而且大大降低了总体风险。 二、高效的存储技术 对数据库而言,存储器是主要的资源之一。在今天的标准环境中,为获得最大的吞吐量而在不同磁盘存储器上存放数据的过程可能是一个费时的过程,并且数据库每次向存储区增加或从存储区删除磁盘时,都要重复这个过程。 Oracle Database 10g中新的自动存储管理(ASM)功能解决了这些挑战。ASM允许数据库直接管理原始磁盘。使得一个文件系统和卷管理器不需要同时管理数据文件和日志文件。ASM自动地跨磁盘为所有数据建立带区,提供了最高的I/O吞吐量,且无需任何管理成本。当增加或删除磁盘时,ASM自动维护带区。利用可选的镜像功能,提高了数据利用率,并且可以在线添加和删除磁盘。此外,因为由ASM处理已不再是数据库的文件的删除,从而消除了因人为错误而造成数据丢失

Redhatlinux9下安装oracle10g

Redhatlinux9下安装oracle10g 2010-08-24 一、第一检查安装oracle10g环境 1,查看系统内存 [root@linux4 ~]# grep MemTotal /proc/meminfo MemTotal: 1034584 kB 2,查看交换区大小 [root@linux4 ~]# grep SwapTotal /proc/meminfo SwapTotal: 2096472 kB 3,查看/tmp大小(至少400M) [root@linux4 ~]# df -m /tmp Filesystem /dev/sda2 8061 2585 5067 34% / 4,查看操作系统版本 [root@linux4 ~]# cat /etc/issue Red Hat Enterprise Linux ES release 4 (Nahant Update 5) Kernel on an \m 5,查看内核版本 [root@linux4 ~]# uname -r 2.6.9-55.Elsmp 6,检查系统是否有安装一下包 ?compat-libstdc++-33-3.2.3-61 ?elfutils-libelf-0.125-3.el5 ?elfutils-libelf-devel-0.125-3.el5 ?glibc-2.5-12 ?glibc-devel-2.5-12 ?glibc-common-2.5-12 ?gcc-4.1.1-52.el5 ?gcc-c++-4.1.1-52.el5 ?libgcc-4.1.1-52.el5

?libaio-0.3.106-3.2 ?libaio-devel-0.3.106-3.2 ?libstdc++-4.1.1-52.el5 ?libstdc++-devel-4.1.1-52.el5 ?unixODBC-2.2.11-7.1 ?unixODBC-devel-2.2.11-7.1 ?sysstat-7.0.0-3.el5 ?binutils-2.17.50.0.6-2.el5 ?make-3.81-1.1 [root@linux4 ~]# rpm -q binutils [root@linux4 ~]# rpm -q compat-db [root@linux4 ~]# rpm -q compat-libstdc++-296 [root@linux4 ~]# rpm -q control-center [root@linux4 ~]# rpm -q gcc gcc-c++ [root@linux4 ~]# rpm -q glibc glibc-common gnome-libs [root@linux4 ~]# rpm -q libstdc++ libstdc++-devel [root@linux4 ~]# rpm -q make pdksh [root@linux4 ~]# rpm -q sysstat [root@linux4 ~]# rpm -q xscreensaver setarch (假如没有安装请安装好以上rpm包,有必要时能够强制安装,使用命令:rpm –Uvh *****.rpm --force --nodeps) 在安装这些包时,专门是关于那些不是光盘安装的人来说,需要进行挂载mount涉及到windows与linux之间共享文件 具体实现: 在虚拟机设置里有一项options下share files选项里去设置,你会遇到Vmware tools 需要安装,其中原委请查资料。 安装了工具之后能够进行共享了,然后就能够进行挂载,将镜像文件挂载到linux系统上进行安装rpm包,可能安装过程中,其中包需要依靠关系,大致按上述顺序即可。

linux安装oracle10g问题解析

有安装程序要求均已满足。 准备从以下地址启动 Oracle Universal Installer /tmp/OraInstall2012-02-27_05-13-29PM. 请稍候...写入目录 /tmp/OraInstall2012-02-27_05-13-29PM 时出错。请确保此目录是可写的, 并且至少有 60 MB 的磁盘空间。无法继续安装。 : 没有那个文件或目录 [oracle@standby database]$ df -h 文件系统容量已用可用已用% 挂载点 /dev/sda1 38G 3.5G 33G 10% / /dev/sda5 37G 950M 35G 3% /home /dev/sda3 996M 907M 38M 97% /tmp ---------可以看到还有 38M可用了 tmpfs 538M 0 538M 0% /dev/shm [oracle@standby database]$ cd /tmp [oracle@standby database]$ rm -rf /tmp/* ------------------------------------------------------------------------------------------------------ 删除后再安装就可以了 在linux系统中用Oracle帐号执行DBCA或其他JAVA图形界面程序时,报错: Xlib: connection to ":0.0" refused by server Xlib: No protocol specified Error: Can't open display: :0.0 解决办法:用root登陆,在#提示符后输入: xhost local:oracle non-network local connections being added to access control list 敲回车运行后出现: non-network local connections being added to access control list xhost: bad hostname "non-network" xhost: bad hostname "local" xhost: bad hostname "connections" xhost: bad hostname "being" xhost: bad hostname "added" xhost: bad hostname "to" xhost: bad hostname "access" xhost: bad hostname "control" xhost: bad hostname "list"

windwows server 2008安装oracle10g数据库

windwows server 2008安装oracle10g数据库操作步骤 1.Oracle 10g版本是10. 2.0.1.0 2.选择Oracle安装目录及数据库登录密码。如下图中红色标识,密码为:Test。 3.如果是windwows server 2008 系统下,点击“下一步”安装Oracle 10g 会提示“程序异 常终止,发生未知错误”。如下图所示: 关于此问题的解决方法如下: 3.1点击取消按钮,退出安装程序。

3.2.修改Oracle 10G(安装文件)\database\stage\prereq\db\refhost.xml 当打开refhost.xml 文件 在后面添加 3.3.到install目录中找到oraparam.ini文件,把 #Windows=4.0,5.0,5.1,5.2 修改成 #Windows=4.0,5.0,5.1,5.2,6.1 并在后面添加 [Windows-6.1-required] #Minimum display colours for OUI to run MIN_DISPLAY_COLORS=256 #Minimum CPU speed required for OUI #CPU=300 [Windows-6.1-optional] 4.右键setup.exe,属性->兼容性->以兼容模式运行这个程序Windows Server 2003,并以管 理员身份运行。如下图所示: 5.运行程序后,安装步骤2填写完后,点击“下一步”即可进入安装界面。如下图:

redhat linux5 安装oracle10g(本人已多次实践成功)

一、准备工作 首先给linux打补丁,补丁自己上网找!补丁的安装方法一共有两种:一个是FTP,将文件FTP到linux系统中进行安装;一个是用光盘安装。我推荐使用FTP的方法,因为灰常灰常的方便,方法不会的话自己去网上找,这里不做过多介绍。 将文件传到LINUX系统以后,按顺序执行: rpm –ivh libXp-1.0.0-8.i386.rpm openmotif22-2.2.3-18.i386.rpm compat-db-4.2.52-5.1.i386.rpm compat-gcc-34-3.4.6-4.i386.rpm (要先安装rpm -ivh glibc-devel-2.5-12.i386.rpm) compat-gcc-34-c++-3.4.6-4.i386.rpm compat-libstdc++-33-3.2.3-61.i386.rpm libaio-0.3.106-3.2.i386.rpm compat-libstdc++-7.3-2.96.128 libXp-1.0.0-8.1.el5 make-3.81-1.1 gcc-4.1.1-52.el5 compat-db-4.2.52-5.1 compat-gcc-c++-7.3-2.96.128 setarch-2.0-1.1 compat-libstdc++-devel-7.3-2.96.128 openmotif21-2.1.30-8 glibc-2.5-12 compat-gcc-7.3-2.96.128 在安装compat-gcc-34-3.4.6-4.i386.rpm compat-gcc-34-c++-3.4.6-4.i386.rpm 包时要先安装rpm -ivh glibc-devel* 等包装glibc-devel* 时又要先装glibc-headers*包,有启示信息(不知道是为什么我按照说明进行补丁安装的时候竟然都提示我已经安装了!我一直没有安装过啊,感觉怪怪的!) 二、修改配置文件 1.修改版本号 因为Oracle 10g官方只支持到RHEL4为止,所以需要在root用户下运行 #vi /etc/redhat-release 将Red Hat Enterprise Linux Server release 5 (Tikanga) 改为Red Hat Enterprise Linux Server release 4 (Tikanga) 2.然后修改一下文件linux内核参数 : 编辑/etc/sysctl.conf文件后加入以下代码: kernel.shmall = 2097152 # 可以使用的共享内存的总量。 kernel.shmmax = 2147483648 # 最大共享内存段大小。 kernel.shmmni = 4096 # 整个系统共享内存段的最大数目。 kernel.sem = 250 32000 100 128 # 每个信号对象集的最大信号对象数;系统范围内最大信号

LINUX傻瓜系列-oracle10g安装

Oracle安装 安装前准备 检查AS5的SWAP分区,最好大于2G,否则会出现警告,强行安装也可以;不要使用防火墙和selinux。 把oracle的安装包放在/data/soft目录上(安装包存放路径可自由创建), 解压文件。 安装程序下载: 10.2.0.1版本:10201_database_linux32.zip 10.2.0.4升级补丁:p6810189_10204_Linux-x86.zip 安装前的配置 检查补丁 首先请安装本文档中《RedHat AS5 安装手册》文档安装linux,安装过程中有的需要安装其他的依赖包,可以看提示安装依赖包在安装所需要的软件包,安装不成功的,可以尝试多安装一次,有些错误可以忽略 从对应光盘中找到并安装以下所需要的软件包: 注:安装操作系统时候如将开发组件全部选择上之后,可省略该步骤。 # 从RedHat AS5 光盘1 cd /media/cdrom/Server rpm -Uvh setarch-2* rpm -Uvh make-3* rpm -Uvh glibc-2* rpm -Uvh libaio-0* # 从RedHat AS5 光盘2 cd /media/cdrom/Server rpm -Uvh compat-libstdc++-33-3* rpm -Uvh compat-gcc-34-3* rpm -Uvh compat-gcc-34-c++-3* rpm -Uvh gcc-4* rpm -Uvh libXp-1* # 从RedHat AS5 光盘3 cd /media/cdrom/Server rpm -Uvh openmotif-2* rpm -Uvh compat-db-4* 修改系统版本 因为oracle 的官方只支持到RHEL4为止,所以要修改版本说明,把Red Hat Enterprise Linux Server release 5 (Tikanga) 注释掉,前面加上一行redhat-4,当然oracle安装完成后,要修改回来。redhat-4 必须为redhat-release文件的第一行,否则安装时还会报警告# vi /etc/redhat-release

linuxx64位下安装Oracle 10g

目录 一、硬件要求 二、软件 三、系统安装注意 四、安装Oracle前的系统准备工作 五、安装Oracle,并进行相关设置 六、升级Oracle到patchset 10.2.0.4 七、使用rlwrap调用sqlplus中历史命令 一、硬件要求 1、内存& swap Minimum: 1 GB of RAM Recommended: 2 GB of RAM or more 检查内存情况 # grep MemTotal /proc/meminfo # grep SwapTotal /proc/meminfo 2、硬盘 由于CentOS安装后差不多有4~5G,再加上Oracle等等的安装,所以请准备至少10G的硬盘空间。 检查磁盘情况 # df -h

二、软件 系统平台:CentOS 6.3(x86_64) CentOS-6.3-x86_64-bin-DVD1.iso Oracle版本:Oracle 10g R2 10201_database_linux_x86_64.cpio 补丁:p6810189_10204 p6810189_10204_Linux-x86-64.zip 三、系统安装注意 系统安装时一定要安装桌面模式,否则无法安装oracle,另外请勿开启SELinux,oracle官方不建议使用SELinux,CentOS的防火墙也请暂时关闭,减少安装时的困扰。为防止Oracle安装过程中出现乱码,建议使用英文作为系统语言,进行Oracle的安装工作。(Linux系统安装的时候最好将所有包都勾选安装,否则后面缺包的时候很麻烦,一旦缺包最好通过yum来进行相关的安装,应为Linux包之间的依赖关系太复杂) 本文中所描述的系统命令,未经特殊标示,均为“#”代表root权限,“$”代表oracle权限。 四、安装Oracle前的系统准备工作 首先,请先以root账号登入作一些前置设定作业。 1、关闭防火墙、禁用SELinux # setup

oracle10g安装手册

作者:X亚强 ORACLE安装说明文档 一:安装数据库:所用数据库为Oracle,版本为10G 具体的安装步骤如下: ●插入光盘后如果安装程序没有自动启动,双击光盘中的setup.exe 文件图标即可 启动安装程序(如下图): ●基本安装是用于常规的数据安装方法。 全局数据库名:是用于标识数据库的名称。 数据库口令:数据库管理员(sys,system,sysman)的口令(不能为空)。 ●高级安装用于特定数据库的安装。(此处我们选择高级安装) 选择高级安装,点击下一步 在选择了安装方法(高级安装)之后点击下一步,进入选择数据库安装类型界面(如 图):

●选择了数据库的安装类型之后(此处我们选择企业版),单击下一步(如图)指定 Oracle 目录信息,选择自己需要存放的安装的位置,此处我们选择安装在D盘 ●名称是用于安装完数据库之后在开始菜单程序中显示的名称。路径是用于保存数据 库的路径(建议默认)单击下一步:

●开始数据库安装条件的查询,当检查完成之后点击下一步(时间较长) ●创建数据库是在安装完数据库软件之后就自动开始创建数据库。仅安装数据库,是 仅安装数据实例并不创建数据库(在安装完之后再进行创建数据库)。此处我们选择创建数据库,点击下一步(如图)

●根据数据库的使用情况选择数据库的配置(此处我们选择一般用途),单击下一步 (如图) 输入数据库名及SID。全局数据库名用户可以自己定义:如果用户自定义的全局数据库名与软件系统中的不同,则用户在下面部署应用系统时需要修改软件配置文件中的全局数据库名。 ●字符集选择框是用于设置数据库存储的数据以哪种字符集存储数据,建议(简体中 文),否则在特定情况下,读取到的数据会出现乱码。继续点击下一步(如图):

Linux oracle 10G的安装图解教程

一·安装前的准备配置 安装Oracle前的准备很重要,如果没有准备好,导致多次安装数据库不成功。 (一)查询所需安装包是否完整 进入系统,终端命令: # rpm -q gcc make binutils openmotif setarch compat-db compat-gcc compat-gcc-34-c++ compat-libstdc++ rpm -qa |grep compat-gcc rpm -qa |grep compat-libstdc++ 第一条命令无法列出compat-gcc和compat-libstdc++两个包,所以只能用下面两个命令检查。 缺少的都需要安装相关的软件包,RHEL5一共有5张光盘,请参考下面: 安装下面的包: # 从RedHat AS5 光盘1 [root@dodata ~]#cd /media/cdrom/Server [root@dodata ~]# r pm -Uvh setarch-2* [root@dodata ~]# r pm -Uvh make-3* [root@dodata ~]# r pm -Uvh glibc-2* [root@dodata ~]# r pm -Uvh libaio-0* # 从RedHat AS5 光盘2 [root@dodata ~]#cd /media/cdrom/Server [root@dodata ~]#rpm -Uvh compat-libstdc++-33-3* [root@dodata ~]#rpm -Uvh compat-gcc-34-3* [root@dodata ~]#rpm -Uvh compat-gcc-34-c++-3* [root@dodata ~]#rpm -Uvh gcc-4* [root@dodata ~]#rpm -Uvh libXp-1* # 从RedHat AS5 光盘3 [root@dodata ~]#cd /media/cdrom/Server [root@dodata ~]#rpm -Uvh openmotif-2* [root@dodata ~]#rpm -Uvh compat-db-4* 如果是DVD光盘,或已将所有CD盘上的内容复制到了一个目录,则可以使用下面的命令批量一次安装所有需要的包通过加载光驱中的光盘安装文件 [root@dodata ~]#mount -t iso9660 /dev/cdrom /mnt [root@dodata ~]#cd /mnt/Server 复制如下命令进行安装 rpm -Uvh setarch-2.0-1.1.i386.rpm rpm -Uvh make-3.81-3.el5.i386.rpm rpm -Uvh glibc-2.5-34.i686.rpm rpm -Uvh libaio-0.3.106-3.2.i386.rpm rpm -Uvh compat-libstdc++-33-3.2.3-61.i386.rpm rpm -Uvh kernel-headers-2.6.18-128.el5.i386.rpm rpm -Uvh glibc-headers-2.5-34.i386.rpm rpm -Uvh glibc-devel-2.5-34.i386.rpm rpm -Uvh compat-gcc-34-3.4.6-4.i386.rpm rpm -Uvh compat-gcc-34-c++-3.4.6-4.i386.rpm rpm -Uvh libgomp-4.3.2-7.el5.i386.rpm

windwows server 2008 R2 安装oracle10g数据库 操作步骤

windwows server 2008 R2安装oracle10g数据库操作步骤 注意: 需要安装32位安装包.(32位才有更多兼容性选择) 1. Oracle 10g版本是10. 2.0.1.0 2. 选择Oracle安装目录及数据库登录密码。如下图中红色标识,密码为:Test。 3. 如果是windwows server 2008 系统下,点击“下一步”安装Oracle 10g 会提示“程序异常终止,发生未知错误”。如下图所示:关于此问题的解决方法如下: 3.1点击取消按钮,退出安装程序

关于此问题的解决方法如下: 3.1点击取消按钮,退出安装程序。 3.2.修改Oracle 10G(安装文件)\database\stage\prereq\db\refhost.xml 当打开refhost.xml 文件在后面添加 3.3.到install目录中找到oraparam.ini文件,把 #Windows= 4.0, 5.0,5.1,5.2 修改成 #Windows=4.0,5.0,5.1,5.2,6.1 并在后面添加 [Windows-6.1-required] #Minimum display colours for OUI to run MIN_DISPLAY_COLORS=256 #Minimum CPU speed required for OUI #CPU=300 [Windows-6.1-optional] 4. 右键setup.exe,属性->兼容性->以兼容模式运行这个程序Windows Server 2003,并以管 理员身份运行。如下图所示:

相关主题