ORACLE 8i 基本操作

时间:2022-09-16 19:38:39

注意事项
A oracle中的对象名称使用大写
如数据库名,表名,字段名,视图名等。当然用小写一般也可以,但最好用大写。
B oracle数据库服务默认的端口号为 1521
C Manager的拼写
D 字符串相加用 || ,例 :select 'aaaa'||'bbbb' from dual;
E DESC 用来查看表的结构:包含哪些字段以及字段的数据类型
F 日期转字符串的函数 TO_CHAR(日期字段,格式化字符串)

一 安装
1 点击安装盘下的setup.exe文件即可,安装过程中使用默认选项即可,在最后阶段会创建一个新数据库,要求用户输入数据库名,继续安装步骤即可完成整个Oracle的安装

2 可能在有的机器上(如P4,赛扬4)不能正常安装,会有两种情况
A 点setup.exe鼠标变成漏斗状马上又恢复原来的箭头状态,安装没有执行。
B 点setup.exe会进行安装,但在创建数据库时不能正确创建

解决方案
在P4机器上完全没有安装过Oracle时,修改文件名即可,推荐使用方案一,很简单,如果用户没有使用方案一而安装oracle之后发现不能创建数据库,这时可以使用方案二。
A 方法一:
在机器上创建一个临时目录。
拷贝光盘到第一步建立的临时目录中。
搜索整个目录,查找名字为symcjit.dll的文件。
Rename每个symcjit.dll为symcjit.old 。
运行/install/win32目录中的setup.exe文件开始安装

B方法二:
Oracle8i安装完不能创建数据库时就使用此方案,例如oracle安装到了c:/oracle/ora81,则在安装目录下搜索所有以cl为后缀的文件(搜索中填入*.cl,选中高级选项的搜索子文件夹即可),1.7有如下十个文件
assistants/dbca/dbassist.cl
assistants/dbma/dbmig.cl
assistants/ifa/ifa.cl
bin/elogin.cl
bin/owm.cl
ldap/oidamdin/oidadmin.cl
network/tools/netasst.cl
network/tools/netca.cl
owm/install/instelogin.cl
owm/install/instowm.cl
用记事本依次打开上述文件,增加参数 –nojit,以dbassist.cl文件为例
示意如下:
Command=("C:/Program Files/Oracle/jre/1.1.7/BIN/JREW" -nojit -
classpath ....)
用相同的方法修改所列出的每一个.cl 文件内容。
修改完毕之后再利用database configure assistant即可创建数据库。
二 配置
要使用一个数据库必须保证三个条件:
启动监听服务
启动该数据库对应的服务
在Net8 Assintant设置该数据库的服务别名
1 介绍windows下的”服务”
“控制面板”---“管理工具”---打开“服务”
A “OracleOraHome81TNSListener” 监听服务:它负责监听本机上所有的数据库服务;如果要使用数据库服务,必须首先启动此服务。
演示:停止此服务,SQL PLUS中不能连接数据库

B “OracleServiceXXX”:XXX表示数据库名。只要用户创建了一个Oracle数据库,就会在“服务”中出现一个对应的服务。Oracle中可以创建多个数据库,这时也就会有多个对应的服务。
演示:略

C 介绍服务的启动类型:手动,自动,已禁用

2 Net8 Assistant
A 为什么使用它?
创建数据库之后,数据库名很少直接使用,往往使用的数据库对应的服务别名。

B 如何配置?
注:有时候打开Net Assistant后窗口中无内容,关掉后重新打开即可。
“Network Administrator”----“Net8 Assistant”—
--------- “本地”
--------------------“服务命名”
--------------------“监听程序”
a 首先在监听程序中配置临听主机
注:有时候发现“服务”中的监听服务不能启动,原因就是此处的监听程序没有配置好,可能对于本机没有配置监听或者配置了多个监听。一台主机在“监听位置”中要配置一次并且只能配置一次。临听程序也只需要一个即可。
演示:略
b 在“服务命名”中设置具体的数据库对应的服务别名。
右边的服务名是指数据库名,是我们创建数据库时指定的。而服务别名是我们此时任意指定的。
演示:略

注:Net8 Assistant修改之后 要保存修改配置才能生效。
三 介绍基本的数据库访问工具
SQL*PLUS , DBA Studio , Console ,:命令行
1 SQL*PLUS
登录:简单的输入方式:用户名中填:用户名/密码@服务别名
A 基本选项设置:
set serveroutput ON
begin
DBMS_OUTPUT.PUT_LINE(“HELLO,ORACLE”) ;
END;
/
set LINESIZE 1000 修改每行所能字受的字符的数目
有SQL PLUS的帮助文件,可以在网上找到

B 基本使用
B1:调用编辑程序 ed
B2:复制与粘贴
B3:commit的使用 演示
B4:column:column X format A20的使用

2 DBA Studio
A 一般以独立模式登录
注:如果用“登录到Oracle Management Server”(OMS)则能在其中调用控制台,控制台才是功能包含了DBA Studio的功能,比DBA Studio要强大,例如数据库的备分恢复,表空间的导入导出操作只能在控制台中才能完成。
B 从树中移去数据库,将数据库添加到树
C “查看”—“按对象”或“按方案”
D 表的创建,数据编辑,类似创建

3 控制台
使用控制台有两个条件
A 必须首先创建资料库才能启动
B 创建资料库后,启动“服务”中对应的”OracleOraHome81ManagementServer”服务
以后具体讲

