├── .gitignore ├── Commands ├── Describe Selection or Word.tmCommand ├── Find Procedure.tmCommand ├── Help.tmCommand ├── Run Script.tmCommand ├── Run Selection or Line.tmCommand └── Search Oracle Docs for Selection or Word.tmCommand ├── DragCommands └── Import File.tmDragCommand ├── LICENSE ├── Preferences └── Indent.tmPreferences ├── Snippets ├── New Function.tmSnippet ├── New Procedure.tmSnippet ├── begin ___ end.tmSnippet ├── elsif ___.tmSnippet ├── fail.tmSnippet ├── if ___ else ___ end.tmSnippet ├── if ___ end.tmSnippet ├── log debug.tmSnippet ├── log error.tmSnippet ├── log print.tmSnippet ├── loop ___ end.tmSnippet └── success.tmSnippet ├── Syntaxes └── PL SQL (Oracle).tmLanguage ├── Templates ├── Package Body.tmTemplate │ ├── info.plist │ └── template_in.sql └── Package Spec.tmTemplate │ ├── info.plist │ └── template_in.sql └── info.plist /.gitignore: -------------------------------------------------------------------------------- 1 | *.cache 2 | -------------------------------------------------------------------------------- /Commands/Describe Selection or Word.tmCommand: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | beforeRunningCommand 6 | nop 7 | command 8 | query=${TM_SELECTED_TEXT:-$TM_CURRENT_WORD} 9 | 10 | . "$TM_SUPPORT_PATH/lib/webpreview.sh" 11 | html_header "Describe $query" 12 | 13 | NLS_LANG=AMERICAN_AMERICA.UTF8 14 | export NLS_LANG 15 | 16 | sqlplus -S -L /NOLOG <<EOF 17 | set define off 18 | whenever sqlerror exit failure rollback 19 | prompt <pre> 20 | connect "$ORA_USER"/"$ORA_PWD"@"$ORA_CONNECT" 21 | show user 22 | prompt </pre> 23 | set markup html on 24 | desc $query 25 | set markup html off 26 | EOF 27 | 28 | echo "SQL*Plus exited." 29 | html_footer 30 | 31 | fallbackInput 32 | word 33 | input 34 | selection 35 | keyEquivalent 36 | @d 37 | name 38 | Describe Selection or Word 39 | output 40 | showAsHTML 41 | scope 42 | source.plsql.oracle 43 | uuid 44 | 65257C54-A07C-4764-961C-B892F28A89DF 45 | 46 | 47 | -------------------------------------------------------------------------------- /Commands/Find Procedure.tmCommand: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | beforeRunningCommand 6 | nop 7 | command 8 | #!/usr/bin/env ruby 9 | 10 | require ENV['TM_SUPPORT_PATH'] + '/lib/textmate' 11 | require ENV['TM_SUPPORT_PATH'] + '/lib/exit_codes' 12 | 13 | proj = ENV['TM_PROJECT_DIRECTORY'] 14 | file = ENV['TM_FILEPATH'] 15 | 16 | line = ENV['TM_CURRENT_LINE'] 17 | proc = ENV['TM_CURRENT_WORD'] 18 | 19 | if line.match(%r{\b([-a-z0-9_]+)\.#{proc}}i) 20 | pkg = $1 21 | file = %x{egrep -il -r "create.*package *body *#{pkg}\\b" "#{proj}"}.split(/\n/).last 22 | if file 23 | res = %x{egrep -in "(function|procedure) *#{proc}" "#{file}"}.split(/\n/).last 24 | else 25 | TextMate.exit_show_tool_tip "Package #{pkg} not available" 26 | end 27 | else 28 | res = %x{egrep -in "(function|procedure) *#{proc}" "#{file}"}.split(/\n/).last 29 | end 30 | 31 | if res 32 | data = res.split(/:/) 33 | TextMate.go_to :file => file, :line => data[0], :column => 0 34 | else 35 | file = file.sub(%r{#{proj}/?}, '') 36 | TextMate.exit_show_tool_tip "Procedure #{proc} not found in #{file}" 37 | end 38 | 39 | fallbackInput 40 | word 41 | input 42 | selection 43 | keyEquivalent 44 | ^f 45 | name 46 | Find Procedure 47 | output 48 | showAsTooltip 49 | scope 50 | source.plsql.oracle 51 | uuid 52 | 1222BE8A-15D8-4C06-8965-F139A153DD97 53 | 54 | 55 | -------------------------------------------------------------------------------- /Commands/Help.tmCommand: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | beforeRunningCommand 6 | nop 7 | command 8 | . "$TM_SUPPORT_PATH/lib/webpreview.sh" 9 | html_header "Oracle PL/SQL Bundle Help" "Oracle" 10 | 11 | Markdown.pl <<'EOF' 12 | # Help for the Oracle PL/SQL Bundle 13 | 14 | ## Search Oracle Docs for Selection or Word 15 | 16 | The _Search Oracle Docs for Selection or Word_ command searches for the selected text or current word in the Oracle online documentation. 17 | 18 | ## Run Script 19 | 20 | The _Run Script_ command takes the current file and runs it using SQL*Plus. 21 | 22 | ## Run Selection or Line 23 | 24 | The _Run Selection or Line_ command takes the selected text or current line and submits it as a query using SQL*Plus. 25 | 26 | ## Describe Selection or Word 27 | 28 | The _Describe Selection or Word_ command takes the selected text or current word and submits a describe command to SQL*Plus. 29 | 30 | ## Open SQL*Plus 31 | 32 | The _Open SQL*Plus_ command opens up SQL*Plus in the project folder and logs in using the username, password and connectstring supplied as environment variables. Useful for running "interactive" SQL-scripts. 33 | 34 | ## Find Procedure 35 | 36 | The _Find Procedure_ command will search for a procedure or function in a package body with the name of the current word. If it is found, the file containing it is shown and the cursor moves to the start of the procedure or function. 37 | 38 | ### Environment Variables 39 | 40 | The commands assumes the following environment variables are properly set: 41 | 42 | * `$ORA_USER` - schema/username e.g. SCOTT 43 | * `$ORA_PWD ` - password, e.g. TIGER 44 | * `$ORA_CONNECT` - connect string, e.g. localhost:1521/ORCL 45 | 46 | These variables may be set in the parent shell of TextMate, global variables in TextMate preferences, or as project local variables. 47 | 48 | The commands all assume UTF-8 formatted files. 49 | 50 | ## Extras 51 | 52 | ### Importing a File 53 | 54 | You can import the contents of another file into the currently open file by dragging 55 | it into the window. The contents will appear at the place you release it. 56 | 57 | ### Tab Triggers 58 | 59 | There are a number of "tab triggers" defined which will insert useful code snippets into the current file. Look at the Oracle menu to see what these are and how to activate them. 60 | 61 | EOF 62 | 63 | html_footer 64 | 65 | input 66 | none 67 | keyEquivalent 68 | ^H 69 | name 70 | Help 71 | output 72 | showAsHTML 73 | scope 74 | source.plsql.oracle 75 | uuid 76 | 69B47504-F6E5-44BB-A758-51DB35270B9C 77 | 78 | 79 | -------------------------------------------------------------------------------- /Commands/Run Script.tmCommand: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | beforeRunningCommand 6 | nop 7 | command 8 | . "$TM_SUPPORT_PATH/lib/webpreview.sh" 9 | html_header "Run ‘${TM_FILENAME}’" 10 | 11 | cd "$TM_DIRECTORY" 12 | 13 | NLS_LANG=AMERICAN_AMERICA.UTF8 14 | export NLS_LANG 15 | 16 | sqlplus -S -L /NOLOG <<EOF 17 | set define off 18 | whenever sqlerror exit failure rollback 19 | prompt <pre> 20 | connect "$ORA_USER"/"$ORA_PWD"@"$ORA_CONNECT" 21 | show user 22 | prompt Running $TM_FILENAME 23 | @"$TM_FILENAME" 24 | show errors 25 | prompt </pre> 26 | EOF 27 | 28 | echo "SQL*Plus exited." 29 | html_footer 30 | 31 | input 32 | none 33 | keyEquivalent 34 | @r 35 | name 36 | Run Script 37 | output 38 | showAsHTML 39 | scope 40 | source.plsql.oracle 41 | uuid 42 | BA59AADC-85C6-4215-BEFA-DF6BAAEFC7F5 43 | 44 | 45 | -------------------------------------------------------------------------------- /Commands/Run Selection or Line.tmCommand: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | beforeRunningCommand 6 | nop 7 | command 8 | query=${TM_SELECTED_TEXT:-$TM_CURRENT_LINE} 9 | 10 | . "$TM_SUPPORT_PATH/lib/webpreview.sh" 11 | html_header "Run Selection or Line" 12 | 13 | NLS_LANG=AMERICAN_AMERICA.UTF8 14 | export NLS_LANG 15 | 16 | sqlplus -S -L /NOLOG <<EOF 17 | set define off 18 | whenever sqlerror exit failure rollback 19 | prompt <pre> 20 | connect "$ORA_USER"/"$ORA_PWD"@"$ORA_CONNECT" 21 | show user 22 | prompt </pre> 23 | set markup html on 24 | $query 25 | set markup html off 26 | prompt <pre> 27 | show errors 28 | prompt </pre> 29 | EOF 30 | 31 | echo "SQL*Plus exited." 32 | html_footer 33 | 34 | fallbackInput 35 | line 36 | input 37 | selection 38 | keyEquivalent 39 | @R 40 | name 41 | Run Selection or Line 42 | output 43 | showAsHTML 44 | scope 45 | source.plsql.oracle 46 | uuid 47 | 57DAAB63-8B29-4599-B25C-0A2661A702E3 48 | 49 | 50 | -------------------------------------------------------------------------------- /Commands/Search Oracle Docs for Selection or Word.tmCommand: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | beforeRunningCommand 6 | nop 7 | command 8 | query=${TM_SELECTED_TEXT:-$TM_CURRENT_WORD} 9 | 10 | . "$TM_SUPPORT_PATH/lib/html.sh" 11 | redirect "http://www.oracle.com/pls/db111/search?remark=quick_search&word=$query" 12 | 13 | fallbackInput 14 | word 15 | input 16 | selection 17 | keyEquivalent 18 | ^h 19 | name 20 | Search Oracle Docs for Selection or Word 21 | output 22 | showAsHTML 23 | scope 24 | source.plsql.oracle 25 | uuid 26 | 2D735CC6-DF05-4725-A4FD-08DE33AAD9E4 27 | 28 | 29 | -------------------------------------------------------------------------------- /DragCommands/Import File.tmDragCommand: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | beforeRunningCommand 6 | nop 7 | command 8 | cat "$TM_DROPPED_FILE" 9 | draggedFileExtensions 10 | 11 | sql 12 | 13 | input 14 | selection 15 | name 16 | Import File 17 | output 18 | insertAsSnippet 19 | scope 20 | source.plsql.oracle 21 | uuid 22 | 7CFC443C-623B-405B-8691-F109033BEA39 23 | 24 | 25 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | GNU GENERAL PUBLIC LICENSE 2 | Version 2, June 1991 3 | 4 | Copyright (C) 1989, 1991 Free Software Foundation, Inc., 5 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 6 | Everyone is permitted to copy and distribute verbatim copies 7 | of this license document, but changing it is not allowed. 8 | 9 | Preamble 10 | 11 | The licenses for most software are designed to take away your 12 | freedom to share and change it. By contrast, the GNU General Public 13 | License is intended to guarantee your freedom to share and change free 14 | software--to make sure the software is free for all its users. This 15 | General Public License applies to most of the Free Software 16 | Foundation's software and to any other program whose authors commit to 17 | using it. (Some other Free Software Foundation software is covered by 18 | the GNU Lesser General Public License instead.) You can apply it to 19 | your programs, too. 20 | 21 | When we speak of free software, we are referring to freedom, not 22 | price. Our General Public Licenses are designed to make sure that you 23 | have the freedom to distribute copies of free software (and charge for 24 | this service if you wish), that you receive source code or can get it 25 | if you want it, that you can change the software or use pieces of it 26 | in new free programs; and that you know you can do these things. 27 | 28 | To protect your rights, we need to make restrictions that forbid 29 | anyone to deny you these rights or to ask you to surrender the rights. 30 | These restrictions translate to certain responsibilities for you if you 31 | distribute copies of the software, or if you modify it. 32 | 33 | For example, if you distribute copies of such a program, whether 34 | gratis or for a fee, you must give the recipients all the rights that 35 | you have. You must make sure that they, too, receive or can get the 36 | source code. And you must show them these terms so they know their 37 | rights. 38 | 39 | We protect your rights with two steps: (1) copyright the software, and 40 | (2) offer you this license which gives you legal permission to copy, 41 | distribute and/or modify the software. 42 | 43 | Also, for each author's protection and ours, we want to make certain 44 | that everyone understands that there is no warranty for this free 45 | software. If the software is modified by someone else and passed on, we 46 | want its recipients to know that what they have is not the original, so 47 | that any problems introduced by others will not reflect on the original 48 | authors' reputations. 49 | 50 | Finally, any free program is threatened constantly by software 51 | patents. We wish to avoid the danger that redistributors of a free 52 | program will individually obtain patent licenses, in effect making the 53 | program proprietary. To prevent this, we have made it clear that any 54 | patent must be licensed for everyone's free use or not licensed at all. 55 | 56 | The precise terms and conditions for copying, distribution and 57 | modification follow. 58 | 59 | GNU GENERAL PUBLIC LICENSE 60 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 61 | 62 | 0. This License applies to any program or other work which contains 63 | a notice placed by the copyright holder saying it may be distributed 64 | under the terms of this General Public License. The "Program", below, 65 | refers to any such program or work, and a "work based on the Program" 66 | means either the Program or any derivative work under copyright law: 67 | that is to say, a work containing the Program or a portion of it, 68 | either verbatim or with modifications and/or translated into another 69 | language. (Hereinafter, translation is included without limitation in 70 | the term "modification".) Each licensee is addressed as "you". 71 | 72 | Activities other than copying, distribution and modification are not 73 | covered by this License; they are outside its scope. The act of 74 | running the Program is not restricted, and the output from the Program 75 | is covered only if its contents constitute a work based on the 76 | Program (independent of having been made by running the Program). 77 | Whether that is true depends on what the Program does. 78 | 79 | 1. You may copy and distribute verbatim copies of the Program's 80 | source code as you receive it, in any medium, provided that you 81 | conspicuously and appropriately publish on each copy an appropriate 82 | copyright notice and disclaimer of warranty; keep intact all the 83 | notices that refer to this License and to the absence of any warranty; 84 | and give any other recipients of the Program a copy of this License 85 | along with the Program. 86 | 87 | You may charge a fee for the physical act of transferring a copy, and 88 | you may at your option offer warranty protection in exchange for a fee. 89 | 90 | 2. You may modify your copy or copies of the Program or any portion 91 | of it, thus forming a work based on the Program, and copy and 92 | distribute such modifications or work under the terms of Section 1 93 | above, provided that you also meet all of these conditions: 94 | 95 | a) You must cause the modified files to carry prominent notices 96 | stating that you changed the files and the date of any change. 97 | 98 | b) You must cause any work that you distribute or publish, that in 99 | whole or in part contains or is derived from the Program or any 100 | part thereof, to be licensed as a whole at no charge to all third 101 | parties under the terms of this License. 102 | 103 | c) If the modified program normally reads commands interactively 104 | when run, you must cause it, when started running for such 105 | interactive use in the most ordinary way, to print or display an 106 | announcement including an appropriate copyright notice and a 107 | notice that there is no warranty (or else, saying that you provide 108 | a warranty) and that users may redistribute the program under 109 | these conditions, and telling the user how to view a copy of this 110 | License. (Exception: if the Program itself is interactive but 111 | does not normally print such an announcement, your work based on 112 | the Program is not required to print an announcement.) 113 | 114 | These requirements apply to the modified work as a whole. If 115 | identifiable sections of that work are not derived from the Program, 116 | and can be reasonably considered independent and separate works in 117 | themselves, then this License, and its terms, do not apply to those 118 | sections when you distribute them as separate works. But when you 119 | distribute the same sections as part of a whole which is a work based 120 | on the Program, the distribution of the whole must be on the terms of 121 | this License, whose permissions for other licensees extend to the 122 | entire whole, and thus to each and every part regardless of who wrote it. 123 | 124 | Thus, it is not the intent of this section to claim rights or contest 125 | your rights to work written entirely by you; rather, the intent is to 126 | exercise the right to control the distribution of derivative or 127 | collective works based on the Program. 128 | 129 | In addition, mere aggregation of another work not based on the Program 130 | with the Program (or with a work based on the Program) on a volume of 131 | a storage or distribution medium does not bring the other work under 132 | the scope of this License. 133 | 134 | 3. You may copy and distribute the Program (or a work based on it, 135 | under Section 2) in object code or executable form under the terms of 136 | Sections 1 and 2 above provided that you also do one of the following: 137 | 138 | a) Accompany it with the complete corresponding machine-readable 139 | source code, which must be distributed under the terms of Sections 140 | 1 and 2 above on a medium customarily used for software interchange; or, 141 | 142 | b) Accompany it with a written offer, valid for at least three 143 | years, to give any third party, for a charge no more than your 144 | cost of physically performing source distribution, a complete 145 | machine-readable copy of the corresponding source code, to be 146 | distributed under the terms of Sections 1 and 2 above on a medium 147 | customarily used for software interchange; or, 148 | 149 | c) Accompany it with the information you received as to the offer 150 | to distribute corresponding source code. (This alternative is 151 | allowed only for noncommercial distribution and only if you 152 | received the program in object code or executable form with such 153 | an offer, in accord with Subsection b above.) 154 | 155 | The source code for a work means the preferred form of the work for 156 | making modifications to it. For an executable work, complete source 157 | code means all the source code for all modules it contains, plus any 158 | associated interface definition files, plus the scripts used to 159 | control compilation and installation of the executable. However, as a 160 | special exception, the source code distributed need not include 161 | anything that is normally distributed (in either source or binary 162 | form) with the major components (compiler, kernel, and so on) of the 163 | operating system on which the executable runs, unless that component 164 | itself accompanies the executable. 165 | 166 | If distribution of executable or object code is made by offering 167 | access to copy from a designated place, then offering equivalent 168 | access to copy the source code from the same place counts as 169 | distribution of the source code, even though third parties are not 170 | compelled to copy the source along with the object code. 171 | 172 | 4. You may not copy, modify, sublicense, or distribute the Program 173 | except as expressly provided under this License. Any attempt 174 | otherwise to copy, modify, sublicense or distribute the Program is 175 | void, and will automatically terminate your rights under this License. 176 | However, parties who have received copies, or rights, from you under 177 | this License will not have their licenses terminated so long as such 178 | parties remain in full compliance. 179 | 180 | 5. You are not required to accept this License, since you have not 181 | signed it. However, nothing else grants you permission to modify or 182 | distribute the Program or its derivative works. These actions are 183 | prohibited by law if you do not accept this License. Therefore, by 184 | modifying or distributing the Program (or any work based on the 185 | Program), you indicate your acceptance of this License to do so, and 186 | all its terms and conditions for copying, distributing or modifying 187 | the Program or works based on it. 188 | 189 | 6. Each time you redistribute the Program (or any work based on the 190 | Program), the recipient automatically receives a license from the 191 | original licensor to copy, distribute or modify the Program subject to 192 | these terms and conditions. You may not impose any further 193 | restrictions on the recipients' exercise of the rights granted herein. 194 | You are not responsible for enforcing compliance by third parties to 195 | this License. 196 | 197 | 7. If, as a consequence of a court judgment or allegation of patent 198 | infringement or for any other reason (not limited to patent issues), 199 | conditions are imposed on you (whether by court order, agreement or 200 | otherwise) that contradict the conditions of this License, they do not 201 | excuse you from the conditions of this License. If you cannot 202 | distribute so as to satisfy simultaneously your obligations under this 203 | License and any other pertinent obligations, then as a consequence you 204 | may not distribute the Program at all. For example, if a patent 205 | license would not permit royalty-free redistribution of the Program by 206 | all those who receive copies directly or indirectly through you, then 207 | the only way you could satisfy both it and this License would be to 208 | refrain entirely from distribution of the Program. 209 | 210 | If any portion of this section is held invalid or unenforceable under 211 | any particular circumstance, the balance of the section is intended to 212 | apply and the section as a whole is intended to apply in other 213 | circumstances. 214 | 215 | It is not the purpose of this section to induce you to infringe any 216 | patents or other property right claims or to contest validity of any 217 | such claims; this section has the sole purpose of protecting the 218 | integrity of the free software distribution system, which is 219 | implemented by public license practices. Many people have made 220 | generous contributions to the wide range of software distributed 221 | through that system in reliance on consistent application of that 222 | system; it is up to the author/donor to decide if he or she is willing 223 | to distribute software through any other system and a licensee cannot 224 | impose that choice. 225 | 226 | This section is intended to make thoroughly clear what is believed to 227 | be a consequence of the rest of this License. 228 | 229 | 8. If the distribution and/or use of the Program is restricted in 230 | certain countries either by patents or by copyrighted interfaces, the 231 | original copyright holder who places the Program under this License 232 | may add an explicit geographical distribution limitation excluding 233 | those countries, so that distribution is permitted only in or among 234 | countries not thus excluded. In such case, this License incorporates 235 | the limitation as if written in the body of this License. 236 | 237 | 9. The Free Software Foundation may publish revised and/or new versions 238 | of the General Public License from time to time. Such new versions will 239 | be similar in spirit to the present version, but may differ in detail to 240 | address new problems or concerns. 241 | 242 | Each version is given a distinguishing version number. If the Program 243 | specifies a version number of this License which applies to it and "any 244 | later version", you have the option of following the terms and conditions 245 | either of that version or of any later version published by the Free 246 | Software Foundation. If the Program does not specify a version number of 247 | this License, you may choose any version ever published by the Free Software 248 | Foundation. 249 | 250 | 10. If you wish to incorporate parts of the Program into other free 251 | programs whose distribution conditions are different, write to the author 252 | to ask for permission. For software which is copyrighted by the Free 253 | Software Foundation, write to the Free Software Foundation; we sometimes 254 | make exceptions for this. Our decision will be guided by the two goals 255 | of preserving the free status of all derivatives of our free software and 256 | of promoting the sharing and reuse of software generally. 257 | 258 | NO WARRANTY 259 | 260 | 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY 261 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN 262 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES 263 | PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED 264 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 265 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS 266 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE 267 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, 268 | REPAIR OR CORRECTION. 269 | 270 | 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 271 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR 272 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, 273 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING 274 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED 275 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY 276 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER 277 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE 278 | POSSIBILITY OF SUCH DAMAGES. 279 | 280 | END OF TERMS AND CONDITIONS 281 | 282 | How to Apply These Terms to Your New Programs 283 | 284 | If you develop a new program, and you want it to be of the greatest 285 | possible use to the public, the best way to achieve this is to make it 286 | free software which everyone can redistribute and change under these terms. 287 | 288 | To do so, attach the following notices to the program. It is safest 289 | to attach them to the start of each source file to most effectively 290 | convey the exclusion of warranty; and each file should have at least 291 | the "copyright" line and a pointer to where the full notice is found. 292 | 293 | 294 | Copyright (C) 295 | 296 | This program is free software; you can redistribute it and/or modify 297 | it under the terms of the GNU General Public License as published by 298 | the Free Software Foundation; either version 2 of the License, or 299 | (at your option) any later version. 300 | 301 | This program is distributed in the hope that it will be useful, 302 | but WITHOUT ANY WARRANTY; without even the implied warranty of 303 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 304 | GNU General Public License for more details. 305 | 306 | You should have received a copy of the GNU General Public License along 307 | with this program; if not, write to the Free Software Foundation, Inc., 308 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 309 | 310 | Also add information on how to contact you by electronic and paper mail. 311 | 312 | If the program is interactive, make it output a short notice like this 313 | when it starts in an interactive mode: 314 | 315 | Gnomovision version 69, Copyright (C) year name of author 316 | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 317 | This is free software, and you are welcome to redistribute it 318 | under certain conditions; type `show c' for details. 319 | 320 | The hypothetical commands `show w' and `show c' should show the appropriate 321 | parts of the General Public License. Of course, the commands you use may 322 | be called something other than `show w' and `show c'; they could even be 323 | mouse-clicks or menu items--whatever suits your program. 324 | 325 | You should also get your employer (if you work as a programmer) or your 326 | school, if any, to sign a "copyright disclaimer" for the program, if 327 | necessary. Here is a sample; alter the names: 328 | 329 | Yoyodyne, Inc., hereby disclaims all copyright interest in the program 330 | `Gnomovision' (which makes passes at compilers) written by James Hacker. 331 | 332 | , 1 April 1989 333 | Ty Coon, President of Vice 334 | 335 | This General Public License does not permit incorporating your program into 336 | proprietary programs. If your program is a subroutine library, you may 337 | consider it more useful to permit linking proprietary applications with the 338 | library. If this is what you want to do, use the GNU Lesser General 339 | Public License instead of this License. 340 | -------------------------------------------------------------------------------- /Preferences/Indent.tmPreferences: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | name 6 | Indent 7 | scope 8 | source.plsql.oracle 9 | settings 10 | 11 | decreaseIndentPattern 12 | (?i)^\s*(is|as|begin|end|then|else|elsif|exception)\b 13 | increaseIndentPattern 14 | (?i)^\s*(is|as|begin|if|then|else|elsif|loop|exception)\b 15 | shellVariables 16 | 17 | 18 | name 19 | TM_COMMENT_START 20 | value 21 | -- 22 | 23 | 24 | 25 | uuid 26 | 6A30BCDD-20CB-4E24-A1DC-5187E6AA36A6 27 | 28 | 29 | -------------------------------------------------------------------------------- /Snippets/New Function.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | FUNCTION ${1:func_name}( 7 | po_result_code OUT NUMBER) 8 | RETURN ${2:RETURN_TYPE} 9 | IS 10 | l_procname VARCHAR2(30) := '${1/_(.)/\u$1/g}'; 11 | BEGIN 12 | Corelogger.Log_Open_Print_Close(pi_pkg_name, l_procname, 13 | ${3:INITIAL STATE}); 14 | po_result_code := Corecontainertask.c_result_success; 15 | 16 | $0 17 | 18 | EXCEPTION 19 | WHEN OTHERS THEN 20 | Corelogger.Log_Open_PrintError_Close(pi_pkg_name, l_procname, 21 | 'Exception: ' || SUBSTR(SQLERRM(SQLCODE), 1, 100)); 22 | po_result_code := Corecontainertask.c_result_failure; 23 | END $1; 24 | name 25 | New Function 26 | scope 27 | source.plsql.oracle 28 | tabTrigger 29 | func 30 | uuid 31 | 5873A2DA-C72C-40DB-8859-368CA8B3809E 32 | 33 | 34 | -------------------------------------------------------------------------------- /Snippets/New Procedure.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | PROCEDURE ${1:proc_name}( 7 | po_result_code OUT NUMBER) 8 | IS 9 | l_procname VARCHAR2(30) := '${1/_(.)/\u$1/g}'; 10 | BEGIN 11 | Corelogger.Log_Open_Print_Close(pi_pkg_name, l_procname, 12 | ${2:INITIAL STATE}); 13 | po_result_code := Corecontainertask.c_result_success; 14 | 15 | $0 16 | 17 | EXCEPTION 18 | WHEN OTHERS THEN 19 | Corelogger.Log_Open_PrintError_Close(pi_pkg_name, l_procname, 20 | 'Exception: ' || SUBSTR(SQLERRM(SQLCODE), 1, 100)); 21 | po_result_code := Corecontainertask.c_result_failure; 22 | END $1; 23 | name 24 | New Procedure 25 | scope 26 | source.plsql.oracle 27 | tabTrigger 28 | proc 29 | uuid 30 | 9C4245C0-3B0F-4285-89EF-3256D30F973D 31 | 32 | 33 | -------------------------------------------------------------------------------- /Snippets/begin ___ end.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | BEGIN 7 | $0 8 | 9 | EXCEPTION 10 | WHEN ${1:OTHERS} THEN 11 | ${2:NULL}; 12 | END; 13 | name 14 | begin ... end 15 | scope 16 | source.plsql.oracle 17 | tabTrigger 18 | begin 19 | uuid 20 | B938F8F9-0A4D-4279-8C97-1FAFF1FBDE60 21 | 22 | 23 | -------------------------------------------------------------------------------- /Snippets/elsif ___.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | ELSIF ${1:condition} 7 | THEN 8 | $0 9 | name 10 | elsif ... 11 | scope 12 | source.plsql.oracle 13 | tabTrigger 14 | e 15 | uuid 16 | 903299D6-F40E-44A8-BB51-F63F4CFA8B15 17 | 18 | 19 | -------------------------------------------------------------------------------- /Snippets/fail.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | IF po_result_code <> Corecontainertask.c_result_success 7 | THEN 8 | Corelogger.Log_Open_PrintError_Close(pi_pkg_name, l_procname, 9 | $0); 10 | END IF; 11 | name 12 | fail 13 | scope 14 | source.plsql.oracle 15 | tabTrigger 16 | fail 17 | uuid 18 | D0D94340-FC05-4955-A2D4-5E8ECFF51D3C 19 | 20 | 21 | -------------------------------------------------------------------------------- /Snippets/if ___ else ___ end.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | IF ${1:condition} 7 | THEN 8 | $2 9 | ELSE 10 | $3 11 | END IF; 12 | name 13 | if ... else ... end 14 | scope 15 | source.plsql.oracle 16 | tabTrigger 17 | ife 18 | uuid 19 | 959C6497-92BE-4A63-BE61-B05F25C32E4F 20 | 21 | 22 | -------------------------------------------------------------------------------- /Snippets/if ___ end.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | IF ${1:condition} 7 | THEN 8 | $0 9 | END IF; 10 | name 11 | if ... end 12 | scope 13 | source.plsql.oracle 14 | tabTrigger 15 | if 16 | uuid 17 | 3A13DC3D-19E1-4002-9AB6-463C79DFC0C8 18 | 19 | 20 | -------------------------------------------------------------------------------- /Snippets/log debug.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | Corelogger.Log_Open_PrintDebug_Close(pi_pkg_name, l_procname, 7 | $0); 8 | name 9 | log debug 10 | scope 11 | source.plsql.oracle 12 | tabTrigger 13 | debug 14 | uuid 15 | A693AB6B-B6DC-450A-900B-D8706CB265F4 16 | 17 | 18 | -------------------------------------------------------------------------------- /Snippets/log error.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | Corelogger.Log_Open_PrintError_Close(pi_pkg_name, l_procname, 7 | $0); 8 | name 9 | log error 10 | scope 11 | source.plsql.oracle 12 | tabTrigger 13 | error 14 | uuid 15 | 530B58B1-3B40-4C01-8DC0-F56913D9B6D3 16 | 17 | 18 | -------------------------------------------------------------------------------- /Snippets/log print.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | Corelogger.Log_Open_Print_Close(pi_pkg_name, l_procname, 7 | $0); 8 | name 9 | log print 10 | scope 11 | source.plsql.oracle 12 | tabTrigger 13 | print 14 | uuid 15 | 7D61E004-D3A6-4138-8EF3-F682C9F3EEAC 16 | 17 | 18 | -------------------------------------------------------------------------------- /Snippets/loop ___ end.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | LOOP 7 | $0 8 | END LOOP; 9 | name 10 | loop ... end 11 | scope 12 | source.plsql.oracle 13 | tabTrigger 14 | loop 15 | uuid 16 | 1AF4E476-2EB1-42D5-A12B-B9E53EE28D6E 17 | 18 | 19 | -------------------------------------------------------------------------------- /Snippets/success.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | IF po_result_code = Corecontainertask.c_result_success 7 | THEN 8 | $0 9 | END IF; 10 | name 11 | success 12 | scope 13 | source.plsql.oracle 14 | tabTrigger 15 | success 16 | uuid 17 | BFC99B3F-C765-44C3-8FF2-4842D6FE3550 18 | 19 | 20 | -------------------------------------------------------------------------------- /Syntaxes/PL SQL (Oracle).tmLanguage: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | fileTypes 6 | 7 | sql 8 | ddl 9 | dml 10 | pks 11 | pkb 12 | 13 | foldingStartMarker 14 | (?i)^\s*(begin|if|loop)\b 15 | foldingStopMarker 16 | (?i)^\s*(end)\b 17 | keyEquivalent 18 | ^~S 19 | name 20 | PL/SQL (Oracle) 21 | patterns 22 | 23 | 24 | begin 25 | /\* 26 | end 27 | \*/ 28 | name 29 | comment.block.oracle 30 | 31 | 32 | match 33 | --.*$ 34 | name 35 | comment.line.double-dash.oracle 36 | 37 | 38 | captures 39 | 40 | 1 41 | 42 | name 43 | keyword.other.oracle 44 | 45 | 2 46 | 47 | name 48 | keyword.other.oracle 49 | 50 | 51 | match 52 | (?i)^\s*(create)(\s+or\s+replace)?\s+ 53 | name 54 | meta.create.oracle 55 | 56 | 57 | captures 58 | 59 | 1 60 | 61 | name 62 | keyword.other.oracle 63 | 64 | 2 65 | 66 | name 67 | keyword.other.oracle 68 | 69 | 3 70 | 71 | name 72 | entity.name.type.oracle 73 | 74 | 75 | match 76 | (?i)\b(package)(\s+body)?\s+(\S+) 77 | name 78 | meta.package.oracle 79 | 80 | 81 | captures 82 | 83 | 1 84 | 85 | name 86 | keyword.other.oracle 87 | 88 | 2 89 | 90 | name 91 | entity.name.type.oracle 92 | 93 | 94 | match 95 | (?i)\b(trigger)\s+(\S+) 96 | name 97 | meta.trigger.oracle 98 | 99 | 100 | captures 101 | 102 | 1 103 | 104 | name 105 | keyword.other.oracle 106 | 107 | 2 108 | 109 | name 110 | entity.name.type.oracle 111 | 112 | 113 | match 114 | (?i)\b(view)\s+(\S+) 115 | name 116 | meta.view.oracle 117 | 118 | 119 | captures 120 | 121 | 1 122 | 123 | name 124 | keyword.other.oracle 125 | 126 | 2 127 | 128 | name 129 | entity.name.type.oracle 130 | 131 | 132 | match 133 | (?i)\b(type)\s+(\S+) 134 | name 135 | meta.type.oracle 136 | 137 | 138 | captures 139 | 140 | 1 141 | 142 | name 143 | keyword.other.oracle 144 | 145 | 2 146 | 147 | name 148 | keyword.other.oracle 149 | 150 | 3 151 | 152 | name 153 | keyword.other.oracle 154 | 155 | 4 156 | 157 | name 158 | entity.name.function.oracle 159 | 160 | 161 | match 162 | (?i)^\s*(OVERRIDING)?\s*(MEMBER|CONSTRUCTOR|STATIC)?\s*(function|procedure)\s+([-a-z0-9_]+) 163 | name 164 | meta.procedure.oracle 165 | 166 | 167 | match 168 | [!<>:]?=|<>|<|>|\+|(?<!\.)\*|-|(?<!^)/|\|\| 169 | name 170 | keyword.operator.oracle 171 | 172 | 173 | match 174 | (?i)\b(true|false|null)\b 175 | name 176 | constant.language.oracle 177 | 178 | 179 | match 180 | \b\d+(\.\d+)?\b 181 | name 182 | constant.numeric.oracle 183 | 184 | 185 | match 186 | (?i)\b(references|foreign|primary|key|check|constraint|if|elsif|else|end\s+if|loop|while|end\s+loop|for|case|end\s+case|continue|return|goto)\b 187 | name 188 | keyword.control.oracle 189 | 190 | 191 | match 192 | (?i)\b(or|and|not|like)\b 193 | name 194 | keyword.operator.oracle 195 | 196 | 197 | match 198 | (?i)\b(sysdate|%(isopen|found|notfound|rowcount)|commit|rollback|sqlerrm|substr|cast|decode|length|lower|upper)\b 199 | name 200 | support.function.oracle 201 | 202 | 203 | match 204 | (?i)\b(abs|acos|add_months|appendchildxml|ascii|asciistr|asin|atan|atan2|bfilename|bin_to_num|bitand|cardinality|cast|ceil|chartorowid|chr|cluster_details|cluster_distance|cluster_id|cluster_probability|cluster_set|coalesce|collect|compose|con_dbid_to_id|con_guid_to_id|con_name_to_id|con_uid_to_id|concat|convert|cos|cosh|current_date|current_timestamp|dbtimezone|decode|decompose|deletexml|depth|dump|empty_blob|empty_clob|existsnode|exp|extract|extract|extractvalue|feature_details|feature_id|feature_set|feature_value|floor|from_tz|greatest|hextoraw|initcap|insertchildxml|insertchildxmlafter|insertchildxmlbefore|insertxmlafter|insertxmlbefore|instr|last_day|least|length|ln|lnnvl|localtimestamp|log|lower|lpad|ltrim|mod|months_between|nanvl|nanvl|nchr|new_time|next_day|nls_charset_decl_len|nls_charset_id|nls_charset_name|nls_initcap|nls_lower|nls_upper|nlssort|nullif|numtodsinterval|numtodsinterval|numtoyminterval|numtoyminterval|nvl|nvl2|ora_dst_affected|ora_dst_convert|ora_dst_error|ora_hash|ora_invoking_user|ora_invoking_userid|path|power|powermultiset|powermultiset_by_cardinality|prediction|prediction_bounds|prediction_cost|prediction_details|prediction_probability|prediction_set|rawtohex|rawtonhex|regexp_count|regexp_instr|regexp_replace|regexp_substr|remainder|replace|round|rowidtochar|rowidtonchar|rpad|rtrim|scn_to_timestamp|sessiontimezone|set|sign|sin|sinh|soundex|sqrt|standard_hash|substr|sys_connect_by_path|sys_context|sys_dburigen|sys_extract_utc|sys_guid|sys_typeid|sys_xmlagg|sys_xmlgen|sysdate|systimestamp|tan|tanh|timestamp_to_scn|to_binary_double|to_binary_float|to_blob|to_char|to_char|to_clob|to_date|to_dsinterval|to_dsinterval|to_lob|to_multi_byte|to_nchar|to_nclob|to_number|to_single_byte|to_timestamp|to_timestamp_tz|to_yminterval|translate|using|treat|trim|trunc|tz_offset|uid|unistr|updatexml|upper|user|userenv|vsize|width_bucket|xmlagg|xmlcast|xmlcdata|xmlcolattval|xmlcomment|xmlconcat|xmldiff|xmlelement|xmlexists|xmlforest|xmlisvalid|xmlparse|xmlpatch|xmlpi|xmlquery|xmlroot|xmlsequence|xmlserialize|xmltable|xmltransform|exception_init|raise_application_error)\b 205 | name 206 | support.function.sqlbuiltin.oracle 207 | 208 | 209 | match 210 | (?i)\b(avg|cluster_details|cluster_distance|cluster_id|cluster_probability|cluster_set|collect|corr|corr_k|corr_s|count|covar_pop|covar_samp|cube_table|cume_dist|cv|dataobj_to_partition|dense_rank|deref|feature_details|feature_id|feature_set|feature_value|first|first_value|group_id|grouping|grouping_id|iteration_number|lag|last|last_value|lead|listagg|make_ref|max|median|min|nth_value|ntile|percent_rank|percentile_cont|percentile_disc|prediction|prediction_cost|prediction_details|prediction_probability|prediction_set|presentnnv|presentv|previous|rank|ratio_to_report|ref|reftohex|regr_avgx|regr_avgy|regr_count|regr_intercept|regr_r2|regr_slope|regr_sxx|regr_sxy|regr_syy|row_number|stats_binomial_test|stats_crosstab|stats_f_test|stats_ks_test|stats_mode|stats_mw_test|stats_one_way_anova|stats_t_test_one|stats_t_test_paired|stats_t_test_indep|stats_t_test_indepu|stats_wsr_test|stddev|stddev_pop|stddev_samp|sum|sys_xmlagg|value|var_pop|var_samp|variance|xmlagg|inserting|deleting|updating)\b 211 | name 212 | support.function.sqlbuiltin.oracle 213 | 214 | 215 | match 216 | (?i)\b(sql|sqlcode)\b 217 | name 218 | variable.language.oracle 219 | 220 | 221 | match 222 | (?i)\b(p(i|o|io|n|ar|v)_[-a-z0-9_]+)\b 223 | name 224 | variable.parameter.oracle 225 | 226 | 227 | match 228 | (?i)\b(l_[-a-z0-9_]+)\b 229 | name 230 | variable.other.oracle 231 | 232 | 233 | match 234 | (?i):\b(new|old)\b 235 | name 236 | variable.trigger.oracle 237 | 238 | 239 | match 240 | (?i)\b(end|then|deterministic|exception|when|exists|others|subtype|constant|range|declare|begin|in|out|to|is|as|exit|raise|cursor|record|open|fetch|into|close|%type|%rowtype|execute|comment|column|synonym|sequence|index\s+by|start\s+with|increment\s+by|cache|pragma|grant|start|alter|database|datafile|autoextend|trigger|after|before|each|row|default|\.(extend|count|first|last|next|nextval|currval|reverse))\b 241 | name 242 | keyword.other.oracle 243 | 244 | 245 | match 246 | (?i)\b(select|from|inner\s+join|left\s+join|left\s+outer\s+join|right\s+join|right\s+outer|join|full\s+join|full\s+outer\s+join|on|off|where|order\s+by|group\s+by|asc|desc|update|set|insert|into|values|returning|delete|from|distinct|union|having|limit|table|of|drop|between)\b 247 | name 248 | keyword.other.sql.oracle 249 | 250 | 251 | captures 252 | 253 | 1 254 | 255 | name 256 | support.class.oracle 257 | 258 | 2 259 | 260 | name 261 | support.function.oracle 262 | 263 | 264 | match 265 | (?i)\b(dbms_debug\.)(attach_session|continue|debug_off|debug_on|delete_breakpoint|delete_oer_breakpoint|detach_session|disable_breakpoint|enable_breakpoint|execute|get_indexes|get_more_source|get_line_map|get_runtime_info|get_timeout_behaviour|get_value|initialize|ping|print_backtrace|print_instantiations|probe_version|self_check|set_breakpoint|set_oer_breakpoint|set_timeout|set_timeout_behaviour|set_value|show_breakpoints|show_frame_source|show_source|synchronize|target_program_running)\b 266 | name 267 | support.class.oracle 268 | 269 | 270 | captures 271 | 272 | 1 273 | 274 | name 275 | support.class.oracle 276 | 277 | 2 278 | 279 | name 280 | support.function.oracle 281 | 282 | 283 | match 284 | (?i)\b(dbms_job\.)(broken|change|instance|interval|next_date|remove|run|submit|user_export|what)\b 285 | name 286 | support.class.oracle 287 | 288 | 289 | captures 290 | 291 | 1 292 | 293 | name 294 | support.class.oracle 295 | 296 | 2 297 | 298 | name 299 | support.function.oracle 300 | 301 | 302 | match 303 | (?i)\b(dbms_lob\.)(append|close|compare|converttoblob|converttoclob|copy|copy_dbfs_link|copy_from_dbfs_link|createtemporary|dbfs_link_generate_path|erase|fileclose|filecloseall|fileexists|filegetname|fileisopen|fileopen|fragment_delete|fragment_insert|fragment_move|fragment_replace|freetemporary|get_dbfs_link|get_dbfs_link_state|getchunksize|getcontenttype|getlength|getoptions |get_storage_limit|instr|isopen|issecurefile|istemporary|loadblobfromfile|loadclobfromfile|loadfromfile|move_to_dbfs_link|open|read|set_dbfs_link|setcontenttype|setoptions|substr|trim|write|writeappend)\b 304 | name 305 | support.class.oracle 306 | 307 | 308 | captures 309 | 310 | 1 311 | 312 | name 313 | support.class.oracle 314 | 315 | 2 316 | 317 | name 318 | support.function.oracle 319 | 320 | 321 | match 322 | (?i)\b(dbms_lock\.)(allocate_unique|convert|release|request|sleep)\b 323 | name 324 | support.class.oracle 325 | 326 | 327 | captures 328 | 329 | 1 330 | 331 | name 332 | support.class.oracle 333 | 334 | 2 335 | 336 | name 337 | support.function.oracle 338 | 339 | 340 | match 341 | (?i)\b(dbms_output\.)(disable|enable|get_line|get_lines|new_line|put|put_line)\b 342 | name 343 | support.class.oracle 344 | 345 | 346 | captures 347 | 348 | 1 349 | 350 | name 351 | support.class.oracle 352 | 353 | 2 354 | 355 | name 356 | support.function.oracle 357 | 358 | 359 | match 360 | (?i)\b(dbms_scheduler\.)(add_event_queue_subscriber|add_group_member|add_job_email_notification|alter_chain|alter_running_chain|close_window|copy_job|create_chain|create_credential|create_database_destination|create_event_schedule|create_file_watcher|create_group|create_job|create_job_class|create_jobs|create_program|create_schedule|create_window|define_anydata_argument|define_chain_event_step|define_chain_step|define_chain_rule|define_chain_step|define_metadata_argument|define_program_argument|disable|drop_agent_destination|drop_chain|drop_chain_rule|drop_chain_step|drop_credential|drop_database_destination|drop_file_watcher|drop_group|drop_job|drop_job_class|drop_program||drop_program_argument|drop_schedule|drop_window|enable|end_detached_job_run|evaluate_calendar_string|evaluate_running_chain|generate_job_name|get_agent_info|get_agent_version|get_attribute|get_file|get_scheduler_attribute|open_window|purge_log|put_file|remove_event_queue_subscriber|remove_group_member|remove_job_email_notification|reset_job_argument_value|run_chain|run_job|set_agent_registration_pass|set_attribute|set_attribute_null|set_job_anydata_value|set_job_argument_value|set_job_attributes|set_resource_constraint|set_scheduler_attribute|stop_job)\b 361 | name 362 | support.class.oracle 363 | 364 | 365 | captures 366 | 367 | 1 368 | 369 | name 370 | support.class.oracle 371 | 372 | 2 373 | 374 | name 375 | support.function.oracle 376 | 377 | 378 | match 379 | (?i)\b(dbms_utility\.)(active_instances|analyze_database|analyze_part_object|analyze_schema|canonicalize|comma_to_table|compile_schema|create_alter_type_error_table|current_instance|data_block_address_block|data_block_address_file|db_version|exec_ddl_statement|expand_sql_text|format_call_stack|format_error_backtrace|format_error_stack|get_cpu_time|get_dependency|get_endianness|get_hash_value|get_parameter_value|get_sql_hash|get_time|get_tz_transitions|invalidate|is_bit_set|is_cluster_database|make_data_block_address|name_resolve|name_tokenize|old_current_schema|old_current_user|port_string|sqlid_to_sqlhash|table_to_comma|validate|wait_on_pending_dml)\b 380 | name 381 | support.class.oracle 382 | 383 | 384 | captures 385 | 386 | 1 387 | 388 | name 389 | support.class.oracle 390 | 391 | 2 392 | 393 | name 394 | support.function.oracle 395 | 396 | 397 | match 398 | (?i)\b(utl_file\.)(fclose|fclose_all|fcopy|fflush|fgetattr|fgetpos|fopen|fopen_nchar|fremove|frename|fseek|get_line|get_line_nchar|get_raw|is_open|new_line|put|put_line|put_line_nchar|put_nchar|putf|putf_nchar|put_raw)\b 399 | name 400 | support.class.oracle 401 | 402 | 403 | captures 404 | 405 | 1 406 | 407 | name 408 | support.class.oracle 409 | 410 | 2 411 | 412 | name 413 | support.function.oracle 414 | 415 | 416 | match 417 | (?i)\b(dbms_crypto\.)(decrypt|encrypt|hash|mac|randombytes|randominteger|randomnumber)\b 418 | name 419 | support.class.oracle 420 | 421 | 422 | captures 423 | 424 | 1 425 | 426 | name 427 | support.class.oracle 428 | 429 | 2 430 | 431 | name 432 | support.function.oracle 433 | 434 | 435 | match 436 | (?i)\b(dbms_random\.)(initialize|normal|random|seed|string|terminate|value)\b 437 | name 438 | support.class.oracle 439 | 440 | 441 | captures 442 | 443 | 1 444 | 445 | name 446 | support.class.oracle 447 | 448 | 2 449 | 450 | name 451 | support.function.oracle 452 | 453 | 454 | match 455 | (?i)\b(dbms_pipe\.)(create_pipe|next_item_type|pack_message|purge|receive_message|remove_pipe|reset_buffer|send_message|unique_session_name|unpack_message)\b 456 | name 457 | support.class.oracle 458 | 459 | 460 | captures 461 | 462 | 1 463 | 464 | name 465 | support.class.oracle 466 | 467 | 2 468 | 469 | name 470 | support.function.oracle 471 | 472 | 473 | match 474 | (?i)\b(dbms_session\.)(clear_all_context|clear_context|clear_identifier|close_database_link|free_unused_user_memory|is_role_enabled|is_session_alive|list_context|session_trace_disable|session_trace_enable|reset_package|set_context|set_identifier|set_nls|set_role|set_sql_trace|switch_current_consumer_group|unique_session_id)\b 475 | name 476 | support.class.oracle 477 | 478 | 479 | captures 480 | 481 | 1 482 | 483 | name 484 | support.class.oracle 485 | 486 | 2 487 | 488 | name 489 | support.function.oracle 490 | 491 | 492 | match 493 | (?i)\b(utl_raw\.)(bit_and|bit_complement|bit_or|bit_xor|cast_from_binary_double|cast_from_binary_float|cast_from_binary_integer|cast_from_number|cast_to_binary_double|cast_to_binary_float|cast_to_binary_integer|cast_to_number|cast_to_raw|cast_to_varchar2|cast_to_nvarchar2|compare|concat|convert|copies|length|overlay|reverse|substr|translate|transliterate|xrange)\b 494 | name 495 | support.class.oracle 496 | 497 | 498 | captures 499 | 500 | 1 501 | 502 | name 503 | support.class.oracle 504 | 505 | 2 506 | 507 | name 508 | support.function.oracle 509 | 510 | 511 | match 512 | (?i)\b(utl_i18n\.)(escape_reference|get_common_time_zones|get_default_charset|get_default_iso_currency|get_default_linguistic_sort|get_local_languages|get_local_linguistic_sorts|get_local_territories|get_local_time_zones|get_translation|map_charset|map_from_short_language|map_language_from_iso|map_locale_to_iso|map_territory_from_iso|map_to_short_language|raw_to_char|raw_to_nchar|string_to_raw|transliterate|unescape_reference)\b 513 | name 514 | support.class.oracle 515 | 516 | 517 | captures 518 | 519 | 1 520 | 521 | name 522 | support.class.oracle 523 | 524 | 2 525 | 526 | name 527 | support.function.oracle 528 | 529 | 530 | match 531 | (?i)\b(utl_encode\.)(base64_decode|base64_encode|mimeheader_decode|mimeheader_encode|quoted_printable_decode|quoted_printable_encode|text_decode|text_encode|uudecode|uuencode)\b 532 | name 533 | support.class.oracle 534 | 535 | 536 | captures 537 | 538 | 1 539 | 540 | name 541 | support.class.oracle 542 | 543 | 2 544 | 545 | name 546 | support.function.oracle 547 | 548 | 549 | match 550 | (?i)\b(utl_mail\.)(send|send_attach_raw|send_attach_varchar2)\b 551 | name 552 | support.class.oracle 553 | 554 | 555 | captures 556 | 557 | 1 558 | 559 | name 560 | support.class.oracle 561 | 562 | 2 563 | 564 | name 565 | support.function.oracle 566 | 567 | 568 | match 569 | (?i)\b(utl_coll\.)(is_locator)\b 570 | name 571 | support.class.oracle 572 | 573 | 574 | captures 575 | 576 | 1 577 | 578 | name 579 | support.class.oracle 580 | 581 | 2 582 | 583 | name 584 | support.function.oracle 585 | 586 | 587 | match 588 | (?i)\b(utl_compress\.)(isopen|lz_compress|lz_compress_add|lz_compress_close|lz_compress_open|lz_uncompress|lz_uncompress_extract|lz_uncompress_open|lz_uncompress_close)\b 589 | name 590 | support.class.oracle 591 | 592 | 593 | captures 594 | 595 | 1 596 | 597 | name 598 | support.class.oracle 599 | 600 | 2 601 | 602 | name 603 | support.function.oracle 604 | 605 | 606 | match 607 | (?i)\b(utl_dbws\.)(create_call|create_service|get_in_parameter_types|get_out_parameter_types|get_output_values|get_ports|get_property|get_return_type|get_services|invoke|release_all_services|release_call|release_service|remove_property|set_property)\b 608 | name 609 | support.class.oracle 610 | 611 | 612 | captures 613 | 614 | 1 615 | 616 | name 617 | support.class.oracle 618 | 619 | 2 620 | 621 | name 622 | support.function.oracle 623 | 624 | 625 | match 626 | (?i)\b(utl_http\.)(request|request_pieces|get_body_charset|get_cookie_support|get_detailed_excp_support|get_follow_redirect|get_persistent_conn_support|get_proxy|get_response_error_check|get_transfer_timeout|set_transfer_timeout|set_cookie_support|set_detailed_excp_support|set_follow_redirect|set_persistent_conn_support|set_proxy|set_response_error_check|set_transfer_timeout|set_wallet|begin_request|end_request|set_header|set_authentication|set_body_charset|set_cookie_support|set_follow_redirect|set_persistent_conn_support|set_proxy|write_raw|write_text|end_response|get_authentication|get_header|get_header_by_name|get_header_count|get_response|read_line|read_raw|read_text|set_body_charset|add_cookies|clear_cookies|get_cookie_count|get_cookies|close_persistent_conn|close_persistent_conns|get_persistent_conn_count|get_persistent_conns|get_detailed_sqlcode|get_detailed_sqlerrm)\b 627 | name 628 | support.class.oracle 629 | 630 | 631 | captures 632 | 633 | 1 634 | 635 | name 636 | support.class.oracle 637 | 638 | 2 639 | 640 | name 641 | support.function.oracle 642 | 643 | 644 | match 645 | (?i)\b(utl_inaddr\.)(get_host_address|get_host_name)\b 646 | name 647 | support.class.oracle 648 | 649 | 650 | captures 651 | 652 | 1 653 | 654 | name 655 | support.class.oracle 656 | 657 | 2 658 | 659 | name 660 | support.function.oracle 661 | 662 | 663 | match 664 | (?i)\b(utl_lms\.)(format_message|get_message)\b 665 | name 666 | support.class.oracle 667 | 668 | 669 | captures 670 | 671 | 1 672 | 673 | name 674 | support.class.oracle 675 | 676 | 2 677 | 678 | name 679 | support.function.oracle 680 | 681 | 682 | match 683 | (?i)\b(utl_nla\.)(blas_asum|blas_axpy|blas_copy|blas_dot|blas_gbmv|blas_gemm|blas_gemv|blas_ger|blas_iamax|blas_nrm2|blas_rot|blas_rotg|blas_sbmv|blas_scal|blas_spmv|blas_spr|blas_spr2|blas_swap|blas_symm|blas_symv|blas_syr|blas_syr2|blas_syr2k|blas_syrk|blas_tbmv|blas_tbsv|blas_tpmv|blas_tpsv|blas_trmm|blas_trmv|blas_trsm|blas_trsv|lapack_gbsv|lapack_gees|lapack_geev|lapack_gels|lapack_gesdd|lapack_gesv|lapack_gesvd|lapack_gtsv|lapack_pbsv|lapack_posv|lapack_ppsv|lapack_ptsv|lapack_sbev|lapack_sbevd|lapack_spev|lapack_spevd|lapack_spsv|lapack_stev|lapack_stevd|lapack_syevd|lapack_sysv)\b 684 | name 685 | support.class.oracle 686 | 687 | 688 | captures 689 | 690 | 1 691 | 692 | name 693 | support.class.oracle 694 | 695 | 2 696 | 697 | name 698 | support.function.oracle 699 | 700 | 701 | match 702 | (?i)\b(utl_recomp\.)(recomp_parallel|recomp_serial)\b 703 | name 704 | support.class.oracle 705 | 706 | 707 | captures 708 | 709 | 1 710 | 711 | name 712 | support.class.oracle 713 | 714 | 2 715 | 716 | name 717 | support.function.oracle 718 | 719 | 720 | match 721 | (?i)\b(utl_ref\.)(delete_object|lock_object|select_object|update_object)\b 722 | name 723 | support.class.oracle 724 | 725 | 726 | captures 727 | 728 | 1 729 | 730 | name 731 | support.class.oracle 732 | 733 | 2 734 | 735 | name 736 | support.function.oracle 737 | 738 | 739 | match 740 | (?i)\b(utl_smtp\.)(close_data|command|command_replies|data|ehlo|helo|help|mail|noop|open_connection|open_data|quit|rcpt|rset|vrfy|write_data|write_raw_data)\b 741 | name 742 | support.class.oracle 743 | 744 | 745 | captures 746 | 747 | 1 748 | 749 | name 750 | support.class.oracle 751 | 752 | 2 753 | 754 | name 755 | support.function.oracle 756 | 757 | 758 | match 759 | (?i)\b(utl_tcp\.)(available|close_all_connections|close_connection|flush|get_line|get_raw|get_text|open_connection|read_line|read_raw|read_text|write_line|write_raw|write_text)\b 760 | name 761 | support.class.oracle 762 | 763 | 764 | captures 765 | 766 | 1 767 | 768 | name 769 | support.class.oracle 770 | 771 | 2 772 | 773 | name 774 | support.function.oracle 775 | 776 | 777 | match 778 | (?i)\b(utl_url\.)(escape|unescape)\b 779 | name 780 | support.class.oracle 781 | 782 | 783 | captures 784 | 785 | 1 786 | 787 | name 788 | support.class.oracle 789 | 790 | 2 791 | 792 | name 793 | support.function.oracle 794 | 795 | 796 | match 797 | (?i)\b(owa_util\.)(bind_variables|calendarprint|cellsprint|choose_date|get_cgi_env|get_owa_service_path|get_procedure|http_header_close|listprint|mime_header|print_cgi_env|redirect_url|showpage|showsource|signature|status_line|tableprint|todate|who_called_me)\b 798 | name 799 | support.class.oracle 800 | 801 | 802 | captures 803 | 804 | 1 805 | 806 | name 807 | support.class.oracle 808 | 809 | 2 810 | 811 | name 812 | support.function.oracle 813 | 814 | 815 | match 816 | (?i)\b(owa_cache\.)(disable|get_etag|get_level|set_cache|set_expires|set_not_modified|set_surrogate_control)\b 817 | name 818 | support.class.oracle 819 | 820 | 821 | captures 822 | 823 | 1 824 | 825 | name 826 | support.class.oracle 827 | 828 | 2 829 | 830 | name 831 | support.function.oracle 832 | 833 | 834 | match 835 | (?i)\b(owa_cookie\.)(get|get_all|remove|send)\b 836 | name 837 | support.class.oracle 838 | 839 | 840 | captures 841 | 842 | 1 843 | 844 | name 845 | support.class.oracle 846 | 847 | 2 848 | 849 | name 850 | support.function.oracle 851 | 852 | 853 | match 854 | (?i)\b(owa_custom\.)(authorize)\b 855 | name 856 | support.class.oracle 857 | 858 | 859 | captures 860 | 861 | 1 862 | 863 | name 864 | support.class.oracle 865 | 866 | 2 867 | 868 | name 869 | support.function.oracle 870 | 871 | 872 | match 873 | (?i)\b(owa_image\.)(get_x|get_y)\b 874 | name 875 | support.class.oracle 876 | 877 | 878 | captures 879 | 880 | 1 881 | 882 | name 883 | support.class.oracle 884 | 885 | 2 886 | 887 | name 888 | support.function.oracle 889 | 890 | 891 | match 892 | (?i)\b(owa_opt_lock\.)(checksum|get_rowid|store_values|verify_values)\b 893 | name 894 | support.class.oracle 895 | 896 | 897 | captures 898 | 899 | 1 900 | 901 | name 902 | support.class.oracle 903 | 904 | 2 905 | 906 | name 907 | support.function.oracle 908 | 909 | 910 | match 911 | (?i)\b(owa_pattern\.)(amatch|change|getpat|match)\b 912 | name 913 | support.class.oracle 914 | 915 | 916 | captures 917 | 918 | 1 919 | 920 | name 921 | support.class.oracle 922 | 923 | 2 924 | 925 | name 926 | support.function.oracle 927 | 928 | 929 | match 930 | (?i)\b(owa_sec\.)(get_client_hostname|get_client_ip|get_password|get_user_id|set_authorization|set_protection_realm)\b 931 | name 932 | support.class.oracle 933 | 934 | 935 | captures 936 | 937 | 1 938 | 939 | name 940 | support.class.oracle 941 | 942 | 2 943 | 944 | name 945 | support.function.oracle 946 | 947 | 948 | match 949 | (?i)\b(owa_text\.)(add2multi|new_row_list|print_multi|print_row_list|stream2multi)\b 950 | name 951 | support.class.oracle 952 | 953 | 954 | captures 955 | 956 | 1 957 | 958 | name 959 | support.class.oracle 960 | 961 | 2 962 | 963 | name 964 | support.function.oracle 965 | 966 | 967 | match 968 | (?i)\b(htp\.)(address|anchor|anchor2|appletclose|appletopen|area|base|basefont|bgsound|big|blockquoteclose|blockquoteopen|bodyclose|bodyopen|bold|br|center|centerclose|centeropen|cite|code|comment|dfn|dirlistclose|dirlistopen|div|dlistclose|dlistdef|dlistopen|dlistterm|em|emphasis|escape_sc|fontclose|fontopen|formcheckbox|formclose|formopen|formfile|formhidden|formimage|formpassword|formradio|formreset|formselectclose|formselectopen|formselectoption|formsubmit|formtext|formtextarea|formtextarea2|formtextareaclose|formtextareaopen|formtextareaopen2|frame|framesetclose|framesetopen|headclose|header|headopen|hr|htmlclose|htmlopen|img|img2|isindex|italic|kbd|keyboard|line|linkrel|linkrev|listheader|listingclose|listingopen|listitem|mailto|mapclose|mapopen|menulistclose|menulistopen|meta|nl|nobr|noframesclose|noframesopen|olistclose|olistopen|para|paragraph|param|plaintext|preclose|preopen|print|p|prints|prn|ps|s|sample|script|small|strike|strong|style|sub|sup|tablecaption|tableclose|tabledata|tableheader|tableopen|tablerowclose|tablerowopen|teletype|title|ulistclose|ulistopen|underline|variable|wbr)\b 969 | name 970 | support.class.oracle 971 | 972 | 973 | begin 974 | q'\[ 975 | end 976 | \]' 977 | name 978 | string.group.quote.oracle 979 | 980 | 981 | begin 982 | ' 983 | end 984 | ' 985 | name 986 | string.quoted.single.oracle 987 | 988 | 989 | begin 990 | " 991 | end 992 | " 993 | name 994 | string.quoted.double.oracle 995 | 996 | 997 | match 998 | (?i)\b(varchar2|nvarchar2|number|integer|float|long|date|binary_float|binary_double|timestamp|interval|raw|long\s+raw|rowid|urowid|char|nchar|clob|nclob|blob|bfile|boolean|pls_integer|binary_integer|natural|naturaln|positive|positiven|signtype|simple_integer)\b 999 | name 1000 | storage.type.oracle 1001 | 1002 | 1003 | match 1004 | (?i)\b(access_into_null|case_not_found|collection_is_null|cursor_already_open|dup_val_on_index|invalid_cursor|invalid_number|login_denied|no_data_found|not_logged_on|program_error|rowtype_mismatch|self_is_null|storage_error|subscript_beyond_count|subscript_outside_limit|sys_invalid_rowid|timeout_on_resource|too_many_rows|value_error|zero_divide)\b 1005 | name 1006 | storage.exception.type.oracle 1007 | 1008 | 1009 | scopeName 1010 | source.plsql.oracle 1011 | uuid 1012 | 28DCE4DD-F5E1-4ED3-8847-64DA6B1F9163 1013 | 1014 | 1015 | -------------------------------------------------------------------------------- /Templates/Package Body.tmTemplate/info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | command 6 | if [[ ! -f "$TM_NEW_FILE" ]]; then 7 | TM_YEAR=`date +%Y` \ 8 | TM_DATE=`date +%Y-%m-%d` \ 9 | TM_USERNAME=`niutil -readprop / /users/\$USER realname` \ 10 | PKG_NAME=`echo $TM_NEW_FILE_BASENAME | sed -e 's/[bBpP]_//'` \ 11 | perl -pe 's/\$\{([^}]*)\}/$ENV{$1}/g' \ 12 | < template_in.sql > "$TM_NEW_FILE" 13 | fi 14 | extension 15 | sql 16 | name 17 | Package Body 18 | scope 19 | source.plsql.oracle 20 | uuid 21 | 57F59480-763B-470E-8F68-F3D748914397 22 | 23 | 24 | -------------------------------------------------------------------------------- /Templates/Package Body.tmTemplate/template_in.sql: -------------------------------------------------------------------------------- 1 | CREATE OR REPLACE PACKAGE BODY ${PKG_NAME} AS 2 | 3 | /* 4 | * ${TM_NEW_FILE_BASENAME} 5 | * 6 | * Created by ${TM_USERNAME} on ${TM_DATE}. 7 | * Copyright (c) ${TM_YEAR} ${TM_ORGANIZATION_NAME}. All rights reserved. 8 | */ 9 | 10 | END ${PKG_NAME}; 11 | -------------------------------------------------------------------------------- /Templates/Package Spec.tmTemplate/info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | command 6 | if [[ ! -f "$TM_NEW_FILE" ]]; then 7 | TM_YEAR=`date +%Y` \ 8 | TM_DATE=`date +%Y-%m-%d` \ 9 | TM_USERNAME=`niutil -readprop / /users/\$USER realname` \ 10 | PKG_NAME=`echo $TM_NEW_FILE_BASENAME | sed -e 's/[sShH]_//'` \ 11 | perl -pe 's/\$\{([^}]*)\}/$ENV{$1}/g' \ 12 | < template_in.sql > "$TM_NEW_FILE" 13 | fi 14 | extension 15 | sql 16 | name 17 | Package Spec 18 | scope 19 | source.plsql.oracle 20 | uuid 21 | 28C843B4-D6AC-41D6-AAC6-FAD73ED75480 22 | 23 | 24 | -------------------------------------------------------------------------------- /Templates/Package Spec.tmTemplate/template_in.sql: -------------------------------------------------------------------------------- 1 | CREATE OR REPLACE PACKAGE ${PKG_NAME} AS 2 | 3 | /* 4 | * ${TM_NEW_FILE_BASENAME} 5 | * 6 | * Created by ${TM_USERNAME} on ${TM_DATE}. 7 | * Copyright (c) ${TM_YEAR} ${TM_ORGANIZATION_NAME}. All rights reserved. 8 | */ 9 | 10 | END ${PKG_NAME}; 11 | -------------------------------------------------------------------------------- /info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | deleted 6 | 7 | 8B1DCEE6-B8AB-4F8D-9CC8-956E1112EEBA 8 | 48E69EA5-2B92-4A98-B286-DB9B0F2DC754 9 | 62ECD070-A76E-4CFF-A988-FE6BBEBE0634 10 | 61B7BDFE-8AEA-473A-B840-A200D8B9C129 11 | B64143F2-75CD-4C35-9E4F-E8D5425CA37D 12 | 393785DE-0BC1-43E8-963E-763AB2EABAE0 13 | E73B43E3-2343-4E22-8CB7-C4EB2EC9623A 14 | 15 | mainMenu 16 | 17 | items 18 | 19 | 2D735CC6-DF05-4725-A4FD-08DE33AAD9E4 20 | ------------------------------------ 21 | BA59AADC-85C6-4215-BEFA-DF6BAAEFC7F5 22 | 57DAAB63-8B29-4599-B25C-0A2661A702E3 23 | 65257C54-A07C-4764-961C-B892F28A89DF 24 | C90FDB5C-2F32-44EE-9059-8E0CA0CC9246 25 | ------------------------------------ 26 | 1222BE8A-15D8-4C06-8965-F139A153DD97 27 | 69B47504-F6E5-44BB-A758-51DB35270B9C 28 | ------------------------------------ 29 | 9C4245C0-3B0F-4285-89EF-3256D30F973D 30 | 5873A2DA-C72C-40DB-8859-368CA8B3809E 31 | ------------------------------------ 32 | B938F8F9-0A4D-4279-8C97-1FAFF1FBDE60 33 | 959C6497-92BE-4A63-BE61-B05F25C32E4F 34 | 3A13DC3D-19E1-4002-9AB6-463C79DFC0C8 35 | 903299D6-F40E-44A8-BB51-F63F4CFA8B15 36 | 1AF4E476-2EB1-42D5-A12B-B9E53EE28D6E 37 | 7D61E004-D3A6-4138-8EF3-F682C9F3EEAC 38 | A693AB6B-B6DC-450A-900B-D8706CB265F4 39 | 530B58B1-3B40-4C01-8DC0-F56913D9B6D3 40 | D0D94340-FC05-4955-A2D4-5E8ECFF51D3C 41 | BFC99B3F-C765-44C3-8FF2-4842D6FE3550 42 | 43 | submenus 44 | 45 | 46 | name 47 | Oracle 48 | ordering 49 | 50 | 28DCE4DD-F5E1-4ED3-8847-64DA6B1F9163 51 | 6A30BCDD-20CB-4E24-A1DC-5187E6AA36A6 52 | 2D735CC6-DF05-4725-A4FD-08DE33AAD9E4 53 | BA59AADC-85C6-4215-BEFA-DF6BAAEFC7F5 54 | 57DAAB63-8B29-4599-B25C-0A2661A702E3 55 | 65257C54-A07C-4764-961C-B892F28A89DF 56 | C90FDB5C-2F32-44EE-9059-8E0CA0CC9246 57 | 1222BE8A-15D8-4C06-8965-F139A153DD97 58 | 69B47504-F6E5-44BB-A758-51DB35270B9C 59 | 7CFC443C-623B-405B-8691-F109033BEA39 60 | 9C4245C0-3B0F-4285-89EF-3256D30F973D 61 | 5873A2DA-C72C-40DB-8859-368CA8B3809E 62 | B938F8F9-0A4D-4279-8C97-1FAFF1FBDE60 63 | 959C6497-92BE-4A63-BE61-B05F25C32E4F 64 | 3A13DC3D-19E1-4002-9AB6-463C79DFC0C8 65 | 903299D6-F40E-44A8-BB51-F63F4CFA8B15 66 | 1AF4E476-2EB1-42D5-A12B-B9E53EE28D6E 67 | 7D61E004-D3A6-4138-8EF3-F682C9F3EEAC 68 | A693AB6B-B6DC-450A-900B-D8706CB265F4 69 | 530B58B1-3B40-4C01-8DC0-F56913D9B6D3 70 | D0D94340-FC05-4955-A2D4-5E8ECFF51D3C 71 | BFC99B3F-C765-44C3-8FF2-4842D6FE3550 72 | 28C843B4-D6AC-41D6-AAC6-FAD73ED75480 73 | 57F59480-763B-470E-8F68-F3D748914397 74 | 75 | uuid 76 | 2C32654D-4D00-4F18-8B6B-322F7770E831 77 | 78 | 79 | --------------------------------------------------------------------------------