updated for version 7.0219
diff --git a/runtime/syntax/sql.vim b/runtime/syntax/sql.vim
index f9a7c19..935dec4 100644
--- a/runtime/syntax/sql.vim
+++ b/runtime/syntax/sql.vim
@@ -1,89 +1,39 @@
-" Vim syntax file
-" Language:	SQL, PL/SQL (Oracle 8i)
-" Maintainer:	Paul Moore <pf_moore AT yahoo.co.uk>
-" Last Change:	2005 Dec 23
+" Vim syntax file loader
+" Language:    SQL
+" Maintainer:  David Fishburn <fishburn at ianywhere dot com>
+" Last Change: Thu Sep 15 2005 10:30:02 AM
+" Version:     1.0
 
+" Description: Checks for a:
+"                  buffer local variable, 
+"                  global variable, 
+"              If the above exist, it will source the type specified.
+"              If none exist, it will source the default sql.vim file.
+"
 " For version 5.x: Clear all syntax items
 " For version 6.x: Quit when a syntax file was already loaded
 if version < 600
-  syntax clear
+    syntax clear
 elseif exists("b:current_syntax")
-  finish
+    finish
 endif
 
-syn case ignore
+" Default to the standard Vim distribution file
+let filename = 'sqloracle'
 
-" The SQL reserved words, defined as keywords.
-
-syn keyword sqlSpecial  false null true
-
-syn keyword sqlKeyword	access add as asc begin by check cluster column
-syn keyword sqlKeyword	compress connect current cursor decimal default desc
-syn keyword sqlKeyword	else elsif end exception exclusive file for from
-syn keyword sqlKeyword	function group having identified if immediate increment
-syn keyword sqlKeyword	index initial into is level loop maxextents mode modify
-syn keyword sqlKeyword	nocompress nowait of offline on online start
-syn keyword sqlKeyword	successful synonym table then to trigger uid
-syn keyword sqlKeyword	unique user validate values view whenever
-syn keyword sqlKeyword	where with option order pctfree privileges procedure
-syn keyword sqlKeyword	public resource return row rowlabel rownum rows
-syn keyword sqlKeyword	session share size smallint type using
-
-syn keyword sqlOperator	not and or
-syn keyword sqlOperator	in any some all between exists
-syn keyword sqlOperator	like escape
-syn keyword sqlOperator union intersect minus
-syn keyword sqlOperator prior distinct
-syn keyword sqlOperator	sysdate out
-
-syn keyword sqlStatement alter analyze audit comment commit create
-syn keyword sqlStatement delete drop execute explain grant insert lock noaudit
-syn keyword sqlStatement rename revoke rollback savepoint select set
-syn keyword sqlStatement truncate update
-
-syn keyword sqlType	boolean char character date float integer long
-syn keyword sqlType	mlslabel number raw rowid varchar varchar2 varray
-
-" Strings and characters:
-syn region sqlString		start=+"+  skip=+\\\\\|\\"+  end=+"+
-syn region sqlString		start=+'+  skip=+\\\\\|\\'+  end=+'+
-
-" Numbers:
-syn match sqlNumber		"-\=\<\d*\.\=[0-9_]\>"
-
-" Comments:
-syn region sqlComment    start="/\*"  end="\*/" contains=sqlTodo
-syn match sqlComment	"--.*$" contains=sqlTodo
-
-syn sync ccomment sqlComment
-
-" Todo.
-syn keyword sqlTodo contained TODO FIXME XXX DEBUG NOTE
-
-" Define the default highlighting.
-" For version 5.7 and earlier: only when not done already
-" For version 5.8 and later: only when an item doesn't have highlighting yet
-if version >= 508 || !exists("did_sql_syn_inits")
-  if version < 508
-    let did_sql_syn_inits = 1
-    command -nargs=+ HiLink hi link <args>
-  else
-    command -nargs=+ HiLink hi def link <args>
-  endif
-
-  HiLink sqlComment	Comment
-  HiLink sqlKeyword	sqlSpecial
-  HiLink sqlNumber	Number
-  HiLink sqlOperator	sqlStatement
-  HiLink sqlSpecial	Special
-  HiLink sqlStatement	Statement
-  HiLink sqlString	String
-  HiLink sqlType	Type
-  HiLink sqlTodo	Todo
-
-  delcommand HiLink
+" Check for overrides.  Buffer variables have the highest priority.
+if exists("b:sql_type_override")
+    " Check the runtimepath to see if the file exists
+    if globpath(&runtimepath, 'syntax/'.b:sql_type_override.'.vim') != ''
+        let filename = b:sql_type_override
+    endif
+elseif exists("g:sql_type_default")
+    if globpath(&runtimepath, 'syntax/'.g:sql_type_default.'.vim') != ''
+        let filename = g:sql_type_default
+    endif
 endif
 