4 命令行
C:/>set oracle_sid=accp

C:/>svrmgrl

Oracle Server Manager Release 3.1.7.0.0 - Production

Copyright (c) 2000, Oracle Corporation. All Rights Reserved.

Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production
With the Partitioning option
JServer Release 8.1.7.0.0 - Production

SVRMGR> connect system/manager@accp
连接成功。
SVRMGR> desc dual;


四 新建数据库,新建表,数据录入

1 概念:介绍oracle数据库中的一些要求------表空间,用户,权限
Oracle实例:一台主机上安装一次oracle即产生一个Oracle实例。

Oracle数据库:通过database configure创建的数据库。
表空间:Oracle数据库被划分为一个或多个称为表空间的逻辑结构,它包括两类表空间,System表空间和非System表空间,其中,System表空间是安装数据库时自动建立的,它包含数据库的全部数据字典,存储过程、包、函数和触发器的定义以及系统回滚段。除此之外,还能包含用户数据。

用户:A 概念:用户帐号虽然不是数据库中的一个物理结构,但它与数据库中的对象有着重要关系, 这是因为用户拥有数据库的对象。用户SYS拥有数据字典,数据字典中的这些表存储了数据库中其它结构的所有信息。
当在数据库中创建对象时,必须是在用户帐号下进行。可以对每一个用户帐号进行设置,设置一个特定的表空间作为他的缺省表空间使用。
B 用户缺省的表空间:即以后该用户所拥有的数据库对象及其数据会存储在表空间所对应的数据文件中。

用户与表空间的关系:创建新用户时,必须为其指定一个表空间。也就是说也要有表空间,才能再有用户。

数据库对象:数据库中所创建的这些实体,比如表,视图,触发器,存储过程等,称作数据库对象。用户拥有数据库对象。


创建的先后顺序:实例->数据库(n)à多个表空间(n)->用户(n,但最好是1)->数据库对象(n)


2 配置数据库(演示从头创建一个数据库)
明确新建数据库完毕后OracleServiceXXX就会在服务中存在
A 找到数据库名称-----如果不记得可能过查看“服务”中的OracleServiceXXX
B 到Net8 Assistant 配置服务别名
C 首先在DBA中操作数据库,然后在sql plus,控制台中

五 通过命令行进行常规操作

1 创建表空间
首先创建空间时,必须有此权限的用户才能创建表空间
create tablespace NEWTS1
datafile 'c:/oracle/oradata/XXX/newtest1.dbf ' size 10M ;

删除表空间
DROP TABLESPACE MEWTEST1 INCLUDING CONTENTS;
2 创建用户
创建用户必须要当前用户有权限才行

CREATE USER "NEWUSER1" PROFILE "DEFAULT"
IDENTIFIED BY "NEWUSER1"
DEFAULT TABLESPACE "NEWTS1"
TEMPORARY TABLESPACE "TEMP"
ACCOUNT UNLOCK ;

PROFILE:指概要文件
ACCOUNT:状态

删除用户:DROP USER "NEWUSER1"


3 为用户赋权限
角色用双引号,系统权系不用双引号
GRANT "CONNECT" , "DBA" , "RESOURCE" , UNLIMITED TABLESPACE , CREATE ANY TABLE TO "NEWUSER1"

去除权限:REVOKE "CREATE ANY TABLESPACE" FROM "NEWUSER1";
4 重新用新用户连接,创建数据库对象
CONNECT NEWUSER1/NEWUSER1@NEWDB1 ;
DESC DUAL;
CREATE TABLE T1(..);
REVOKE "DBA" , UNLIMITED TABLESPACE FROM "NEWUSER1"
CREATE TABLE T2(..);//报错
注:至少要有"CONNECT" , "RESOURCE" , UNLIMITED TABLESPACE三个权限才能执行创建表操作


附1:通过命令行操作监听器

C:/>lsnrctl
LSNRCTL for 32-bit Windows: Version 8.1.7.0.0 - Production on 18-2月 -2004 11:1
欢迎来到LSNRCTL,请键入"help"以获得信息。

LSNRCTL> stop
连接至(DEs criptION=(ADDRESS=(PROTOCOL=TCP)(HOST=JCC)(PORT=1521)))
命令执行成功

LSNRCTL> start
启动tnslsnr:请稍候...
命令执行成功

退出监听回到X:盘符下
LSNRCTL> exit

C:/>
---------------
注:清除cmd的屏幕用cls命令

附2:通过命令行操作数据库服务,通过oradim命令
A停止服务
set oracle_sid=accp
oradim -shutdown -sid accp -shuttype srvc,inst

B启动服务
set oracle_sid=accp
oradim -startup -sid accp -starttype srvc,inst

PL/SQL DEV 有时间则讲,无时间不讲

1. 新安装数据库的用户名与密码
(将创建 Oracle 数据库。数据库名为 ACCPJCC。数据库的系统标识符为 ACCPJCC。)
新建一个数据库后,数据库中有一些默认的用户
INTERNAL 帐户的口令为 oracle,SYS 帐户的口令为 change_on_install,SYSTEM 帐户的口令为 manager , SCOTT 帐户的密码为tiger
登陆控制台(Oracle Enterprise Manager :OEM)的用户名:SYSMAN 密码:OEM_TEMP