登录sqlplus后,为什么总是在linux中打印用户名?
$ sqlplus
SQL*Plus: Release 11.2.0.4.0 Production on Fri Apr 7 06:32:57 2017
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Enter user-name: scott
Enter password:
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
USER is "SCOTT"
我不想打印出#34; USER是" SCOTT" "
一条线索是消息" USER是",我可以在
中看到它/software/oracle/cli-11.02.00.04/sqlplus/mesg/sp2us.msg
sqlplus/mesg/sp2us.msg:572:00291,0, "USER is \"%s\"\n"
我需要在某处更改任何设置吗?
答案 0 :(得分:6)
这不是默认的SQL * Plus行为。因此,您可能在个人login.sql
或全局glogin.sql
文件中有一个SHOW USER命令(可以执行此操作)。
查看$ORACLE_HOME/sqlplus/admin
子目录中的glogin.sql
文件。
login.sql
可以位于$SQLPATH
中的任何目录中,但SQL * Plus会在当前目录中开始搜索。所以幸运的是,文件将在某个合理的位置,例如您的客户$ORACLE_HOME
。
文档中介绍了SQL * PLus配置。 Find out more
“在
/upapps/oracle/dba/tools/login.sql
...中有show user命令......那么原因是什么?”
是的。每次连接时,SQL * Plus都会运行login.sql
,例如使用SET SQLPROMPT
来更改提示。将SCOTT>
作为提示可能比显示刚刚连接的用户更有用。
“我可以覆盖login.sql和glogin.sql,以便每次连接到sqlplus时它都会执行我的login.sql和glogin.sql吗?”
您无法覆盖glogin.sql
,因为只有其中一个( g 代表“全局”)。但是login.sql
可以有多个版本。如上所述,SQL * Plus开始搜索当前目录中的文件。因此,您需要在具有写权限的位置(例如login.sql
)创建$HOME/naren
文件,然后始终从那里启动SQL * Plus。
“即使我们从不同的文件夹运行,我们还有什么方法可以实现这一点吗?”
如果您无法编写启动SQL * Plus的文件,并且无法启动SQL * Plus,您可以在其中编写文件,这将成为一个政治问题,而不是技术问题。您需要与管理Oracle环境的人员进行协商。
或者只是学会忍受它。这是一件相当微不足道的事情;我不敢相信我已经花了很多时间和精力来讨论这个话题:)所以,如果show user
是你工作日最大的烦恼,你应该算上你的祝福。