登录sqlplus后,为什么总是打印用户名?

时间:2017-04-07 11:37:28

标签: linux oracle sqlplus

登录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"

我需要在某处更改任何设置吗?

1 个答案:

答案 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是你工作日最大的烦恼,你应该算上你的祝福。