ITPub博客

首页 > Linux操作系统 > Linux操作系统 > PLSQL连接ORACLE数据库

PLSQL连接ORACLE数据库

原创 Linux操作系统 作者:ohz_wl081 时间:2011-12-24 13:34:23 0 删除 编辑

刚入门的菜鸟伤不起,以前在公司用 PL/SQL 连 接数据库服务器,配置一下客户端网络管理就行了,服务器端根本就不用也轮不到我来搞,所以只要客户端配置正确,一分钟就可以连接到数据库服务器并对其进行 权限范围内的操作,但是在自己的电脑环境里面,数据库服务器端和客户端都是自己搭建的,所以遇到的问题很多,当然在高手看来全部都是菜鸟级问题。但是我一 个刚刚学习 oracle 的菜鸟当然达不到一览众山小的境界,所以有必要把今天遇到的问题做一个总结,当然解决过程中经常百度,经常用百度是为了以后遇到同样问题抛开百度。


1 、连接数据库时,报告监听器不存在。

刚开始很郁闷,我客户端明明已经配置了监听程序了。结果百度发现,服务器也有个监听器,但是并没有启动。这才去启动服务器的监听器,当然监听器的工作原理现在先抛开不深究。启动命令:


[oracle @ centos ~ ]$ lsnrctl start


2 、配置服务命名概念不清晰

在配置服务命名的是时候,可能很多初学者想我这样不知道服务名是什么东西。下面看一下 oracle 服务器监听器的一段脚本就明白了。


ORCL =

 (DESCRIPTION_LIST =

   (DESCRIPTION =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.242.120)(PORT= 1521))

   )

 )


该文件在 $ORACLE_HOME/network/admin 下面的监听器配置文件 listener.ora 里面。其中 ORCL 就是传说中的服务名。

 

3 、配置完服务命名之后,测试连接数据失败

这里默认是用 scott 用户连接 oracle 数据库,默认密码为 tiger 。但是客户端提示连接失败,最后在 oracle 服务器用 sqlplus “/as sysdba” 登陆到 oracle 查询不到 scott 用户,这个可能是在创建实例的时候没有创建。所以这里得新建一个 scott 用户,为什么非得要 scott 用户登录呢?这个先不做讨论。

4 、如何新建 scott 用户

新建 scott 用户不只是就单单创建一个用户而已,它还有很多测试数据可提供使用,这里 oracle 自己有一个脚本用于创建 scott 用户及创建测试表,这就是为什么要用 scott 用户登录的原因。该脚本在 linux 服务器的 $ORACLE_HOME/rdbms/admin/ 目录下面,脚本文件名称为 utlsampl.sql ,网上有说是 scott.sql 其实该目录不存在 scott.sql 这个脚本。有了这个脚本如何在 sqlplus 里面执行?用什么用户执行?

5 、在 sqlplus 执行 sql 脚本

sqlplus 执行 sql 脚本如下:


SQL> @$ORACLE_HOME/rdbms/admin/utlsampl.sql


这里必须把 $ORACLE_HOME 替换成具体的路径,用 shell 命令 echo  $ORACLE_HOME 可以看到该环境变量的值。

执行完后,显示如下信息:


SQL>@/u01/app/oracle/product/11.2.0/dbhome_1/rdbms/admin/utlsampl.sql

Disconnected from Oracle Database 11g Enterprise Edition Release11.2.0.1.0 - Production

With the Partitioning, OLAP, Data Mining and Real ApplicationTesting options


开始我以为是执行不成功,可是又没什么 successfully 之类的成功提示。所以只能用 scott/tiger 登录 sqlplus 看是否能否登录成功,如果成功那么这个脚本就已经成功的执行了。

6 、忘记 sys system 密码

在执行 utlsampl.sql 的时候,其实没有我上面描述的那么顺利,因为我把 sys system 的密码给忘了,因为 ORCL 实例是半年前创建的,当时也没做个文档把用户名和密码记下来。所以这里只能去修改这两个用户的密码,如何修改密码,如下所示:


[oracle@centos ~ ]$ sqlplus /nolog

SQL>connect “/as” sysdba

SQL>alter user sys identifiedby sys;

SQL>alter user systemidentified by system;


sys system 用户的密码都修改为和各自的用户名一样。修改完后,试着用这两个用户去登陆 oracle 数据库。


[oracle@centos ~ ]$ sqlplussys/sys as sysdba

[oracle@centos ~ ]$ sqlplessystem/system


都可以进入 sqlplus ,说明修改已经生效了。执行 utlsamp.sql 这个脚本需要 sys 用户和 system 用户去执行。

 


经过了这个过程后,在配置 net manager 的最后一步,即以 scott 用户测试与 oracle 实例的连通性的时候,才连接测试成功了。然后再 PL/SQL 检测到配置成功的服务名 ORCL, 才能用 PL/SQL 连接到数据库。

注:文章不免有些不足的地方,欢迎指出,谢谢!




来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24590940/viewspace-713903/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2010-09-12

  • 博文量
    2
  • 访问量
    8599