塞迪网软件特供提供Ultra Edit8.01b的本地下载。
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新版本的不断发布,用户可以自行在语法突出显示的脚本文件中加入新增加的函数功能等。
图1 UltraEdit配置窗口
图2 用配置后的UltraEdit修改PL/SQL程序
附: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 |
FROM:赛迪网