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

问题描述:

登录到sqlplus为什么它总是在linux中打印用户名?登录到sqlplus后,为什么总是打印用户名?

$ 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" 

我不想打印出“USER是”SCOTT“”。

一个线索是,消息“用户是”,我可以看到它在

/software/oracle/cli-11.02.00.04/sqlplus/mesg/sp2us.msg 

sqlplus/mesg/sp2us.msg:572:00291,0, "USER is \"%s\"\n" 

,我需要的地方更改任何设置?

这不是默认的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 ...有节目的用户命令等是什么原因呢?”

没错。每次连接时SQL * Plus都会运行login.sql,例如使用SET SQLPROMPT来更改提示。将SCOTT>作为提示可能比显示刚刚连接的用户更有用。

“我可以重写login.sql和glogin.sql,以便每次连接到sqlplus时它都会执行我的login.sql和glogin.sql?”

不能覆盖glogin.sql因为只有其中之一(是“全球性”)。但是可以有多个版本的login.sql。如上所述,SQL * Plus在当前目录中开始搜索文件。因此,您需要在有写权限的位置(例如$HOME/naren)创建login.sql文件,然后从此处始终启动SQL * Plus。


“有什么办法,当我们从不同的文件夹中运行,我们甚至可以达致这?”

如果你开始SQL你不能写一个文件* Plus和您可以不会启动SQL * Plus,您可以在其中编写文件,这成为一个政治问题而不是技术问题。您需要与管理您的Oracle环境的人员进行谈判。

或者只是学会忍受它。这是一件相当平凡的事情;我不敢相信我已经花了这么多的时间和精力进入这个话题:)所以,如果show user是你工作日最大的烦恼,那么你应该算上你的祝福。

+0

我在glogin.sql中看不到任何内容,它的所有行都以 - 开头。 我假设这些是评论 – naren

+1

@naren - 怎么样'login.sql'?该命令将是'show user'(链接到您找到的sp2us.msg),除非该功能以其他方式复制。 –

+0

@naren - 你有一个默认的'glogin.sql'脚本,所以你需要在其他位置寻找'login.sql'。我已经为你扩大了我的答案。 – APC