xref: /vim-8.2.3635/runtime/syntax/sqloracle.vim (revision 675e8d6a)
11056d988SBram Moolenaar" Vim syntax file
2d042dc82SBram Moolenaar" Language:	SQL, PL/SQL (Oracle 11g)
3d042dc82SBram Moolenaar" Maintainer:	Christian Brabandt
4d042dc82SBram Moolenaar" Repository:   https://github.com/chrisbra/vim-sqloracle-syntax
5d042dc82SBram Moolenaar" License:      Vim
6d042dc82SBram Moolenaar" Previous Maintainer:	Paul Moore
7*675e8d6aSBram Moolenaar" Last Change:	2018 June 24
86f1d9a09SBram Moolenaar
96f1d9a09SBram Moolenaar" Changes:
106f1d9a09SBram Moolenaar" 02.04.2016: Support for when keyword
116f1d9a09SBram Moolenaar" 03.04.2016: Support for join related keywords
126f1d9a09SBram Moolenaar" 22.07.2016: Support Oracle Q-Quote-Syntax
13eb3dc87fSBram Moolenaar" 25.07.2016: Support for Oracle N'-Quote syntax
14*675e8d6aSBram Moolenaar" 22.06.2018: Remove skip part for sqlString (do not escape strings)
15*675e8d6aSBram Moolenaar" (https://web.archive.org/web/20150922065035/https://mariadb.com/kb/en/sql-99/character-string-literals/)
161056d988SBram Moolenaar
17d042dc82SBram Moolenaarif exists("b:current_syntax")
181056d988SBram Moolenaar  finish
191056d988SBram Moolenaarendif
201056d988SBram Moolenaar
211056d988SBram Moolenaarsyn case ignore
221056d988SBram Moolenaar
231056d988SBram Moolenaar" The SQL reserved words, defined as keywords.
241056d988SBram Moolenaar
251056d988SBram Moolenaarsyn keyword sqlSpecial	false null true
261056d988SBram Moolenaar
27d042dc82SBram Moolenaarsyn keyword sqlKeyword	access add as asc begin by case check cluster column
28d042dc82SBram Moolenaarsyn keyword sqlKeyword	cache compress connect current cursor decimal default desc
291056d988SBram Moolenaarsyn keyword sqlKeyword	else elsif end exception exclusive file for from
301056d988SBram Moolenaarsyn keyword sqlKeyword	function group having identified if immediate increment
31d042dc82SBram Moolenaarsyn keyword sqlKeyword	index initial initrans into is level link logging loop
32d042dc82SBram Moolenaarsyn keyword sqlKeyword	maxextents maxtrans mode modify monitoring
33d042dc82SBram Moolenaarsyn keyword sqlKeyword	nocache nocompress nologging noparallel nowait of offline on online start
34d042dc82SBram Moolenaarsyn keyword sqlKeyword	parallel successful synonym table tablespace then to trigger uid
356f1d9a09SBram Moolenaarsyn keyword sqlKeyword	unique user validate values view when whenever
36d042dc82SBram Moolenaarsyn keyword sqlKeyword	where with option order pctfree pctused privileges procedure
371056d988SBram Moolenaarsyn keyword sqlKeyword	public resource return row rowlabel rownum rows
381056d988SBram Moolenaarsyn keyword sqlKeyword	session share size smallint type using
396f1d9a09SBram Moolenaarsyn keyword sqlKeyword	join cross inner outer left right
401056d988SBram Moolenaar
411056d988SBram Moolenaarsyn keyword sqlOperator	not and or
421056d988SBram Moolenaarsyn keyword sqlOperator	in any some all between exists
431056d988SBram Moolenaarsyn keyword sqlOperator	like escape
441056d988SBram Moolenaarsyn keyword sqlOperator	union intersect minus
451056d988SBram Moolenaarsyn keyword sqlOperator	prior distinct
461056d988SBram Moolenaarsyn keyword sqlOperator	sysdate out
471056d988SBram Moolenaar
48d042dc82SBram Moolenaarsyn keyword sqlStatement analyze audit comment commit
49d042dc82SBram Moolenaarsyn keyword sqlStatement delete drop execute explain grant lock noaudit
50d042dc82SBram Moolenaarsyn keyword sqlStatement rename revoke rollback savepoint set
51d042dc82SBram Moolenaarsyn keyword sqlStatement truncate
52d042dc82SBram Moolenaar" next ones are contained, so folding works.
53d042dc82SBram Moolenaarsyn keyword sqlStatement create update alter select insert contained
541056d988SBram Moolenaar
55*675e8d6aSBram Moolenaarsyn keyword sqlType	bfile blob boolean char character clob date datetime
56*675e8d6aSBram Moolenaarsyn keyword sqlType	dec decimal float int integer long mlslabel nchar
57*675e8d6aSBram Moolenaarsyn keyword sqlType	nclob number numeric nvarchar2 precision raw rowid
58*675e8d6aSBram Moolenaarsyn keyword sqlType	smallint real timestamp urowid varchar varchar2 varray
591056d988SBram Moolenaar
60d042dc82SBram Moolenaar" Strings:
61*675e8d6aSBram Moolenaarsyn region sqlString	matchgroup=Quote start=+n\?"+     end=+"+
62*675e8d6aSBram Moolenaarsyn region sqlString	matchgroup=Quote start=+n\?'+     end=+'+
636f1d9a09SBram Moolenaarsyn region sqlString	matchgroup=Quote start=+n\?q'\z([^[(<{]\)+    end=+\z1'+
646f1d9a09SBram Moolenaarsyn region sqlString	matchgroup=Quote start=+n\?q'<+   end=+>'+
656f1d9a09SBram Moolenaarsyn region sqlString	matchgroup=Quote start=+n\?q'{+   end=+}'+
666f1d9a09SBram Moolenaarsyn region sqlString	matchgroup=Quote start=+n\?q'(+   end=+)'+
676f1d9a09SBram Moolenaarsyn region sqlString	matchgroup=Quote start=+n\?q'\[+  end=+]'+
681056d988SBram Moolenaar
691056d988SBram Moolenaar" Numbers:
701056d988SBram Moolenaarsyn match sqlNumber	"-\=\<\d*\.\=[0-9_]\>"
711056d988SBram Moolenaar
721056d988SBram Moolenaar" Comments:
73d042dc82SBram Moolenaarsyn region sqlComment	start="/\*"  end="\*/" contains=sqlTodo,@Spell fold
74d042dc82SBram Moolenaarsyn match sqlComment	"--.*$" contains=sqlTodo,@Spell
75*675e8d6aSBram Moolenaarsyn match sqlComment "^rem.*$" contains=sqlTodo,@Spell
76d042dc82SBram Moolenaar
77d042dc82SBram Moolenaar" Setup Folding:
78d042dc82SBram Moolenaar" this is a hack, to get certain statements folded.
79d042dc82SBram Moolenaar" the keywords create/update/alter/select/insert need to
80d042dc82SBram Moolenaar" have contained option.
81d042dc82SBram Moolenaarsyn region sqlFold start='^\s*\zs\c\(Create\|Update\|Alter\|Select\|Insert\)' end=';$\|^$' transparent fold contains=ALL
821056d988SBram Moolenaar
831056d988SBram Moolenaarsyn sync ccomment sqlComment
841056d988SBram Moolenaar
85d042dc82SBram Moolenaar" Functions:
86d042dc82SBram Moolenaar" (Oracle 11g)
87d042dc82SBram Moolenaar" Aggregate Functions
88d042dc82SBram Moolenaarsyn keyword sqlFunction	avg collect corr corr_s corr_k count covar_pop covar_samp cume_dist dense_rank first
89d042dc82SBram Moolenaarsyn keyword sqlFunction	group_id grouping grouping_id last max median min percentile_cont percentile_disc percent_rank rank
90d042dc82SBram Moolenaarsyn keyword sqlFunction	regr_slope regr_intercept regr_count regr_r2 regr_avgx regr_avgy regr_sxx regr_syy regr_sxy
91d042dc82SBram Moolenaarsyn keyword sqlFunction	stats_binomial_test stats_crosstab stats_f_test stats_ks_test stats_mode stats_mw_test
92d042dc82SBram Moolenaarsyn keyword sqlFunction	stats_one_way_anova stats_t_test_one stats_t_test_paired stats_t_test_indep stats_t_test_indepu
93d042dc82SBram Moolenaarsyn keyword sqlFunction	stats_wsr_test stddev stddev_pop stddev_samp sum
94d042dc82SBram Moolenaarsyn keyword sqlFunction	sys_xmlagg var_pop var_samp variance xmlagg
95d042dc82SBram Moolenaar" Char Functions
96d042dc82SBram Moolenaarsyn keyword sqlFunction	ascii chr concat initcap instr length lower lpad ltrim
97d042dc82SBram Moolenaarsyn keyword sqlFunction	nls_initcap nls_lower nlssort nls_upper regexp_instr regexp_replace
98d042dc82SBram Moolenaarsyn keyword sqlFunction	regexp_substr replace rpad rtrim soundex substr translate treat trim upper
99d042dc82SBram Moolenaar" Comparison Functions
100d042dc82SBram Moolenaarsyn keyword sqlFunction	greatest least
101d042dc82SBram Moolenaar" Conversion Functions
102d042dc82SBram Moolenaarsyn keyword sqlFunction	asciistr bin_to_num cast chartorowid compose convert
103d042dc82SBram Moolenaarsyn keyword sqlFunction	decompose hextoraw numtodsinterval numtoyminterval rawtohex rawtonhex rowidtochar
104d042dc82SBram Moolenaarsyn keyword sqlFunction	rowidtonchar scn_to_timestamp timestamp_to_scn to_binary_double to_binary_float
105d042dc82SBram Moolenaarsyn keyword sqlFunction	to_char to_char to_char to_clob to_date to_dsinterval to_lob to_multi_byte
106d042dc82SBram Moolenaarsyn keyword sqlFunction	to_nchar to_nchar to_nchar to_nclob to_number to_dsinterval to_single_byte
107d042dc82SBram Moolenaarsyn keyword sqlFunction	to_timestamp to_timestamp_tz to_yminterval to_yminterval translate unistr
108d042dc82SBram Moolenaar" DataMining Functions
109d042dc82SBram Moolenaarsyn keyword sqlFunction	cluster_id cluster_probability cluster_set feature_id feature_set
110d042dc82SBram Moolenaarsyn keyword sqlFunction	feature_value prediction prediction_bounds prediction_cost
111d042dc82SBram Moolenaarsyn keyword sqlFunction	prediction_details prediction_probability prediction_set
112d042dc82SBram Moolenaar" Datetime Functions
113d042dc82SBram Moolenaarsyn keyword sqlFunction	add_months current_date current_timestamp dbtimezone extract
114d042dc82SBram Moolenaarsyn keyword sqlFunction	from_tz last_day localtimestamp months_between new_time
115d042dc82SBram Moolenaarsyn keyword sqlFunction	next_day numtodsinterval numtoyminterval round sessiontimezone
116d042dc82SBram Moolenaarsyn keyword sqlFunction	sys_extract_utc sysdate systimestamp to_char to_timestamp
117d042dc82SBram Moolenaarsyn keyword sqlFunction	to_timestamp_tz to_dsinterval to_yminterval trunc tz_offset
118d042dc82SBram Moolenaar" Numeric Functions
119d042dc82SBram Moolenaarsyn keyword sqlFunction	abs acos asin atan atan2 bitand ceil cos cosh exp
120d042dc82SBram Moolenaarsyn keyword sqlFunction	floor ln log mod nanvl power remainder round sign
121d042dc82SBram Moolenaarsyn keyword sqlFunction	sin sinh sqrt tan tanh trunc width_bucket
122d042dc82SBram Moolenaar" NLS Functions
123d042dc82SBram Moolenaarsyn keyword sqlFunction	ls_charset_decl_len nls_charset_id nls_charset_name
124d042dc82SBram Moolenaar" Various Functions
125d042dc82SBram Moolenaarsyn keyword sqlFunction	bfilename cardin coalesce collect decode dump empty_blob empty_clob
126d042dc82SBram Moolenaarsyn keyword sqlFunction	lnnvl nullif nvl nvl2 ora_hash powermultiset powermultiset_by_cardinality
127d042dc82SBram Moolenaarsyn keyword sqlFunction	sys_connect_by_path sys_context sys_guid sys_typeid uid user userenv vsizeality
128d042dc82SBram Moolenaar" XML Functions
129d042dc82SBram Moolenaarsyn keyword sqlFunction	appendchildxml deletexml depth extract existsnode extractvalue insertchildxml
130d042dc82SBram Moolenaarsyn keyword sqlFunction	insertxmlbefore path sys_dburigen sys_xmlagg sys_xmlgen updatexml xmlagg xmlcast
131d042dc82SBram Moolenaarsyn keyword sqlFunction	xmlcdata xmlcolattval xmlcomment xmlconcat xmldiff xmlelement xmlexists xmlforest
132d042dc82SBram Moolenaarsyn keyword sqlFunction	xmlparse xmlpatch xmlpi xmlquery xmlroot xmlsequence xmlserialize xmltable xmltransform
133d042dc82SBram Moolenaar" Todo:
134d042dc82SBram Moolenaarsyn keyword sqlTodo TODO FIXME XXX DEBUG NOTE contained
1351056d988SBram Moolenaar
1361056d988SBram Moolenaar" Define the default highlighting.
137f37506f6SBram Moolenaarhi def link Quote		Special
138f37506f6SBram Moolenaarhi def link sqlComment		Comment
139f37506f6SBram Moolenaarhi def link sqlFunction		Function
140f37506f6SBram Moolenaarhi def link sqlKeyword		sqlSpecial
141f37506f6SBram Moolenaarhi def link sqlNumber		Number
142f37506f6SBram Moolenaarhi def link sqlOperator		sqlStatement
143f37506f6SBram Moolenaarhi def link sqlSpecial		Special
144f37506f6SBram Moolenaarhi def link sqlStatement	Statement
145f37506f6SBram Moolenaarhi def link sqlString		String
146f37506f6SBram Moolenaarhi def link sqlType		Type
147f37506f6SBram Moolenaarhi def link sqlTodo		Todo
1481056d988SBram Moolenaar
1491056d988SBram Moolenaarlet b:current_syntax = "sql"
1501056d988SBram Moolenaar" vim: ts=8
151