-let b:current_syntax = "sql"
+" Source the appropriate file
+exec 'runtime syntax/'.filename.'.vim'
 
-" vim: ts=8
+" vim:sw=4:ff=unix:
diff --git a/runtime/syntax/sqloracle.vim b/runtime/syntax/sqloracle.vim
new file mode 100644
index 0000000..f9a7c19
--- /dev/null
+++ b/runtime/syntax/sqloracle.vim
@@ -0,0 +1,89 @@
+" Vim syntax file
+" Language:	SQL, PL/SQL (Oracle 8i)
+" Maintainer:	Paul Moore <pf_moore AT yahoo.co.uk>
+" Last Change:	2005 Dec 23
+
+" For version 5.x: Clear all syntax items
+" For version 6.x: Quit when a syntax file was already loaded
+if version < 600
+  syntax clear
+elseif exists("b:current_syntax")
+  finish
+endif
+
+syn case ignore
+
+" The SQL reserved words, defined as keywords.
+
+syn keyword sqlSpecial  false null true
+
+syn keyword sqlKeyword	access add as asc begin by check cluster column
+syn keyword sqlKeyword	compress connect current cursor decimal default desc
+syn keyword sqlKeyword	else elsif end exception exclusive file for from
+syn keyword sqlKeyword	function group having identified if immediate increment
+syn keyword sqlKeyword	index initial into is level loop maxextents mode modify
+syn keyword sqlKeyword	nocompress nowait of offline on online start
+syn keyword sqlKeyword	successful synonym table then to trigger uid
+syn keyword sqlKeyword	unique user validate values view whenever
+syn keyword sqlKeyword	where with option order pctfree privileges procedure
+syn keyword sqlKeyword	public resource return row rowlabel rownum rows
+syn keyword sqlKeyword	session share size smallint type using
+
+syn keyword sqlOperator	not and or
+syn keyword sqlOperator	in any some all between exists
+syn keyword sqlOperator	like escape
+syn keyword sqlOperator union intersect minus
+syn keyword sqlOperator prior distinct
+syn keyword sqlOperator	sysdate out
+
+syn keyword sqlStatement alter analyze audit comment commit create
+syn keyword sqlStatement delete drop execute explain grant insert lock noaudit
+syn keyword sqlStatement rename revoke rollback savepoint select set
+syn keyword sqlStatement truncate update
+
+syn keyword sqlType	boolean char character date float integer long
+syn keyword sqlType	mlslabel number raw rowid varchar varchar2 varray
+
+" Strings and characters:
+syn region sqlString		start=+"+  skip=+\\\\\|\\"+  end=+"+
+syn region sqlString		start=+'+  skip=+\\\\\|\\'+  end=+'+
+
+" Numbers:
+syn match sqlNumber		"-\=\<\d*\.\=[0-9_]\>"
+
+" Comments:
+syn region sqlComment    start="/\*"  end="\*/" contains=sqlTodo
+syn match sqlComment	"--.*$" contains=sqlTodo
+
+syn sync ccomment sqlComment
+
+" Todo.
+syn keyword sqlTodo contained TODO FIXME XXX DEBUG NOTE
+
+" Define the default highlighting.
+" For version 5.7 and earlier: only when not done already
+" For version 5.8 and later: only when an item doesn't have highlighting yet
+if version >= 508 || !exists("did_sql_syn_inits")
+  if version < 508
+    let did_sql_syn_inits = 1
+    command -nargs=+ HiLink hi link <args>
+  else
+    command -nargs=+ HiLink hi def link <args>
+  endif
+
+  HiLink sqlComment	Comment
+  HiLink sqlKeyword	sqlSpecial
+  HiLink sqlNumber	Number
+  HiLink sqlOperator	sqlStatement
+  HiLink sqlSpecial	Special
+  HiLink sqlStatement	Statement
+  HiLink sqlString	String
+  HiLink sqlType	Type
+  HiLink sqlTodo	Todo
+
+  delcommand HiLink
+endif
+
+let b:current_syntax = "sql"
+
+" vim: ts=8