欢迎投稿

今日深度:

使用环境变量配置Oracle运行环境(1)

使用环境变量配置Oracle运行环境(1)


在Oracle数据库中,提供了一套默认的用户操作环境。如用户查询的时候,从数据库中一次提取的行数;列之间的分隔符;每行显示的最大宽度;每页默认显示的行数等等。这些都是靠数据库的环境变量来控制。这些参数虽然是Oracle系统推荐的,但是,往往不符合数据库管理的要求。因为我们工作一段时间以来,已经养成了自己的一套工作习惯。所以,我们希望每次更换一个Oracle运行环境之后,数据库都能够提供一个我们熟悉的运行环境。这无疑可以提高我们工作的兴趣与效率。

为此,我们就需要手工的更改Oracle的环境变量,以达到我们的要求。笔者下面结合自己的工作习惯,谈谈一些常用的环境变量的设置。相信凭借这些参数,可以给各位数据库管理员提供一个舒适的“工作环境”。

环境变量一:设置列之间的分隔符

平时在SQL*Plus工具中,利用SQL语句查询的话,其列之间默认情况下是利用空格来进行区分的。但是,笔者觉得这个区分不够明显。有时候,经常会看错。当数据多的时候,还会给人一种“晕车”的感觉。故笔者往往一开始,就会更改这个默认设置。笔者喜欢利用“|”符号来对列之间进行区分。

如通过如下设置,就可以让显示结果以“|”符号来区分各个列。SET COLSEP |。通过这条语句,就可以对数据库的环境变量进行设置。最后的运行结果如下。利用|这个符号来对列进行区分,看起来就会清楚的多。字段之间就会弄混。

 环境变量二:设置是否自动递交

在Oracle数据库中有事务控制的概念。也就是说,当我们利用Update语句更新数据库的某些内容的时候,默认情况下,执行这条语句后不会马上就对数据库文件中的数据进行更改。在同一个对话中,查询的话,其显示的结果已经是更改后的结果。但是,若先注销这个对话,在重新连接、查询的话,其显示的结果仍然是修改之前的结果。其更改的内容没有被保存。这主要是因为这个更新的事务没有被递交上去。

根据Oracle数据库的设置,默认情况下,事务是不主动递交的。而是需要用户手工的输入commmit命令,来递交相关的事务。一般来说,DML语句都需要用户手工的递交事务才能够其作用。

这个设计本来是为了给数据库管理员有一个缓冲的机会;同时,也是给终端用户一个确认数据是否准确的一个机会。另外,利用这种机制,也可以帮助数据库管理员很容易的实现回退机制。

如现在在一个进销存管理系统中,需要把物料从一个仓库中转移到另一个仓库里去。此时,就需要通过事务来进行控制。从一个仓库中把物料数量减少,另一个仓库中增加。但是,若在另一个仓库中增加数量的操作因为某种原因失败,则就需要对“某个仓库中数量减少”这个事务进行回退。也就是说,不向数据库递交这个事务。通过这种机智,就可以轻松的实现各个作业之间数据的一致性。

不过,在数据库设计的时候,手工递交相关事务,笔者认为有中画蛇添足的感觉。笔者在数据库前期开发的时候,往往会改变这个默认设置。笔者希望让系统自动递交这个事务。然后,再后台测试的时候,再把这个环境变量改回来。

如相让数据库自动递交相关事务的话,则可以利用SET AUTOCOMMIT ON命令来实现。如此的话,每次执行DML语句,数据库就会自动递交这个命令。而不会每次都要用户手工输入COMMIT命令才递交相关的事务。不过,在数据库设计完成后,需要把这个环境变量改回来,改成手工递交事务。

环境变量三:设置每行的宽度

这是一个很重要环境变量。在Oracle数据库中,如果行数据长度超过我们设置的最大长度时,就会自动换行。可是数据查询的结果是按列来显示,但是若自动换行的话,则其结果看起来就会很糟糕。默认情况下,数据库的默认行宽度为80。

笔者认为这个宽度太小。笔者喜欢采用比较大的宽度。笔者宁愿利用滑条滚动来查看数据,也不原意让其自动分行影响显示结果。如下图。如果行宽度不够的话,就会按如下的方式显示。这个结果看起来的话,十个人中有十个人会看得眼花。


www.htsjk.Com true http://www.htsjk.com/shujukugl/18141.html NewsArticle 使用环境变量配置Oracle运行环境(1) 在Oracle数据库中,提供了一套默认的用户操作环境。如用户查询的时候,从数据库中一次提取的行数;列之间的分隔符;每行显示的最大宽度;每页默认显...
评论暂时关闭