summaryrefslogtreecommitdiffstats
path: root/runtime/doc/sql.txt
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/doc/sql.txt')
-rw-r--r--runtime/doc/sql.txt592
1 files changed, 296 insertions, 296 deletions
diff --git a/runtime/doc/sql.txt b/runtime/doc/sql.txt
index e7d40d6675..f089012b8d 100644
--- a/runtime/doc/sql.txt
+++ b/runtime/doc/sql.txt
@@ -1,4 +1,4 @@
-*sql.txt* For Vim version 7.0f. Last change: Wed Apr 26 2006 3:05:33 PM
+*sql.txt* For Vim version 7.0g. Last change: Wed Apr 26 2006 3:05:33 PM
by David Fishburn
@@ -8,40 +8,40 @@ The Structured Query Language (SQL) is a standard which specifies statements
that allow a user to interact with a relational database. Vim includes
features for navigation, indentation and syntax highlighting.
-1. Navigation |sql-navigation|
- 1.1 Matchit |sql-matchit|
- 1.2 Text Object Motions |sql-object-motions|
- 1.3 Predefined Object Motions |sql-predefined-objects|
- 1.4 Macros |sql-macros|
-2. SQL Dialects |sql-dialects|
- 2.1 SQLSetType |SQLSetType|
- 2.2 SQL Dialect Default |sql-type-default|
-3. Adding new SQL Dialects |sql-adding-dialects|
-4. OMNI SQL Completion |sql-completion|
- 4.1 Static mode |sql-completion-static|
- 4.2 Dynamic mode |sql-completion-dynamic|
+1. Navigation |sql-navigation|
+ 1.1 Matchit |sql-matchit|
+ 1.2 Text Object Motions |sql-object-motions|
+ 1.3 Predefined Object Motions |sql-predefined-objects|
+ 1.4 Macros |sql-macros|
+2. SQL Dialects |sql-dialects|
+ 2.1 SQLSetType |SQLSetType|
+ 2.2 SQL Dialect Default |sql-type-default|
+3. Adding new SQL Dialects |sql-adding-dialects|
+4. OMNI SQL Completion |sql-completion|
+ 4.1 Static mode |sql-completion-static|
+ 4.2 Dynamic mode |sql-completion-dynamic|
4.3 Tutorial |sql-completion-tutorial|
- 4.3.1 Complete Tables |sql-completion-tables|
- 4.3.2 Complete Columns |sql-completion-columns|
- 4.3.3 Complete Procedures |sql-completion-procedures|
- 4.3.4 Complete Views |sql-completion-views|
+ 4.3.1 Complete Tables |sql-completion-tables|
+ 4.3.2 Complete Columns |sql-completion-columns|
+ 4.3.3 Complete Procedures |sql-completion-procedures|
+ 4.3.4 Complete Views |sql-completion-views|
4.4 Completion Customization |sql-completion-customization|
- 4.5 SQL Maps |sql-completion-maps|
+ 4.5 SQL Maps |sql-completion-maps|
4.6 Using with other filetypes |sql-completion-filetypes|
==============================================================================
-1. Navigation *sql-navigation*
+1. Navigation *sql-navigation*
The SQL ftplugin provides a number of options to assist with file
navigation.
-1.1 Matchit *sql-matchit*
+1.1 Matchit *sql-matchit*
-----------
The matchit plugin (http://www.vim.org/scripts/script.php?script_id=39)
provides many additional features and can be customized for different
-languages. The matchit plugin is configured by defining a local
-buffer variable, b:match_words. Pressing the % key while on various
+languages. The matchit plugin is configured by defining a local
+buffer variable, b:match_words. Pressing the % key while on various
keywords will move the cursor to its match. For example, if the cursor
is on an "if", pressing % will cycle between the "else", "elseif" and
"end if" keywords.
@@ -51,40 +51,40 @@ The following keywords are supported: >
elseif | elsif
else [if]
end if
-
+
[while condition] loop
- leave
- break
- continue
- exit
+ leave
+ break
+ continue
+ exit
end loop
-
+
for
- leave
- break
- continue
- exit
+ leave
+ break
+ continue
+ exit
end loop
-
+
do
- statements
+ statements
doend
-
+
case
- when
+ when
when
default
end case
-
+
merge
when not matched
when matched
create[ or replace] procedure|function|event
returns
-
-1.2 Text Object Motions *sql-object-motions*
+
+1.2 Text Object Motions *sql-object-motions*
-----------------------
Vim has a number of predefined keys for working with text |object-motions|.
This filetype plugin attempts to translate these keys to maps which make sense
@@ -92,13 +92,13 @@ for the SQL language.
The following |Normal| mode and |Visual| mode maps exist (when you edit a SQL
file): >
- ]] move forward to the next 'begin'
- [[ move backwards to the previous 'begin'
- ][ move forward to the next 'end'
- [] move backwards to the previous 'end'
-
+ ]] move forward to the next 'begin'
+ [[ move backwards to the previous 'begin'
+ ][ move forward to the next 'end'
+ [] move backwards to the previous 'end'
-1.3 Predefined Object Motions *sql-predefined-objects*
+
+1.3 Predefined Object Motions *sql-predefined-objects*
-----------------------------
Most relational databases support various standard features, tables, indices,
triggers and stored procedures. Each vendor also has a variety of proprietary
@@ -109,44 +109,44 @@ standard objects, plus many additional ones. In order to make this as
flexible as possible, you can override the list of objects from within your
|vimrc| with the following: >
let g:ftplugin_sql_objects = 'function,procedure,event,table,trigger' .
- \ ',schema,service,publication,database,datatype,domain' .
- \ ',index,subscription,synchronization,view,variable'
-
+ \ ',schema,service,publication,database,datatype,domain' .
+ \ ',index,subscription,synchronization,view,variable'
+
The following |Normal| mode and |Visual| mode maps have been created which use
the above list: >
- ]} move forward to the next 'create <object name>'
- [{ move backward to the previous 'create <object name>'
+ ]} move forward to the next 'create <object name>'
+ [{ move backward to the previous 'create <object name>'
Repeatedly pressing ]} will cycle through each of these create statements: >
create table t1 (
- ...
+ ...
);
create procedure p1
begin
- ...
+ ...
end;
create index i1 on t1 (c1);
-
+
The default setting for g:ftplugin_sql_objects is: >
let g:ftplugin_sql_objects = 'function,procedure,event,' .
- \ '\\(existing\\\\|global\\s\\+temporary\\s\\+\\)\\\{,1}' .
- \ 'table,trigger' .
- \ ',schema,service,publication,database,datatype,domain' .
- \ ',index,subscription,synchronization,view,variable'
-
+ \ '\\(existing\\\\|global\\s\\+temporary\\s\\+\\)\\\{,1}' .
+ \ 'table,trigger' .
+ \ ',schema,service,publication,database,datatype,domain' .
+ \ ',index,subscription,synchronization,view,variable'
+
The above will also handle these cases: >
create table t1 (
- ...
+ ...
);
create existing table t2 (
- ...
+ ...
);
create global temporary table t3 (
- ...
+ ...
);
-
+
By default, the ftplugin only searches for CREATE statements. You can also
override this via your |vimrc| with the following: >
let g:ftplugin_sql_statements = 'create,alter'
@@ -155,43 +155,43 @@ The filetype plugin defines three types of comments: >
1. --
2. //
3. /*
- *
- */
-
+ *
+ */
+
The following |Normal| mode and |Visual| mode maps have been created to work
with comments: >
- ]" move forward to the beginning of a comment
- [" move forward to the end of a comment
+ ]" move forward to the beginning of a comment
+ [" move forward to the end of a comment
-1.4 Macros *sql-macros*
+1.4 Macros *sql-macros*
----------
Vim's feature to find macro definitions, |'define'|, is supported using this
regular expression: >
\c\<\(VARIABLE\|DECLARE\|IN\|OUT\|INOUT\)\>
-
+
This addresses the following code: >
CREATE VARIABLE myVar1 INTEGER;
CREATE PROCEDURE sp_test(
- IN myVar2 INTEGER,
- OUT myVar3 CHAR(30),
- INOUT myVar4 NUMERIC(20,0)
+ IN myVar2 INTEGER,
+ OUT myVar3 CHAR(30),
+ INOUT myVar4 NUMERIC(20,0)
)
BEGIN
- DECLARE myVar5 INTEGER;
+ DECLARE myVar5 INTEGER;
- SELECT c1, c2, c3
- INTO myVar2, myVar3, myVar4
- FROM T1
- WHERE c4 = myVar1;
+ SELECT c1, c2, c3
+ INTO myVar2, myVar3, myVar4
+ FROM T1
+ WHERE c4 = myVar1;
END;
-
+
Place your cursor on "myVar1" on this line: >
- WHERE c4 = myVar1;
- ^
-
+ WHERE c4 = myVar1;
+ ^
+
Press any of the following keys: >
[d
[D
@@ -199,17 +199,17 @@ Press any of the following keys: >
==============================================================================
-2. SQL Dialects *sql-dialects* *sql-types*
- *sybase* *TSQL* *Transact-SQL*
- *sqlanywhere*
- *oracle* *plsql* *sqlj*
- *sqlserver*
- *mysql* *postgress* *psql*
- *informix*
+2. SQL Dialects *sql-dialects* *sql-types*
+ *sybase* *TSQL* *Transact-SQL*
+ *sqlanywhere*
+ *oracle* *plsql* *sqlj*
+ *sqlserver*
+ *mysql* *postgress* *psql*
+ *informix*
All relational databases support SQL. There is a portion of SQL that is
portable across vendors (ex. CREATE TABLE, CREATE INDEX), but there is a
-great deal of vendor specific extensions to SQL. Oracle supports the
+great deal of vendor specific extensions to SQL. Oracle supports the
"CREATE OR REPLACE" syntax, column defaults specified in the CREATE TABLE
statement and the procedural language (for stored procedures and triggers).
@@ -229,13 +229,13 @@ The majority of people work with only one vendor's database product, it would
be nice to specify a default in your |vimrc|.
-2.1 SQLSetType *sqlsettype* *SQLSetType*
+2.1 SQLSetType *sqlsettype* *SQLSetType*
--------------
For the people that work with many different databases, it would be nice to be
able to flip between the various vendors rules (indent, syntax) on a per
buffer basis, at any time. The ftplugin/sql.vim file defines this function: >
SQLSetType
-
+
Executing this function without any parameters will set the indent and syntax
scripts back to their defaults, see |sql-type-default|. If you have turned
off Vi's compatibility mode, |'compatible'|, you can use the <Tab> key to
@@ -247,19 +247,19 @@ source. Using the |cmdline-completion| feature, the SQLSetType function will
search the |'runtimepath'| for all Vim scripts with a name containing 'sql'.
This takes the guess work out of the spelling of the names. The following are
examples: >
- :SQLSetType
+ :SQLSetType
:SQLSetType sqloracle
:SQLSetType sqlanywhere
:SQLSetType sqlinformix
:SQLSetType mysql
-
+
The easiest approach is to the use <Tab> character which will first complete
the command name (SQLSetType), after a space and another <Tab>, display a list
of available Vim script names: >
:SQL<Tab><space><Tab>
-
-2.2 SQL Dialect Default *sql-type-default*
+
+2.2 SQL Dialect Default *sql-type-default*
-----------------------
As mentioned earlier, the default syntax rules for Vim is based on Oracle
(PL/SQL). You can override this default by placing one of the following in
@@ -267,11 +267,11 @@ your |vimrc|: >
let g:sql_type_default = 'sqlanywhere'
let g:sql_type_default = 'sqlinformix'
let g:sql_type_default = 'mysql'
-
+
If you added the following to your |vimrc|: >
let g:sql_type_default = 'sqlinformix'
-
-The next time edit a SQL file the following scripts will be automatically
+
+The next time edit a SQL file the following scripts will be automatically
loaded by Vim: >
ftplugin/sql.vim
syntax/sqlinformix.vim
@@ -283,7 +283,7 @@ exist.
==============================================================================
-3. Adding new SQL Dialects *sql-adding-dialects*
+3. Adding new SQL Dialects *sql-adding-dialects*
If you begin working with a SQL dialect which does not have any customizations
available with the default Vim distribution you can check http://www.vim.org
@@ -294,22 +294,22 @@ To help identify these scripts, try to create the files with a "sql" prefix.
If you decide you wish to create customizations for the SQLite database, you
can create any of the following: >
Unix
- ~/.vim/syntax/sqlite.vim
- ~/.vim/indent/sqlite.vim
+ ~/.vim/syntax/sqlite.vim
+ ~/.vim/indent/sqlite.vim
Windows
- $VIM/vimfiles/syntax/sqlite.vim
- $VIM/vimfiles/indent/sqlite.vim
-
+ $VIM/vimfiles/syntax/sqlite.vim
+ $VIM/vimfiles/indent/sqlite.vim
+
No changes are necessary to the SQLSetType function. It will automatically
-pickup the new SQL files and load them when you issue the SQLSetType command.
+pickup the new SQL files and load them when you issue the SQLSetType command.
==============================================================================
-4. OMNI SQL Completion *sql-completion*
- *omni-sql-completion*
+4. OMNI SQL Completion *sql-completion*
+ *omni-sql-completion*
Vim 7 includes a code completion interface and functions which allows plugin
-developers to build in code completion for any language. Vim 7 includes
+developers to build in code completion for any language. Vim 7 includes
code completion for the SQL language.
There are two modes to the SQL completion plugin, static and dynamic. The
@@ -318,7 +318,7 @@ highlight rules. The dynamic mode populates the popups with data retrieved
directly from a database. This includes, table lists, column lists,
procedures names and more.
-4.1 Static Mode *sql-completion-static*
+4.1 Static Mode *sql-completion-static*
---------------
The static popups created contain items defined by the active syntax rules
while editing a file with a filetype of SQL. The plugin defines (by default)
@@ -330,39 +330,39 @@ The defaults static maps are: >
imap <buffer> <C-C>o <C-\><C-O>:call sqlcomplete#Map('sqlOption')<CR><C-X><C-O>
imap <buffer> <C-C>T <C-\><C-O>:call sqlcomplete#Map('sqlType')<CR><C-X><C-O>
imap <buffer> <C-C>s <C-\><C-O>:call sqlcomplete#Map('sqlStatement')<CR><C-X><C-O>
-
+
The static maps (which are based on the syntax highlight groups) follow this
format: >
imap <buffer> <C-C>k <C-\><C-O>:call sqlcomplete#Map('sqlKeyword')<CR><C-X><C-O>
-
+
This command breaks down as: >
- imap - Create an insert map
- <buffer> - Only for this buffer
- <C-C>k - Your choice of key map
- <C-\><C-O> - Execute one command, return to Insert mode
+ imap - Create an insert map
+ <buffer> - Only for this buffer
+ <C-C>k - Your choice of key map
+ <C-\><C-O> - Execute one command, return to Insert mode
:call sqlcomplete#Map( - Allows the SQL completion plugin to perform some
- housekeeping functions to allow it to be used in
- conjunction with other completion plugins.
- Indicate which item you want the SQL completion
- plugin to complete.
- In this case we are asking the plugin to display
- items from the syntax highlight group
- 'sqlKeyword'.
- You can view a list of highlight group names to
- choose from by executing the
- :syntax list
- command while editing a SQL file.
- 'sqlKeyword' - Display the items for the sqlKeyword highlight
- group
- )<CR> - Execute the :let command
- <C-X><C-O> - Trigger the standard omni completion key stroke.
- Passing in 'sqlKeyword' instructs the SQL
- completion plugin to populate the popup with
- items from the sqlKeyword highlight group. The
- plugin will also cache this result until Vim is
- restarted. The syntax list is retrieved using
- the syntaxcomplete plugin.
-
+ housekeeping functions to allow it to be used in
+ conjunction with other completion plugins.
+ Indicate which item you want the SQL completion
+ plugin to complete.
+ In this case we are asking the plugin to display
+ items from the syntax highlight group
+ 'sqlKeyword'.
+ You can view a list of highlight group names to
+ choose from by executing the
+ :syntax list
+ command while editing a SQL file.
+ 'sqlKeyword' - Display the items for the sqlKeyword highlight
+ group
+ )<CR> - Execute the :let command
+ <C-X><C-O> - Trigger the standard omni completion key stroke.
+ Passing in 'sqlKeyword' instructs the SQL
+ completion plugin to populate the popup with
+ items from the sqlKeyword highlight group. The
+ plugin will also cache this result until Vim is
+ restarted. The syntax list is retrieved using
+ the syntaxcomplete plugin.
+
Using the 'syntax' keyword is a special case. This instructs the
syntaxcomplete plugin to retrieve all syntax items. So this will effectively
work for any of Vim's SQL syntax files. At the time of writing this includes
@@ -371,77 +371,77 @@ above, |sql-dialects|).
Here are some examples of the entries which are pulled from the syntax files: >
All
- - Contains the contents of all syntax highlight groups
+ - Contains the contents of all syntax highlight groups
Statements
- - Select, Insert, Update, Delete, Create, Alter, ...
+ - Select, Insert, Update, Delete, Create, Alter, ...
Functions
- - Min, Max, Trim, Round, Date, ...
+ - Min, Max, Trim, Round, Date, ...
Keywords
- - Index, Database, Having, Group, With
+ - Index, Database, Having, Group, With
Options
- - Isolation_level, On_error, Qualify_owners, Fire_triggers, ...
+ - Isolation_level, On_error, Qualify_owners, Fire_triggers, ...
Types
- - Integer, Char, Varchar, Date, DateTime, Timestamp, ...
-
-
-4.2 Dynamic Mode *sql-completion-dynamic*
+ - Integer, Char, Varchar, Date, DateTime, Timestamp, ...
+
+
+4.2 Dynamic Mode *sql-completion-dynamic*
----------------
Dynamic mode populates the popups with data directly from a database. In
order for the dynamic feature to be enabled you must have the dbext.vim
plugin installed, (http://vim.sourceforge.net/script.php?script_id=356).
-Dynamic mode is used by several features of the SQL completion plugin.
+Dynamic mode is used by several features of the SQL completion plugin.
After installing the dbext plugin see the dbext-tutorial for additional
configuration and usage. The dbext plugin allows the SQL completion plugin
to display a list of tables, procedures, views and columns. >
Table List
- - All tables for all schema owners
+ - All tables for all schema owners
Procedure List
- - All stored procedures for all schema owners
+ - All stored procedures for all schema owners
View List
- - All stored procedures for all schema owners
+ - All stored procedures for all schema owners
Column List
- - For the selected table, the columns that are part of the table
-
+ - For the selected table, the columns that are part of the table
+
To enable the popup, while in INSERT mode, use the following key combinations
-for each group (where <C-C> means hold the CTRL key down while pressing
+for each group (where <C-C> means hold the CTRL key down while pressing
the space bar):
- Table List - <C-C>t
- - <C-X><C-O> (the default map assumes tables)
+ Table List - <C-C>t
+ - <C-X><C-O> (the default map assumes tables)
Stored Procedure List - <C-C>p
- View List - <C-C>v
- Column List - <C-C>c
+ View List - <C-C>v
+ Column List - <C-C>c
Windows platform only - When viewing a popup window displaying the list
- of tables, you can press <C-Right>, this will
- replace the table currently highlighted with
- the column list for that table.
- - When viewing a popup window displaying the list
- of columns, you can press <C-Left>, this will
- replace the column list with the list of tables.
- - This allows you to quickly drill down into a
- table to view it's columns and back again.
-
+ of tables, you can press <C-Right>, this will
+ replace the table currently highlighted with
+ the column list for that table.
+ - When viewing a popup window displaying the list
+ of columns, you can press <C-Left>, this will
+ replace the column list with the list of tables.
+ - This allows you to quickly drill down into a
+ table to view it's columns and back again.
+
The SQL completion plugin caches various lists that are displayed in
the popup window. This makes the re-displaying of these lists very
-fast. If new tables or columns are added to the database it may become
+fast. If new tables or columns are added to the database it may become
necessary to clear the plugins cache. The default map for this is: >
imap <buffer> <C-C>R <C-\><C-O>:call sqlcomplete#Map('ResetCache')<CR><C-X><C-O>
-
-
+
+
4.3 SQL Tutorial *sql-completion-tutorial*
----------------
-
+
This tutorial is designed to take you through the common features of the SQL
completion plugin so that: >
a) You gain familiarity with the plugin
b) You are introduced to some of the more common features
c) Show how to customize it to your preferences
d) Demonstrate "Best of Use" of the plugin (easiest way to configure).
-
+
First, create a new buffer: >
:e tutorial.sql
-
+
Static features
---------------
@@ -450,8 +450,8 @@ To take you through the various lists, simply enter insert mode, hit:
At this point, you can page down through the list until you find "select".
If you are familiar with the item you are looking for, for example you know
the statement begins with the letter "s". You can type ahead (without the
-quotes) "se" then press:
- <C-Spact>t
+quotes) "se" then press:
+ <C-Space>t
Assuming "select" is highlighted in the popup list press <Enter> to choose
the entry. Now type:
* fr<C-C>a (show all syntax items)
@@ -462,12 +462,12 @@ a list of all the database supported types. This may or may not be true
depending on the syntax file you are using. The SQL Anywhere syntax file
(sqlanywhere.vim) has support for this: >
BEGIN
- DECLARE customer_id <C-C>T <-- Choose a type from the list
-
+ DECLARE customer_id <C-C>T <-- Choose a type from the list
+
Dynamic features
----------------
-To take advantage of the dynamic features you must first install the
+To take advantage of the dynamic features you must first install the
dbext.vim plugin (http://vim.sourceforge.net/script.php?script_id=356). It
also comes with a tutorial. From the SQL completion plugin's perspective,
the main feature dbext provides is a connection to a database. dbext
@@ -477,24 +477,24 @@ uses the features of dbext in the background to populate the popups.
What follows assumes dbext.vim has been correctly configured, a simple test
is to run the command, :DBListTable. If a list of tables is shown, you know
-dbext.vim is working as expected. If not, please consult the dbext.txt
+dbext.vim is working as expected. If not, please consult the dbext.txt
documentation.
Assuming you have followed the dbext-tutorial you can press <C-C>t to
display a list of tables. There is a delay while dbext is creating the table
-list. After the list is displayed press <C-W>. This will remove both the
+list. After the list is displayed press <C-W>. This will remove both the
popup window and the table name already chosen when the list became active. >
-
+
4.3.1 Table Completion: *sql-completion-tables*
-
+
Press <C-C>t to display a list of tables from within the database you
-have connected via the dbext plugin.
+have connected via the dbext plugin.
NOTE: All of the SQL completion popups support typing a prefix before pressing
the key map. This will limit the contents of the popup window to just items
beginning with those characters. >
-
+
4.3.2 Column Completion: *sql-completion-columns*
-
+
The SQL completion plugin can also display a list of columns for particular
tables. The column completion is trigger via <C-C>c.
@@ -506,64 +506,64 @@ a key and create one of these mappings (see |sql-completion-maps| for further
details on where to create this imap): >
imap <buffer> <your_keystroke> <C-R>=sqlcomplete#DrillIntoTable()<CR>
imap <buffer> <your_keystroke> <C-Y><C-\><C-O>:call sqlcomplete#Map('column')<CR><C-X><C-O>
-
+
Example of using column completion:
- - Press <C-C>t again to display the list of tables.
+ - Press <C-C>t again to display the list of tables.
- When the list is displayed in the completion window, press <C-Right>,
this will replace the list of tables, with a list of columns for the
- table highlighted (after the same short delay).
+ table highlighted (after the same short delay).
- If you press <C-Left>, this will again replace the column list with the
list of tables. This allows you to drill into tables and column lists
- very quickly.
+ very quickly.
- Press <C-Right> again while the same table is highlighted. You will
notice there is no delay since the column list has been cached. If you
change the schema of a cached table you can press <C-C>R, which
- clears the SQL completion cache.
+ clears the SQL completion cache.
- NOTE: <C-Right> and <C-Left> have been designed to work while the
- completion window is active. If the completion popup window is
+ completion window is active. If the completion popup window is
not active, a normal <C-Right> or <C-Left> will be executed.
-
+
Lets look how we can build a SQL statement dynamically. A select statement
requires a list of columns. There are two ways to build a column list using
the SQL completion plugin. >
One column at a time:
< 1. After typing SELECT press <C-C>t to display a list of tables.
- 2. Choose a table from the list.
- 3. Press <C-Right> to display a list of columns.
- 4. Choose the column from the list and press enter.
- 5. Enter a "," and press <C-C>c. Generating a column list
- generally requires having the cursor on a table name. The plugin
- uses this name to determine what table to retrieve the column list.
- In this step, since we are pressing <C-C>c without the cursor
- on a table name the column list displayed will be for the previous
- table. Choose a different column and move on.
- 6. Repeat step 5 as often as necessary. >
- All columns for a table:
-< 1. After typing SELECT press <C-C>t to display a list of tables.
- 2. Highlight the table you need the column list for.
- 3. Press <Enter> to choose the table from the list.
- 4. Press <C-C>l to request a comma separated list of all columns
- for this table.
- 5. Based on the table name chosen in step 3, the plugin attempts to
- decide on a reasonable table alias. You are then prompted to
- either accept of change the alias. Press OK.
- 6. The table name is replaced with the column list of the table is
- replaced with the comma separate list of columns with the alias
- prepended to each of the columns.
- 7. Step 3 and 4 can be replaced by pressing <C-C>L, which has
- a <C-Y> embedded in the map to choose the currently highlighted
- table in the list.
+ 2. Choose a table from the list.
+ 3. Press <C-Right> to display a list of columns.
+ 4. Choose the column from the list and press enter.
+ 5. Enter a "," and press <C-C>c. Generating a column list
+ generally requires having the cursor on a table name. The plugin
+ uses this name to determine what table to retrieve the column list.
+ In this step, since we are pressing <C-C>c without the cursor
+ on a table name the column list displayed will be for the previous
+ table. Choose a different column and move on.
+ 6. Repeat step 5 as often as necessary. >
+ All columns for a table:
+< 1. After typing SELECT press <C-C>t to display a list of tables.
+ 2. Highlight the table you need the column list for.
+ 3. Press <Enter> to choose the table from the list.
+ 4. Press <C-C>l to request a comma separated list of all columns
+ for this table.
+ 5. Based on the table name chosen in step 3, the plugin attempts to
+ decide on a reasonable table alias. You are then prompted to
+ either accept of change the alias. Press OK.
+ 6. The table name is replaced with the column list of the table is
+ replaced with the comma separate list of columns with the alias
+ prepended to each of the columns.
+ 7. Step 3 and 4 can be replaced by pressing <C-C>L, which has
+ a <C-Y> embedded in the map to choose the currently highlighted
+ table in the list.
There is a special provision when writing select statements. Consider the
following statement: >
- select *
+ select *
from customer c,
- contact cn,
- department as dp,
- employee e,
- site_options so
+ contact cn,
+ department as dp,
+ employee e,
+ site_options so
where c.
-
+
In INSERT mode after typing the final "c." which is an alias for the
"customer" table, you can press either <C-C>c or <C-X><C-O>. This will
popup a list of columns for the customer table. It does this by looking back
@@ -571,19 +571,19 @@ to the beginning of the select statement and finding a list of the tables
specified in the FROM clause. In this case it notes that in the string
"customer c", "c" is an alias for the customer table. The optional "AS"
keyword is also supported, "customer AS c". >
-
-
+
+
4.3.3 Procedure Completion: *sql-completion-procedures*
-
+
Similar to the table list, <C-C>p, will display a list of stored
procedures stored within the database. >
-
+
4.3.4 View Completion: *sql-completion-views*
-
+
Similar to the table list, <C-C>v, will display a list of views in the
database.
-
+
4.4 Completion Customization *sql-completion-customization*
----------------------------
@@ -591,60 +591,60 @@ The SQL completion plugin can be customized through various options set in
your |vimrc|: >
omni_sql_no_default_maps
< - Default: This variable is not defined
- - If this variable is defined, no maps are created for OMNI
- completion. See |sql-completion-maps| for further discussion.
+ - If this variable is defined, no maps are created for OMNI
+ completion. See |sql-completion-maps| for further discussion.
>
omni_sql_use_tbl_alias
-< - Default: a
- - This setting is only used when generating a comma separated
- column list. By default the map is <C-C>l. When generating
- a column list, an alias can be prepended to the beginning of each
- column, for example: e.emp_id, e.emp_name. This option has three
- settings: >
- n - do not use an alias
- d - use the default (calculated) alias
- a - ask to confirm the alias name
+< - Default: a
+ - This setting is only used when generating a comma separated
+ column list. By default the map is <C-C>l. When generating
+ a column list, an alias can be prepended to the beginning of each
+ column, for example: e.emp_id, e.emp_name. This option has three
+ settings: >
+ n - do not use an alias
+ d - use the default (calculated) alias
+ a - ask to confirm the alias name
<
- An alias is determined following a few rules:
- 1. If the table name has an '_', then use it as a separator: >
- MY_TABLE_NAME --> MTN
- my_table_name --> mtn
- My_table_NAME --> MtN
-< 2. If the table name does NOT contain an '_', but DOES use
- mixed case then the case is used as a separator: >
- MyTableName --> MTN
-< 3. If the table name does NOT contain an '_', and does NOT
- use mixed case then the first letter of the table is used: >
- mytablename --> m
- MYTABLENAME --> M
-
+ An alias is determined following a few rules:
+ 1. If the table name has an '_', then use it as a separator: >
+ MY_TABLE_NAME --> MTN
+ my_table_name --> mtn
+ My_table_NAME --> MtN
+< 2. If the table name does NOT contain an '_', but DOES use
+ mixed case then the case is used as a separator: >
+ MyTableName --> MTN
+< 3. If the table name does NOT contain an '_', and does NOT
+ use mixed case then the first letter of the table is used: >
+ mytablename --> m
+ MYTABLENAME --> M
+
omni_sql_ignorecase
-< - Default: Current setting for|ignorecase|
- - Valid settings are 0 or 1.
- - When entering a few letters before initiating completion, the list
- will be filtered to display only the entries which begin with the
- list of characters. When this option is set to 0, the list will be
- filtered using case sensitivity. >
-
+< - Default: Current setting for|ignorecase|
+ - Valid settings are 0 or 1.
+ - When entering a few letters before initiating completion, the list
+ will be filtered to display only the entries which begin with the
+ list of characters. When this option is set to 0, the list will be
+ filtered using case sensitivity. >
+
omni_sql_include_owner
-< - Default: 0, unless dbext.vim 3.00 has been installed
- - Valid settings are 0 or 1.
- - When completing tables, procedure or views and using dbext.vim 3.00
- or higher the list of objects will also include the owner name.
- When completing these objects and omni_sql_include_owner is enabled
- the owner name will be be replaced. >
-
+< - Default: 0, unless dbext.vim 3.00 has been installed
+ - Valid settings are 0 or 1.
+ - When completing tables, procedure or views and using dbext.vim 3.00
+ or higher the list of objects will also include the owner name.
+ When completing these objects and omni_sql_include_owner is enabled
+ the owner name will be be replaced. >
+
omni_sql_precache_syntax_groups
-< - Default:
- ['syntax','sqlKeyword','sqlFunction','sqlOption','sqlType','sqlStatement']
- - sqlcomplete can be used in conjunction with other completion
- plugins. This is outlined at |sql-completion-filetypes|. When the
- filetype is changed temporarily to SQL, the sqlcompletion plugin
- will cache the syntax groups listed in the List specified in this
- option.
+< - Default:
+ ['syntax','sqlKeyword','sqlFunction','sqlOption','sqlType','sqlStatement']
+ - sqlcomplete can be used in conjunction with other completion
+ plugins. This is outlined at |sql-completion-filetypes|. When the
+ filetype is changed temporarily to SQL, the sqlcompletion plugin
+ will cache the syntax groups listed in the List specified in this
+ option.
>
-
-4.5 SQL Maps *sql-completion-maps*
+
+4.5 SQL Maps *sql-completion-maps*
------------
The default SQL maps have been described in other sections of this document in
@@ -656,9 +656,9 @@ These are maps which use populate the completion list using Vim's syntax
highlighting rules. >
<C-C>a
< - Displays all SQL syntax items. >
- <C-C>k
+ <C-C>k
< - Displays all SQL syntax items defined as 'sqlKeyword'. >
- <C-C>f
+ <C-C>f
< - Displays all SQL syntax items defined as 'sqlFunction. >
<C-C>o
< - Displays all SQL syntax items defined as 'sqlOption'. >
@@ -671,7 +671,7 @@ Dynamic Maps
------------
These are maps which use populate the completion list using the dbext.vim
plugin. >
- <C-C>t
+ <C-C>t
< - Displays a list of tables. >
<C-C>p
< - Displays a list of procedures. >
@@ -683,33 +683,33 @@ plugin. >
< - Displays a comma separated list of columns for a specific table. >
<C-C>L
< - Displays a comma separated list of columns for a specific table.
- This should only be used when the completion window is active. >
+ This should only be used when the completion window is active. >
<C-Right>
-< - Displays a list of columns for the table currently highlighted in
- the completion window. <C-Right> is not recognized on most Unix
- systems, so this maps is only created on the Windows platform.
- If you would like the same feature on Unix, choose a different key
- and make the same map in your vimrc. >
+< - Displays a list of columns for the table currently highlighted in
+ the completion window. <C-Right> is not recognized on most Unix
+ systems, so this