ITPub博客

首页 > Linux操作系统 > Linux操作系统 > PLSQL连接ORACLE数据库--摘自别人

PLSQL连接ORACLE数据库--摘自别人

原创 Linux操作系统 作者:mike108 时间:2011-12-26 17:07:51 0 删除 编辑

 

摘自http://space.itpub.net/trackback.php?code=N1mD1AN4ihK4xHeak7xUhjgOJ8A%2BUFIB8EcPnWA

PLSQL连接ORACLE数据库

刚入门的菜鸟伤不起,以前在公司用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博客 ” ,链接:https://blog.itpub.net/273371/viewspace-713961/ ,如需转载,请注明出处,否则将追究法律责任。

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

注册时间:2007-12-12

  • 博文量
    1
  • 访问量
    1717