0
点赞
收藏
分享

微信扫一扫

sqlplus自动提示

奋斗De奶爸 07-24 12:00 阅读 32

命令行下自动提示可以选用SQLcl(SQL Developer Command Line),是用于 Oracle 数据库的免费命令行界面。它让您可以通过交互方式或批处理方式执行 SQL 和 PL/SQL。SQLcl 通过内联编辑、语句完成和命令回调为您提供功能丰富的体验,同时还支持您以前编写的 SQL*Plus 脚本.

主要特性

  • 内联编辑器— 在 SQLcl 提示符下以交互方式编辑多行语句和脚本
  • 命令历史 — 循环遍历前 100 条脚本/命令
  • 完成洞察 — 使用 TAB 键自动完成对象名称或关键字
  • 新命令 — CTAS、DLL、Repeat、ALIAS、SCRIPT、FORMAT 等等!
  • 客户端脚本编写 — 执行 javascript 以处理查询结果、构建动态命令、与会话交互等等
  • SQL*Plus 支持 — SQL*Plus 环境设置、命令和行为

不过需要单独下载使用。

如果已安装rlwrap 可以通过配置命令字典实现命令的自动提示,安装后配置如下:

[oracle@prodb ~]$ cat .bash_profile 
alias sqlplus='rlwrap -b "" -f $HOME/.sql.dict sqlplus / as sysdba'

生成字典:

sqlplus / as sysdba -s <<EOF >>$HOME/.sql.dict
set head off pages 0 linesize 150 echo off feedback off verify off heading off
select KEYWORD from (
select KEYWORD from v$reserved_words
union 
select name from V$FIXED_TABLE where name not like 'X$%'
union
select object_name from dba_objects where object_type in ('TABLE', 'VIEW', 'PACKAGE', 'PROCEDURE', 'FUNCTION') and owner in ('SYS','APP') and object_name not like '_%'
);
EOF

测试:

SQL> SELECT * FROM V$SESS  ---按两次tab
V$SESSION                      V$SESSION_CURSOR_CACHE         V$SESSION_OBJECT_CACHE         V$SESSMETRIC                   
V$SESSION_BLOCKERS             V$SESSION_EVENT                V$SESSION_WAIT                 V$SESSTAT                      
V$SESSION_CLIENT_RESULT_CACHE  V$SESSION_FIX_CONTROL          V$SESSION_WAIT_CLASS           V$SESS_IO                      
V$SESSION_CONNECT_INFO         V$SESSION_LONGOPS              V$SESSION_WAIT_HISTORY         V$SESS_TIME_MODEL              

其他:

--- 加日志
alias orac="rlwrap -H /home/oracle/.hist_sql.log sqlplus / as sysdba"

--- SQL>加颜色
alias sqlplus='rlwrap -b "" -f $HOME/.sql.dict -pred sqlplus / as sysdba'


举报

相关推荐

0 条评论