登录到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
是你工作日最大的烦恼,那么你应该算上你的祝福。
我在glogin.sql中看不到任何内容,它的所有行都以 - 开头。 我假设这些是评论 – naren
@naren - 怎么样'login.sql'?该命令将是'show user'(链接到您找到的sp2us.msg),除非该功能以其他方式复制。 –
@naren - 你有一个默认的'glogin.sql'脚本,所以你需要在其他位置寻找'login.sql'。我已经为你扩大了我的答案。 – APC