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