`

配置UltraEdit为Oracle PL/SQL代码编辑器

阅读更多
FROM:http://www0.ccidnet.com/tech/guide/2001/07/30/58_2801.html
UltraEdit是一个功能强大的文本文件编辑器,它具有占用内存开销少,功能强大,灵活方便等特点,受到了广大程序开发者的欢迎,该软件不仅可以作为一个写字板NotePad的替代产品,同时还可作为一个功能强大的程序文本编写器。一般来讲,通常一个程序设计语言的IDE集成开发环境一般均几十上百兆,如果仅仅要简单地修改或者查看一下某个代码文件,启动这个庞大的集成开发环境往往效率极低。通常的做法是用Windows操作系统“附件”功能提供的NotePad来完成该任务,但该小程序功能有限,并且最主要的缺点是不支持语法的突出(HIGHLIGHT)显示。UltraEdit作为业界有名的文本编辑器,提供了对多种流行语言代码格式的语法突出显示功能,UltraEdit 8.1a默认包括C/C++、Visual Basic、HTML、Java、Perl、Xml、C#等多种流行语言的支持。UltraEdit提供了一个接口,用户可以自行定义除系统提供的语言之外其他语言的语法突出显示。

Oracle数据库中PL/SQL存储过程、触发器、函数、对象以及包,包体等的编写在数据库开发中具有举足轻重的地位,而Oracle又没有提供相应的开发工具。通常在数据库开发中,对PL/SQL程序的编写通常是在NotePad或者是第三方厂商提供的平台上进行。NotePad小巧方便,但缺乏灵活性同时不支持语法的突出显示功能。笔者在多年的数据库开发工作中,深深感觉到一个良好的编辑开发工具可以大大提高程序的开发效率以及减少开发中不必要错误的发生。

鉴于以上原因,笔者分析了UltraEdit对程序语言语法突出显示文件的系统配置文件,总结了Oracle 8.0.x PL/SQL中的几乎全部语法、关键词等等,编写了针对Oracle PL/SQL的UltraEdit语法分析文件。下面就具体谈谈如何实现UltraEdit中对PL/SQL文件语法突出显示的支持。打开菜单Advanced→Configration...,系统弹出一个窗口,单击Syntax Highlighting标签,如图1所示,其中Full Path Name For下面的文件即为语法突出显示配置文件,单击Open,即可在UltraEdit中打开该文件(wordfile.txt),将下面列出的PL/SQL语法配置脚本拷贝到该文件的最后面,同时修改语法配置脚本文件的第一行,如果当前系统语法突出显示配置文件的最后一个为/L9,则将目前加入的PL/SQL修改为/L10,保存该文件。至此,UltraEdit已经被配置成为Oracle PL/SQL代码编辑器。以后用户打开的所有以.sql为扩展名的文件,UltraEdit系统均认为是Oracle PL/SQL脚本,利用上面配置来突出显示其中的语法,程序看起来一目了然。用户如果对系统默认的突出显示颜色不满意,还可以自己修改各种突出显示文字的颜色。方法也是在Advanced→onfigration...→Syntax Highlighting窗口中完成,这里就不在详述,用户一看便知。随着Oracle新版本的不断发布,用户可以自行在语法突出显示的脚本文件中加入新增加的函数功能等。

附:PL/SQL语法配置脚本
/L8"PL/SQL" Nocase Line Comment = -- Block Comment On = /* Block Comment Off = */ File Extensions = SQL
/Delimiters = ~!%@^&*()-+=|\/{}[]:;"'<> ,  .?

/Function String = "%[A-Z _]*[~\s]+(*)"

/C1 "Keywords"

ABORT ACCEPT ACCESS ADD ALL ALTER AND ANY ARRAY ARRAYLEN AS ASC ASSERT ASSIGN AT AUDIT AUTHORIZATION AVG

BASE_TABLE BEGIN BETWEEN BINARY_INTEGER BODY BOOLEAN BY

CASE CHAR CHAR_BASE CHECK CLOSE CLUSTER CLUSTERS COLAUTH COLUMN COMMENT COMMIT COMPRESS CONNECT CONSTANT CRASH CREATE CURRENT CURRVAL CURSOR

DATABASE DATA_BASE DATE DBA DEBUGOFF DEBUGON DECLARE DECIMAL DEFAULT DEFINITION DELAY DELETE DESC DIGITS DISPOSE DISTINCT DO DROP

ELSE ELSIF END ENTRY EXCEPTION EXCEPTION_INIT EXCLUSIVE EXISTS EXIT

FALSE FETCH FILE FLOAT FOR FORM FROM FUNCTION

GENERIC GOTO GRANT GROUP

HAVING

IDENTIFIED IF IMMEDIATE IN INCREMENT INDEX INDEXES INDICATOR INITIAL INSERT INTEGER INTERFACE INTERSECT INTO IS

LEVEL LIKE LIMITED LOCK LONG LOOP

MAX MAXEXTENTS MIN MINEXTENTS MINUS MISLABEL MOD MODE

NATURAL NATURALN NEW NEXTVAL NOAUDIT NOCOMPRESS NOLOGGING NOT NOWAIT NULL NUMBER NUMBER_BASE

OF OFFLINE ON ONLINE OPEN OPTION OR ORDER OTHERS OUT

PACKAGE PARTITION PCTFREE PCTUSED PLS_INTEGER POSITIVE POSITIVEN PRAGMA PRIOR PRIVATE PRIVILEGES PROCEDURE PUBLIC

RAISE RANGE RAW REAL RECORD REF RELEASE REMR RENAME RESOURCE RETURN REVERSE REVOKE ROLLBACK ROW ROWID ROWLABEL ROWNUM ROWS ROWTYPE RUN

SAVEPOINT SCHEMA SELECT SEPARATE SESSION SET SHARE SMALLINT SPACE SQL SQLCODE SQLERRM START STATEMENT STDDEV SUBTYPE SUCCESSFUL SUM SYNONYM SYSDATE

TABAUTH TABLE TABLES TASK TERMINATE THEN TO TRIGGER TRUE TYPE

UID UNION UNIQUE UPDATE USE USER

VALIDATE VALUES VARCHAR VARCHAR2 VARIANCE VIEW VIEWS

WHEN WHENEVER WHERE WHILE WITH WORK WRITE

XOR

/C2 "Packages"

DBMS_OUTPUT

DBMS_JOB

DBMS_SQL

/C3 "Package Methods"

BIND_VARIABLE BIND_VARIABLE_CHAR BIND_VARIABLE_RAW BIND_VARIABLE_ROWID BROKEN

CHANGE CLOSE_CURSOR COLUMN_VALUE COLUMN_VALUE_CHAR COLUMN_VALUE_RAW COLUMN_VALUE_ROWID

DEFINE_COLUMN DEFINE_COLUMN_CHAR DEFINE_COLUMN_RAW DEFINE_COLUMN_ROWID DISABLE

ENABLE EXECUTE EXECUTE_AND_FETCH

FETCH_ROWS

GET_LINE GET_LINES

INTERVAL IS_OPEN

LAST_ERROR_POSITION LAST_ROW_COUNT LAST_ROW_ID LAST_SQL_FUNCTION_CODE

NEW_LINE NEXT_DATE

PARSE PUT PUT_LINE

REMOVE

SUBMIT

WHAT

/C4 "SQL*Plus Commands"

EXECUTE

GRANT

REPLACE

RUN

START

/C5 "SQL*Plus Functions"

ABS ADD_MONTHS ASCII

CEIL CHR CONCAT CONVERT COS COSH

DECODE

EXP

FLOOR

GREATEST

HEXTORAW

INITCAP INSTR

LAST_DAY LENGTH LN LOG LOWER LPAD LTRIM

MOD MONTHS_BETWEEN

NEXT_DAY NEW_TIME NLS_INITCAP NLS_LOWER NLS_UPPER NVL

POWER

RAWTOHEX REPLACE ROUND ROWIDTOCHAR RPAD RTRIM

SIGN SIN SINH SOUNDEX SQRT SUBSTR SUBSTRB

TAN TANH TO_CHAR TO_DATE TO_LABEL TO_MULTI_BYTE TO_NUMBER TO_SINGLE_TYPE TRANSLATE TRUNC

UPPER USERENV

VSIZE

/C6 "Should Be Reserved"

BEFORE

EACH

FOR

KEY

PRIMARY

WHEN WHERE WHILE
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics