1

很长一段时间以来,我已经将我的 login.sql 文件配置为将 SQLPLUS 中的提示设置为两行,因此它看起来像这样:

my_username@my_db_instance
SQL>

login.sql 中完成此操作的代码如下(chr(10) 是创建第二行的内容):

define gname = 'SQL'
column global_name new_value gname

select user||'@'||instance_name||chr(10)||'SQL' as global_name 
from v$instance;

set sqlprompt '&&gname> '

但是,这对 SQLcl 不起作用,并且相同的代码导致 SQLcl 提示符全部出现一行,就像这样

my_username@my_db_instance SQL>

我尝试将 chr(10) 替换为 chr(13)、chr(13)||chr(10) 和 u'\000A',但无论如何 SQLcl 提示都会显示在一行上。我已经确认 SQLcl 实际上是通过对提示进行其他更改(例如用 SQL1 替换 SQL)来读取有问题的 login.sql,并且这些更改有效。

有谁知道是否可以将 SQLcl 提示符分成 2 行?如果是这样,怎么办?

(ps,我意识到这是一个非常小的烦恼,但是虽然我喜欢在提示中包含连接信息,但让我的所有 sql 的第一行开始向右只是......呸 :)

4

1 回答 1

2

这只是一种解决方法。

我为此使用了一个窗口“标题”。我觉得这样更方便: 在此处输入图像描述

您可以像这样创建脚本: https ://github.com/xtender/xt_scripts/blob/master/inc/title.sql

并将其添加到您的 on_login.sql 中,例如从我自己的on_login.sql 中

@inc/title "&db_name / &my_user / &db_host_name   SID=&my_sid    SERIAL#=&my_serial     SPID=&my_spid     IS_DBA=&my_is_dba / INST_ID = &DB_INST_ID / DB_VERSION = &DB_VERSION"

其他我的 sql*plus 提示: http: //orasql.org/tag/sqlplus-2/

于 2021-06-30T01:17:51.507 回答