您的位置:首页 > 数据库 > Oracle

关于Oracle导库问题,以及PL/SQL的配置问题

2018-01-25 18:43 393 查看
经过身心压力,终于找到了实习,博主今年大三,实习的公司是用友金融,还是不错的,今天来的是第二天。
公司里用的都是Oracle数据库,来了先接触项目,第一件事就是要导库,安装Oracle就没什么说的,随便找个教程都可以。
然后可视化界面用的是PL/SQL,这个安装需要记录一下,
因为我下了一个汉化包,提供给大家下载地址:http://www.cr173.com/soft/61280.html#address
首先第一步:以游客身份进入plsql
第二步:在plsql的上方有一个叫做工具的项目栏,点开。
第三步:找到连接,填写Oracle主目录地址,OCI库地址
填写方法:Oracle的地址只需要把OCI库地址后面的oci.dll删去即可,OCI库地址会自动适配好
ps;同事的OCI不知道为什么没有自动适配,等解决之后会来更新。
第四步:配置环境变量
在计算机属性----高级系统设置----高级----环境变量
在系统变量中添加ORACLE_HOME
变量值:安装client的地址,如果找不到可以搜一下Instant Client文件
第五步:最后配置监听:D:\Oracle\Instant Client\network\admin 文件夹下面的tnsnames.ora写入你要连接的库
至此PL/SQL就配置成功了。

接下来的问题是导库,导入的是dmp文件,用的方法的是数据泵导入
基本语句:

1,打开“开始”-->输入cmd—> sqlplus /nolog;

2,输入 conn / as sysdba管理员账户登录;

3,需要创建表空间,如果我们知道需要导入的数据库的表空间直接创建就可以,如果不不知道,也没有关系,我们可以用txt打开dmp文件,使用快捷键ctrl+F,查找tablespace,就可以找到这个dmp文件所对应数据库的表空间,然后创建我们找到的表空间就可以;

步,不创建的表空间,创建用户,并分配权限;

5,打开“开始”-->输入cmd(注意:这里是cmd窗口,不是sqlplus窗口!!!),输入以下语句:“imp kang/123456@localhost/ORACLEfile="C:\daochu.dmp"full=y ignore=y”

上述语句说明如下:

kang是创建的登录数据库用户名;

123456是登录数据库的密码;

localhost:代表当前数据库的地址是本机,如果是远程导入,替换成对应的ip地址就行

ORACLE:是实例名称)

file:后面的是你当前dmp文件存放的路径

full=y,这个貌似是全部

ignore=y,忽略一些错误

顺便还查了一下导出的语句:

dmp文件导出用的比较多的一般是三种,他们分别是:导出整个数据库实例下的所有数据、导出指定用户的所有表、导出指定表。

这里已我的数据库为例,进行介绍,我的Oracle数据库实例为"ORACLE",查看自己数据库实例可以从"任务管理器-->服务"中进行查看,如下图



打开命令行:

1,将数据库ORACLE完全导出,用户名system密码manager 导出到c:\daochu.dmp中

exp system/manager@ORACLE file=c:\daochu.dmp full=y

2,将数据库中RFD用户与,JYZGCX用户的表导出

exp system/manager@ORACLE file=d:\daochu.dmpowner=(RFD,JYZGCX)

3,将数据库中的表T_USER、T_ROLE导出

expJYZGCX/JYZGCX@ORACLEfile= d:\data\newsmgnt.dmp tables=(T_USER,T_ROLE)

上面的system为用户名,manager为密码,ORACLE为数据库实例名,其实不一定非的用system用户,只要是拥有管理员权限的用户都可以。
这块整体都是借鉴 https://www.2cto.com/database/201412/365154.html 因为我也是和这个学习的。

之前的建表空间还遇到了许多问题

问题一:

建立表空间地址错误,如何修改?

建立表空间时需要把表空间放入到 D:\app\Administrator\oradata\orcl 这个目录下

如果地址写错怎么办?

第一想法是更改地址,但是更改之后也是不能同名的,这个表空间的名可不能更改,因为是与dmp文件中的表空间对应的。

第二想法是把表空间删除。

首先不能手动把表空间给删除,要在cmd中进行操作,删除之前要进行授权或者用管理员身份运行

drop tablespace xxx including contents and datafiles;(xxx是表空间名),这样删除是把表空间从物理上和空间上都给删除。

hhh,没有第三想法了,

问题二:

进行数据泵导入时,一般都会创建一个directory路径,但是这个路径也建错了位置怎么办?

第一想法是在我需要的地方重新建一个directory路径,但是尝试过后发现不行,因为建立路径都是同一级别的,在别的地方建立会同名,所以要不就起一个别的名字,要不就把原来的删除,但是directory根本就找不到,所以只能通过语句来实现删除操作。

语句:drop directory WKXT

后面的WKXT取决于你的路径 例:D:\WKXT\abc

那要写成WKXT_abc

问题三:

提示数据库未打开?

第一步语句:

shutdown immediate;

会提示 数据库未打开

已卸载数据库

第二步语句:

startup mount;

Oracle例程已启动

第三步语句:

select * from v$log;

然后会提示一些东西,

第四步语句:

startup;

数据库卸载完毕

数据库已打开

目前就遇到了这些问题,虽然是些小问题,但毕竟是第一次用Oracle,慢慢能感觉到他的强大,希望以后慢慢学习。

加油,共勉!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: