Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.misc -> Re: SQL Plus - Previous Commands

Re: SQL Plus - Previous Commands

From: Galen Boyer <galendboyer_at_yahoo.com>
Date: 29 Mar 2002 22:30:12 -0600
Message-ID: <u7knuse51.fsf@rcn.com>


On Thu, 28 Mar 2002, pablo_at_dev.null wrote:

> 
> "damorgan" <damorgan_at_exesolutions.com> wrote in message
> news:3CA34315.BDBBF330_at_exesolutions.com...
>> Press the slash key "/" followed by "Enter".
>>
> 
> If you know emacs, run it within an emacs shell and you can ESC-p/n to
> walk up and down the history tree.  Very cool.

sql.el is sqlplus piggybacking on the shell mode. Comes with the main Emacs distribution.

Has all the shell mode power you are alluding to along with some particulars for sql. One of them being able to put a buffer in sql-mode and typing C-c C-r to send region. I stay in the sqlplus buffer mainly cause the editing of that buffer is great. I code sql in another buffer, hop to the sqlplus buffer, hit xf for explain, then x to run the explain file. Once the plan looks good, I M-p M-p to get the previous code back and execute it.

In the spirit of Emacs sharing, here are my abbreviations enabled for sql modes. These sure do make the "all-the-time" SQL much less time consuming.

(define-abbrev sql-mode-abbrev-table "ss" "select * from" nil)
(define-abbrev sql-mode-abbrev-table "sc" "select count(*) from" nil)
(define-abbrev sql-mode-abbrev-table "scd" "select count(distinct" nil)
(define-abbrev sql-mode-abbrev-table "sd" "select distinct" nil)
(define-abbrev sql-mode-abbrev-table "d" "desc" nil)
(define-abbrev sql-mode-abbrev-table "c" "count(*)" nil)
(define-abbrev sql-mode-abbrev-table "s" "select" nil)
(define-abbrev sql-mode-abbrev-table "f" "from" nil)
(define-abbrev sql-mode-abbrev-table "g" "group by" nil)
(define-abbrev sql-mode-abbrev-table "o" "order by" nil)
(define-abbrev sql-mode-abbrev-table "w" "where" nil)
(define-abbrev sql-mode-abbrev-table "tt" "truncate table" nil)
(define-abbrev sql-mode-abbrev-table "ct" "create table" nil)
(define-abbrev sql-mode-abbrev-table "ii" "insert into" nil)
(define-abbrev sql-mode-abbrev-table "ei" "execute immediate" nil)

(require 'tempo)

;; Dynamically build "select blah,count(*) from tbl group by blah;"
(tempo-define-template

 "select-count-group-by" ;; template name  '((p "Table Selected From: " tsf 'NOINSERT)    (p "Fields To Group On: " fgo 'NOINSERT)    "SELECT "
   (s fgo)
   ",count(*) " n>
   "from "
   (s tsf) n>
   " group by "
   (s fgo)
   ";"))

(define-abbrev sql-mode-abbrev-table "scg" "" 'tempo-template-select-count-group-by)

(define-abbrev sql-mode-abbrev-table "xf" "explain plan for" nil)
(define-abbrev sql-mode-abbrev-table "x" "@explain" nil)

(define-abbrev sql-mode-abbrev-table "do" "dbms_output.put_line()" nil)

(define-abbrev sql-mode-abbrev-table "ash" "alter session set HASH_AREA_SIZE=" nil)
(define-abbrev sql-mode-abbrev-table "ass" "alter session set SORT_AREA_SIZE=" nil)
(define-abbrev sql-mode-abbrev-table "ast" "alter session set timed_statistics=;" nil)
(define-abbrev sql-mode-abbrev-table "asst" "alter session set sql_trace=")
(define-abbrev sql-mode-abbrev-table "asev" "alter session set events '10046 trace name context forever, level 12';")

(define-abbrev sql-mode-abbrev-table "sl" "set linesize")
(define-abbrev sql-mode-abbrev-table "st" "set timing")

-- 
Galen deForest Boyer
Sweet dreams and flying machines in pieces on the ground.
Received on Fri Mar 29 2002 - 22:30:12 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US