oracle操作文档1.0
    oracle学习文档
    一、 Oracle设置
    oracle设置是在oracle用户下的超级用户下进行设置的。
    1.环境变量的设置
    oracle软件使用了许多环境变量,非常重要的三个是oracle_home,oracle_base和acle_home指定了你希望运行的oracle执行程序的位置.一台计算机上可能安装了若干个版本的oracle软件,大多数oracle程序查询oracle_home来决定运行何种版本的软件.oracle_base定义了数据库管理文件安装的基本目录.oracle_sid定义了你希望在其上工作的本地oracle数据库名称。如:
    oracle_uubase=/home/db/oracleoracle_uusid=suptdb
    ld_library_path=/home/db/oracle/product/10.2.0/liboracle_home=/home/db/oracle/product/
10.2.0path=$path:$oracle_home/bin
    exportoracle_uuBaseld_uuLibrary_Pathracle_uuSidOracle_uHomePath
    2.数据库的启动
    的概念将涉及数据库的启动和监控。这里我们将介绍听众。Listener是基于Oracle server的网络服务,主要用于监控客户端向数据库服务器发出的连接请求。因为它是一个服务器端服务,所以它只存在于数据库服务器中,侦听器设置也在数据库服务器中完成。因此,在编写EC程序时,当其他用户访问Oracle数据库时,必须打开测试监控。
    设置好环境变量后可启动oracle。su-oraclesqlplus/nologconn/assysdbastartup
    然后开始听:
    进入/opt/oracle/product/9.2.0/bin/lsnrctlstart
    3.创建用户oracle建立数据库连接
    创建用户,test1为用户名,test2为密码sql>connect/assysdba
    sql>createusertest1identifiedbytest2;应授予该用户一些操作oracle的权限
    给用户一些基本权限用于数据库的操作
    Grantconnect,resourceto用户名(此处仅授予用户链接权限)
    二、连接数据库
    首先,为使用数据库的用户设置环境变量,例如:
    #用户设置
    oracle_uuusername=test1oracle_uuuuwd=test2#oracle目录
    oracle_base=/home/db/oracle#oracle库
    ld_uu图书馆路径=$ld_u图书馆路径:/home/db/oracle/product/10.2.0/liboracle uu home=/home/db/oracle/product/10.2.0 35; oracle数据库名称oracle_sid=suptdb
    path=$path:$oracle_home/bin
    exportoracle_uuBaseld_uuLibrary_Pathracle_uHomeracle_sidpathexportoracle_usernameoracle_uuPasswd#oracle数据库字符集设置客户端locale=zh_cn。gbdb_u;locale=zh_;cn。gbserver_u;locale=zh_cn。国标
    exportclient_localedb_localeserver_localeexportnls_lang=american_america.zhs16gbk
    三、 EC计划的准备
    1.连接数据库时需加上用户名和密码以及数据库名称
    例如:execsqlconnect:szdbname;
    其中(szdbname为test1/test2@suptdb)对数据库的操作无非是增删查操作。
    2.NVL功能的使用
    在做查询时要是用数据库函数nvl,当提取某个字段时oracle会自动判断表中字段值情况,因此在使用select语句时要用到nvl函数来避免数据库报错(错误码:-1405),nvl函数处理则
是当字段是为空时则默认将''中的值来进行代替。
    例如:execsqlselect NVL(cert_type.)、NVL(cert_no.)、NVL(cust_nm.)、进入:szcerttype、:szcertno、:szcustname from uptdata bsu_u;acct_uuuinfowhere cct_ucrd_uno=:szacctno;
    3.连接其他用户数据表
    以上面的EC项目为例
    可以看到from后面的表则是采用:用户名.表名。这是由于此张表不是由当前用户所建立的(当前用户为连接数据库的用户,即suss),但是都属于同一个数据库,因此在访问时要加上建立此表的用户名称。同一用户则不用加用户名称。注意:访问其它表时,需要其表的用户赋予使用权限,命令为:grantselecton表名to用户名称;(赋予查询权限)。
    4.顺序的使用
    在建立表中遇到使用自增序列,但是oracle中没有类似informix中的serial类型,因此需借助与oracle自带的序列来达到自增效果。建立序列脚本:
    Createsequence序列名称--创建序列命令递增1--每次加1
    startwith1--从1开始计数nomaxvalue--不设置最大值
    Nocycle——总是累积,不要循环nocache——在插入数据而不创建缓冲区时,请注意这个自动增量字段需要是(sequence name.Nextval)。例如:
    表结构为:fi_id,fs_str表名:tt序列名:tt_sequence
    插入数据:插入ttvalues(tt_sequence.Nextval,'ASD');
    (也可以序列与触发器一起进行设置自增序列,感兴趣可以在网上查查自己试一下)
    5.进出口数据处理
    下面介绍的是导入导出的实例。
    数据导出:
    a)将数据库test完全导出,用户名system密码manager导出到d:daochu.dmp中
    expsystem/manager@testfiled:道处。Dmpfull=Yb)导出数据库中系统用户和系统用户的表
    expsystem/manager@testfile=d:daochu.dmpowner=(system,sys)c)将数据库中的表inner_notify、notify_staff_relat导出
    expaichannel/aichannel@testdb2file=d:datanewsmgnt。dmptables=(内部通知,通知员工)
    d)将数据库中的表table1中的字段filed1以\打头的数据导出
    expsystem/manager@testfiled:道处。dmptables=(表1)query=\wherefiled1类似'00%'\
    数据的导入
    a) D:Daochu DMP中的数据被导入测试数据库。
    impsystem/manager@testfile=d:daochu.dmp
    impaichannel/aichannel@hustfull=yfile=d:datanewsmgnt。dmpignore=y可能有问题,因为某些表已经存在,然后它将报告错误,因此将不会导入该表。
    在后面加上ignore=y就可以了。b)将d:daochu.dmp中的表table1导入
    impsystem/manager@testfiled:道处。dmptables=(表1)
    基本上上面的导入导出够用了。不少情况要先是将表彻底删除,然后导入。这里的导入会将数据表的结构一并导入库中。注意:
    操作员应有足够的权限。如果权限不足,将提示。进口和出口在我们自己的机器上构建的系统中非常有用。您可以将测试环境的数据复制到自己的数据库中。
    此文档会赠送一oracle错误说明文档,便于及时解决操作数据库产生的错误。