关于设置SQLPLUS提示符样式的方法

简介:
摘要:大家在日常工作中,我想99%都会用到sqlplus工具来登陆你的数据库,对数据库进行管理、调优、配置、运维。那么如果有n多台数据库的时候,我们在连接后全部是统一的SQL>提示符,就有可能发生目前不知道连接到 哪个库上,当我们切换用户很频繁的时候也有可能不清楚当前在使用的是哪个用户,下面我就给大家介绍一下,如何配置sqlplus工具的登陆配置文件,来动态加载我们提示符的样子。
系统:RedHat Linux 5.4
数据库:oracle 10G
工具:sqlplus

一、全局模式
什么叫全局模式呢:当我们配置完sqlplus工具加载配置文件后,无论在哪个目录下登陆数据库,您设置【sqlplus提示符样子,在任何目录下进入sqlplus工具都会加载此提示符样子】的效果都可以呈现出来
1.glogin.sql 配置文件的位置
答:$ORACLE_HOME/sqlplus/admin/glogin.sql
 vim $ORACLE_HOME/sqlplus/admin/glogin.sql
2.添加的字符串,取默认变量
定位到这个文件的最后一行,回车另起一行的开头添加如下字符串
set sqlprompt "_user'@'_connect_identifier> "
或者 set sqlprompt '_user@&_connect_identifier> '
含义:_user 代表当前登陆用户名,_connect_identifier 代表当前数据库连接串名,在glogin.sql中设置全局sqlplus提示符样子user和connect identifier是sqlplus的默认变量
注:此时设置的是在所有目录下登陆sqlplus工具都会生效,@替换成【¥/#/&都可以】,从别的目录进入sqlplus也加载提示符变量
3.保存&退出
4.sqlplus / as sysdba
看现在的sqlplus提示符已经变化了,sys表示当前登录的是管理员用户,mdsoss是我的数据库连接串名,这样的话我们就可以在登录若干个数据库的时候不会发生混淆的情况了。
sys@mdsoss>
二、局部模式
什么叫局部模式呢:只在当前目录有效,例如我们在当前目录下配置login.sql文件,那么就在当前目录下进入sqlplus工具会加载login.sql文件提示符会生效,其他目录下登陆不生效
1.在当前目录下创建login.sql文件
例子 vim /home/oracle/login.sql
2.编辑login.sql文件,添加一行字符串
set sqlprompt "_user'@'_connect_identifier> "
或者 set sqlprompt '_user@&_connect_identifier> '
含义:_user 代表当前登陆用户名,_connect_identifier 代表当前数据库连接串名,在glogin.sql中设置全局sqlplus提示符样子user和connect identifier是sqlplus的默认变量
注:此时设置的是在当前目录下登陆sqlplus工具提示符生效,@替换成【¥/#/&都可以】,从别的目录进入sqlplus不加载提示符变量
3.保存&退出
4.sqlplus / as sysdba
sys@mdsoss>
5.局部生效测试版
如果我们在其他目录下登录sqlplus,这是我们已经发现了不同点,恢复到原始状态
sqlplus / as sysdba
SQL>

三、指定用户名和实例名方法
1.编辑glogin.sql和login.sql文件,在最后面添加如下内容
set term off
define user_name=""
define instance_name=""
column user_name new_value user_name
column instance_name new_value instance_name
select lower(user) user_name, instance_name instance_name from v$instance;
set sqlprompt '&user_name@&instance_name>'     
注释:--user_name 代表当前登陆的用户名,instance_name 代表当前登陆的实例名
sys@mdsoss> @可替换【¥/#/&都可以】
2.使用sqlplus登录数据库
这种方式在登陆和切换用户的时候,可指定用户名和实例名
enter value for user: liusheng
enter value for instance_name:leonarding
liusheng@leonarding>
小结:使用上述方法可以让我们在数据库海洋里游刃有余,平时练习的时候也可以加上,形成习惯,这样在连接不同的数据库时就不会导致不知道连接的是哪个库了。

Leonarding 刘盛
2012.03.28
天津&spring
分享技术~成就梦想

Blog:www.leonarding.com



 本文转自 ztfriend 51CTO博客,原文链接:http://blog.51cto.com/leonarding/1376356,如需转载请自行联系原作者


相关文章
|
SQL Oracle 关系型数据库
Oracle SQL*Plus的SET命令:你的数据库会话“调色板”
【4月更文挑战第19天】Oracle SQL*Plus的SET命令是数据库会话的“调色板”,用于设置输出格式、反馈信息和各种偏好。它能调整PAGESIZE和LINESIZE以优化显示,控制ECHO和FEEDBACK开关以定制反馈,以及统计命令执行时间(TIMING)和调试SQL(VERIFY)。更高级的选项如HEADING和COLSEP可改善输出的可读性。通过灵活运用SET命令,能提升工作效率和体验,是数据库管理员和开发者的必备工具。
|
关系型数据库 PostgreSQL
【一文搞懂PGSQL】5. 流复制
PostgreSQL流复制架构支持多种常见配置,包括基本的主从复制、结合PGPool-II的读写分离以及使用repmgr实现高可用性。基础环境中,主节点与备用节点分别位于不同IP。配置涵盖创建复制用户、调整核心参数以支持流复制,并确保归档与日志功能正常工作。从节点需通过备份恢复并配置为待机模式,以实现数据同步。此外,还介绍了如何验证复制状态及手动切换主从节点的方法,以及同步复制参数的配置细节。
|
Oracle 关系型数据库 数据库
解决Java中的EOFException异常的方法
解决Java中的EOFException异常的方法
|
SQL 弹性计算 关系型数据库
PostgreSQL 12 preview - CTE 增强,支持用户语法层控制 materialized 优化
标签 PostgreSQL , CTE , materialized , not materialized , push down 背景 PostgreSQL with 语法,能跑非常复杂的SQL逻辑,包括递归,多语句物化计算等。 在12以前的版本中,WITH中的每一个CTE(common table express),都是直接进行物化的,也就是说外层的条件不会推到CTE(物化节点)里
1184 0
|
JavaScript Java 数据安全/隐私保护
JSP实现登录功能(页面带样式)
JSP实现登录功能(页面带样式)
814 0
|
SQL Oracle 关系型数据库
Oracle各种版本下“示例数据库的创建”的创建
Oracle各种版本下“示例数据库的创建”的创建
837 0
|
Java
idea创建java项目后添加webapp怎么配置
如何在如下结构中添加webapp呢( 当前项目为Demo2_web)
1631 0
idea创建java项目后添加webapp怎么配置