设置 SQL*Plus 命令提示符显示当前时间(set sqlprompt _DATE)

导语:在我平时的工作中,需要对观察sql的开始时间。所以我希望在sql>标识上显示时间。这样方便很多。而且在写步骤的时候也会有帮助。但是在网上搜索却不容易搜到方法。

set sqlprompt

首先,我知道怎么设置,让提示符上显示连接用户和数据库名:set sqlprompt

  1. 在$ORACLE_HOME/sqlplus/admin/glogin.sql这个文件中添加语句。
    set sqlprompt "_user '@' _connect_identifier > "
  2. 保存退出,启动sqlplus验证,效果类似:USER@SID >

所以大致我想要的效果也应该用这个语句实现了。

官方文档:19c > Administration > SQLPlus User's Guide and Reference > 12 SQLPlus Command Reference > 12.41.57 SET SQLPROMPT

在官方文档中(Example)就有我需要的内容:

  • 要更改 SQL*Plus 提示符以显示连接标识符,请输入:
    SET SQLPROMPT "_CONNECT_IDENTIFIER > "
  • 要将 SQL*Plus 命令提示符设置为显示当前用户,请输入:
    SET SQLPROMPT "_USER > "
  • 要更改 SQL*Plus 提示以显示您的当前日期、当前用户和用户权限级别,请输入:
    SET SQLPROMPT "_DATE _USER _PRIVILEGE> "
  • 要将 SQL*Plus 提示更改为显示已定义的变量,请输入:
    DEFINE mycon = Prod1
    SET SQLPROMPT "mycon> "
    Prod1>
  • 嵌套引号中的文本不会被解析以进行替换。要使用 SQL*Plus 提示符显示您的用户名,后跟 “@”,然后输入您的连接标识符,请输入:
    SET SQLPROMPT "_USER'@'_CONNECT_IDENTIFIER > "

预定义变量

官方文档:19c > Administration > SQLPlus User's Guide and Reference > 12 SQLPlus Command Reference > 12.17.1 Predefined Variables

文档上说,在 SQL*Plus 安装过程中定义了 9 个变量。这些变量与用户定义的变量的唯一区别在于具有预定义的值。
其中比较常见的有:

  • _CONNECT_IDENTIFIER 用于建立连接的连接标识符(如果可用)。
  • _DATE 当前日期或用户定义的固定字符串。
  • _EDITOR 指定 EDIT 命令使用的编辑器。
  • _PRIVILEGE 当前连接的权限级别。
  • _USER 用于建立连接的用户名。
  • _SQL_ID 执行的 SQL 语句的 sql_id。

因为我们本次需要使用_DATE这个预定义变量,所以看一下。

_DATE
包含当前日期作为动态变量或固定字符串。当前日期是默认值,并使用 NLS_DATE_FORMAT 的值进行格式设置。

对于NLS_DATE_FORMAT参数的设置,请看博客

总结:

总的来说,想要完成我的设想需要set sqlprompt语句,用预定义变量来实现sqlplus提示符设置
在sqlplus提示符中显示时间效果:
14:55:22 SYS AS SYSDBA@PROD

在glogin文件中设置:

set sqlprompt "_date _user _privilege'@'_connect_identifier> "
alter session set nls_date_format='HH24:MI:SS';
posted @   老牛的田  阅读(14)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
点击右上角即可分享
微信分享提示