功能介绍

如何运行

如何配置

    工具启动后首先进入 “Oracle 连接” 窗口,该窗口提供两种连接配置样本以方便用户第一次使用(样本提供了Oracle本机安装的用户SYS、SYSTEM及SCOTT的初始密码)。用户需要修改已有的连接设置(如主机、端口等),可以创建新的连接设置(在 “连接别名” 列表的输入栏中输入一新的别名),但不可以删除已有的连接设置。如果想更方便地修改、增加、删除连接设置,或连接设置比较复杂,则需要进入 “配置” 窗口去编辑。有两种途径进入 “配置” 窗口:一是点击 “Oracle 连接” 窗口右上方的 “配置” 图标按钮,二是点击工具条的 “配置” 图标按钮或 “配置” 菜单项。

    “配置” 窗口提供两种类型的配置样本:


    • 样本一:

      alias=Template-1;url=127.0.0.1:1521:orcl

    • 样本二:

      alias=Template-2;url=//127.0.0.1:1521/oracleserviceorcl

    • 样本三:

      alias=Template-3;url=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=oracleserviceorcl)))

    字串 “Template-1” 为连接别名(又叫助记符),它将出现在 “Oracle 连接” 窗口的下拉列表中,用来区分其它的连接;
    字串 “127.0.0.1“ 为 Oracle 服务器主机的 IP地址或机器名;
    字串 “1521” 为端口号(port);
    字串 “orcl“ 为 SID ;
    字串 oracleserviceorcl 为 SERVICE_NAME

    用户可以拷贝并修改样本去创建数据库的连接,

    通过点击 “新建 SID 连接” 按钮则生成一行 “alias=[alias_name];url=[host]:[port]:[sid]” ,
    再替换字串 “[alias_name]”,“[host]”,“[port]”,“[sid]”。

    通过点击 “新建 (Service Name)” 按钮则生成一行 “alias=[alias_name];url=//[host]:[port]/[service_name]” ,
    再替换字串 “[alias_name]”,“[host]”,“[port]”,“[service_name]”。

    注:(1)您只需要修改上述 5 个字串即可,其它字串请不要更改,还有,连接设置要求一行写完,不能折行,否则不能成功连接 ;

    (2)如果连接设置比较复杂或想直接使用 TNSNames.ora 中现有的连接配置,则可以使用样本三格式(对应的按钮为"新建 TNS 连接") ;

    (3)如果要以“SYSDBA”权限进行连接,则在“连接”窗口中的用户名后面加上字串“ AS SYSDBA”或选中复选框“连接为 SYSDBA” ;
    如果要以“SYSOPER”权限进行连接,则只能在“连接”窗口中的用户名后面加上字串“ AS SYSOPER” ;
    如果是“SYS”用户,必须使用 SYSDBA权限,如果是“SYSTEM”用户,必须使用SYSDBA或SYSOPER权限。

如何使用

    通过 “Oracle 连接” 窗口成功连接 Oracle 服务器后就可以操作数据库了。
    由于本工具是一图形界面工具,因此图形界面的键盘及鼠标的通用操作同样也适用于本工具(可以通过菜单 “GUI/界面外观” 选择/切换所喜欢的界面语言、风格和背景颜色)。

    作者采用顺序 “SQL编辑器 > 菜单/工具条按钮 > 工作表 > 监控器 > 数据字典 > 信息栏/进度条/状态栏” 对每一部分作详细介绍:

    • SQL编辑器

      用来输入 SQL 语句及命令,包括 SELECT、UPDATE、INSERT、DELETE、CREATE、ALTER、DROP、TRUNCATE、GRANT、REVOKE、LOCK、COMMIT、ROLLBACK 等 Oracle SQL 语句。另外,本工具提供以下命令语句:

      # desc [user.]objectName[@dbLink]

      如果 objectName 是一视图或物化视图(快照),则弹出一窗口显示视图的列信息(包括列名称、数据类型及长度);如果 objectName 是一表名,则显示表的结构信息,包括列信息(列名称、数据类型及长度)、索引、约束条件(主键、唯一键、检查键、子表、触发器、外键、甚至外键的外键);如果是其它类型的,则弹出消息框指出其类型名称。

      (提示:有一种简便快捷的方法查看对象的信息,即在SQL编辑器或监控器的Log 区或 Amend 区中,按下 Ctrl键+鼠标点击字符串“[user.]objectName[@dbLink]”,则弹出一窗口)

      # describe [user.]objectName[@dbLink]

      等同于命令 “desc [user.]objectName[@dbLink]”

      # schema [user.]objectName[@dbLink]

      如果 objectName 是一表名或视图名或物化视图(快照),则在监控器中显示其脚本语句,即表或视图是用什么脚本/语句如何创建的(包括索引、约束条件);如果 objectName 其它类型的,则指出其类型名称。

      # explain plan for SQL

      快速地显示SQL的解释计划(又叫执行计划)。通过解释计划可以清晰地看出索引的使用情况、是不是有全表扫描等信息,进而判断这条SQL语句的性能(提示:工具条的 “Explain Plan” 按钮可以直接查看选定SQL的解释计划)

      # commit

      提交 UPDATE、INSERT、DELETE 等语句的操作

      # rollback

      撤消/回滚 UPDATE、INSERT、DELETE 等语句的操作

      # roll

      等同于语句 “rollback”

      # set autocommit on

      设置 Autocommit 的状态为 ON(状态栏显示 “Autocommit: ON”),自动提交 UPDATE、INSERT、DELETE 等语句的操作,不再需要执行语句 “commit”

      # set autocommit off

      设置 Autocommit 的状态为 OFF(状态栏显示 “Autocommit: OFF”,默认值为 OFF),不能自动提交 UPDATE、INSERT、DELETE 等语句的操作,需要执行语句 “commit” 才能提交

      # show autocommit

      显示 Autocommit 的状态(ON 或 OFF)

      # set timing on

      设置 Timing 的状态为 ON(状态栏显示 “Timing: ON”,默认值为 ON),则在监控器的 Log区中显示每条 SQL 的开始运行时间(格式为 “时:分:秒”)及消耗的时间(格式为 “时:分:秒.毫秒”)

      # set timing off

      设置 Timing 的状态为 OFF(状态栏显示 “Timing: OFF”),则在监控器的 Log区中不显示 SQL 的开始运行时间及消耗的时间

      # show timing

      显示 Timing 的状态(ON 或 OFF)

      # set echo on

      设置 Echo 的状态为 ON(状态栏显示 “Echo: ON”,默认值为 ON),则在监控器的 Log区中显示 SQL 的结果时,在结果的前面也显示对应的 SQL语句

      # set echo off

      设置 Echo 的状态为 OFF(状态栏显示 “Echo: OFF”),则在监控器的 Log区中只显示 SQL 的结果,在结果的前面不显示对应的 SQL语句(避免大量的Log输出对内存的消耗)

      # show echo

      显示 Echo 的状态(ON 或 OFF)

      # @filename

      不需要将文件中的SQL语句拷入SQL编辑器,而是直接去读并执行外部文件中的 SQL 语句及命令,此语句对大量SQL语句的运行很有用(注:要求完整的路径名加文件名,例如:“@D:\dir1\dir2\import.sql”)

      # @@filename

      等同于命令 “@filename”

      # run filename

      等同于命令 “@filename”


      本工具的SQL编辑器是一种彩色的文本编辑器:
      (1)关键字、注释块、引号内字符串、操作符、特殊字符等,用不同的彩色字体加以区别(注:/* 与 */ 用来注释多行的语句块;-- 为单行注释)
      (2)如果光标前面是一个括号,高亮度显示配对的括号(注:“(” 与 “)” 配对,“[” 与 “]” 配对,“{” 与 “}” 配对

      本工具的SQL编辑器具备智能提示的功能:
      即只需输入部分字串,一秒钟后弹出提示窗口,列出关键字、关键字组合、函数名、列名、对象名、对象类型、包内的过程和函数,编辑SQL非常方便。分以下 3 种:

      (1)关键字、函数及对象的提示功能:
      即输入三个或三个以上的字母,稍等一秒钟,弹出提示窗口,列出以已输入字母开头的所有关键字、关键字组合、函数名及对象名。
      例如,输入字串“sel”,则提示窗口中列出以字串“sel”开头的所有关键字、函数及对象名,如关键字 “SELECT”,“SESSION” 等,如关键字组合 “SELECT”, “SELECT DISTINCT”, “SELECT * FROM” 等。

      (2)点符提示功能:
      即输入点符 “.”,稍等一秒钟,弹出提示窗口,列出列名,对象名,或包内的过程和函数。
      例如,输入字串“abc”+“.”
      (2.1)如果“abc”是一表名/视图,或其别名,则列出表/视图的所有列名及数据类型;
      注:别名也可以是一虚拟表的别名,例如:“(select ... from ...) aliasName”
      (2.2)如果“abc”是一用户名,则列出该用户的所有对象;
      (2.3)如果“abc”是一包名,则列出包内所有的过程和函数;
      (2.4)如果“abc”是一序列号,则提示窗口包含两项: “CURRVAL” 及 “NEXTVAL”

      (3) 空格/逗号提示功能:
      即输入空格(或 TAB 键 或 Enter 回车键)或逗号,稍等一秒钟,弹出提示窗口,列出对象名、对象类型、参数。具体见如下:
      (3.1 )“update”+空格,列出当前用户的所有表名/视图/快照;
      (3.2 )“insert into”+空格,列出当前用户的所有表名/视图/快照;
      (3.3 )“delete”+空格,列出当前用户的所有表名/视图/快照;
      (3.4 )“select ... from”+空格,列出当前用户的所有表名/视图/快照;
      (3.5 )“delete from”+空格,列出当前用户的所有表名/视图/快照;
      (3.6 )“create”+空格,列出所有的对象类型,如 “TABLE”,“VIEW”等;
      (3.7 )“create or replace”+空格,列出对象类型 “PROCEDURE”,“FUNCTION”,“VIEW”等;
      (3.8 )“alter”+空格,列出所有的对象类型,如 “TABLE”,“VIEW”等;
      (3.9 )“drop”+空格,列出所有的对象类型,如 “TABLE”,“VIEW”等;
      (3.10)“truncate”+空格,列出 “CLUSTER” 及 “TABLE”;
      (3.11)“lock”+空格,列出 “TABLE”;
      (3.12)“truncate”+空格,列出 “CLUSTER”、“INDEX” 及 “TABLE”;
      (3.13)“comment on”+空格,列出 “SNAPSHOT”、“TABLE”、“VIEW”;
      (3.14)“create synonym ... for”+空格,列出当前用户的所有对象名;
      (3.15)“create public synonym ... for”+空格,列出当前用户的所有对象名;
      (3.16)“grant”+空格,列出所有的系统权限和对象权限;
      (3.17)“revoke”+空格,列出所有的系统权限和对象权限;
      (3.18)“grant ... to”+空格,列出所有的用户名/角色;
      (3.19)“revoke ... from”+空格,列出所有的用户名/角色;
      (3.20)“grant ... to ...”+逗号,列出所有的用户名/角色;
      (3.21)“revoke ... from ...”+逗号,列出所有的用户名/角色;
      (3.22)“revoke ...”+逗号,列出所有的系统权限和对象权限;
      (3.23)“grant ...”+逗号,列出所有的系统权限和对象权限;
      (3.24)“revoke ...”+逗号,列出所有的系统权限和对象权限;
      (3.25)“grant ... on”+空格,列出当前用户的所有对象名;
      (3.26)“revoke ... on”+空格,列出当前用户的所有对象名;
      (3.27)“desc”+空格,列出当前用户的对象名;
      (3.28)“describe”+空格,列出当前用户的对象名;
      (3.29)“schema”+空格,列出当前用户的对象名;
      (3.30)“create ... index ... on”+空格,列出当前用户的所有表名/簇名;
      (3.31)“create ... trigger ... on”+空格,列出当前用户的所有表名;
      (3.32)“temporary table”+空格,列出当前用户的所有临时表;
      (3.33)“table”+空格,列出当前用户的所有表名;
      (3.34)“view”+空格,列出当前用户的所有视图名;
      (3.35)“public synonym”+空格,列出所有的公共同义词;
      (3.36)“synonym”+空格,列出所有的公共同义词或当前用户的所有同义词;
      (3.37)“unique index”+空格,列出当前用户的所有唯一索引;
      (3.38)“bitmap index”+空格,列出当前用户的所有位图索引;
      (3.39)“index”+空格,列出当前用户的所有索引;
      (3.40)“indextype”+空格,列出当前用户的所有索引类;
      (3.41)“constraint”+空格,列出当前用户的所有约束名;
      (3.42)“table ... constraint”+空格,列出指定表的所有约束名;
      (3.43)“procedure”+空格,列出当前用户的所有过程名;
      (3.44)“function”+空格,列出当前用户的所有函数名;
      (3.45)“package”+空格,列出当前用户的所有包;
      (3.46)“package body”+空格,列出当前用户的所有包体;
      (3.47)“trigger”+空格,列出当前用户的所有触发器;
      (3.48)“sequence”+空格,列出当前用户的所有序列号;
      (3.49)“snapshot”+空格,列出当前用户的所有快照;
      (3.50)“segment”+空格,列出当前用户的所有段;
      (3.51)“object”+空格,列出当前用户的所有对象;
      (3.52)“database link”+空格,列出当前用户的所有数据库链;
      (3.53)“library”+空格,列出当前用户的所有库名;
      (3.54)“dimension”+空格,列出当前用户的所有 dimension;
      (3.55)“operator”+空格,列出当前用户的所有 operator;
      (3.56)“resource cost”+空格,列出所有的系统资源;
      (3.57)“cluster”+空格,列出当前用户的所有簇名;
      (3.58)“role”+空格,列出当前用户的所有角色;
      (3.59)“user”+空格,列出所有的用户名;
      (3.60)“profile”+空格,列出所有 profile;
      (3.61)“type”+空格,列出当前用户的所有类型;
      (3.62)“type body”+空格,列出当前用户的所有类型体;
      (3.63)“temporary tablespace”+空格,列出当前用户的所有临时表空间;
      (3.64)“tablespace”+空格,列出当前用户的所有表空间;
      (3.65)“datafile”+空格,列出所有的数据文件;
      (3.66)“controlfile”+空格,列出所有的控制文件;
      (3.67)“logfile”+空格,列出所有的 log 文件;
      (3.68)“database”+空格,列出所有的数据库名;
      (3.69)“alter session set”+空格,列出所有的会话参数;
      (3.70)“set transaction”+空格,列出 “READ ONLY”、“READ WRITE” 等;
      (3.71)“set”+空格,列出 “autocommit”、“echo”、“timing” 及 “transaction”;
      (3.72)“show”+空格,列出 “autocommit”、“echo” 及 “timing”

      提示:当SQL编辑器的鼠标为漏斗状时,若此时按 Esc 键或改变光标的位置,则停止搜索,不再弹出提示窗口。
      当提示窗口出现时,在输入的同时,提示窗口能自动查找。如果“S*”被选中,则自动查找子串开头的全串,比如,输入子串“name”,窗口搜索 “NAME1” ,“NAME2” 等;如果“*S*”被选中,则自动查找包含子串的全串,比如,输入子串“name”,窗口搜索 “FIRST_NAME”,“NAME1” ,“NAME2” 等。
      按Ctrl+PdDn键或按钮则向下查找, 按Ctrl+PdUp键或按钮则向上查找。
      提示窗口还支持以下的键盘/鼠标操作: 上下箭头键 - 上下移动高亮度显示条; Home 键 - 高亮度显示第一个选项; End 键 - 高亮度显示第后一个选项; PgUp/PgDn; Enter 键(或鼠标双击一选项) - 选中一选项并关闭提示窗口; Esc 键或按钮 - 关闭提示窗口; 鼠标点击窗口上方的灰色边框 - 列排序。



      本工具采用语句块的方式对SQL编辑器进行操作。语句块是这样定义的:如果SQL编辑器有文本被选中,则语句块为选中的所有文本(蓝色背景的区域);否则(未选中文本),语句块为光标所在处不含空白行的连续文本(即语句块与语句块之间用空白行分隔)。SQL编辑器左边有一语句块标识,通过语句块标识可以得知当前语句块的起始行号和结束行号。

      一个语句块可以是一条SQL语句,也可以包含多条SQL语句。
      如果行的末尾字符为分号 “;” 或语句的下一行为空白行或 “/”,则为一条语句的结束标记;
      如果行为语句 “desc [user.]objectName[@dbLink]” 或 “describe [user.]objectName[@dbLink]” 或 “schema [user.]objectName[@dbLink]” 或 “roll” 或 “rollback” 或 “commit”,或 行以“@”或“@@”或“run ”开头,则这一行被视为一条单独的语句(不需要结束标记)

      对SQL编辑器的操作,可以通过其弹出菜单(鼠标右健点击之),或主菜单 “Edit(编辑)”,或工具条的图标按钮。见下文的 “菜单/工具条按钮”


    • 菜单/工具条按钮

      # Execute Single Statement(执行单条语句)

      执行SQL编辑器中的单条语句(快捷键为 Ctrl+Enter 或 F8 。注:如果是Mac机,本文中的所有 Ctrl 替换成 Command ,在菜单标注中简缩成 Cmd
      如果是 SELECT 语句,运行结果显示于工作表中,结果信息显示于信息栏;
      如果是语句 “desc [user.]objectName[@dbLink]”,则弹出窗口显示对象信息;
      如果是语句 “schema [user.]objectName[@dbLink]”、“explain plan for SQL” 或 “@filename”,运行结果及结果信息都显示于监控器中;
      其它语句的结果信息显示于信息栏。

      # Execute Statement(s) by Monitor(监控执行单/多条语句)

      快捷键为 Ctrl+M 或 F9
      用监控器监控SQL编辑器中当前语句块中的单条或多条语句的运行,运行结果及结果信息显示于监控器。

      (注:如果语句块包含多条语句,则必须使用该菜单项或按钮,不能使用 “Execute Single Statement”;如果语句块是一条 PL/SQL 语句,则不能使用该菜单项或按钮,必须使用“Execute Single Statement”)

      # Commit(提交)

      当 Autocommit 的状态为 OFF,且SQL编辑器运行了 insert、delete、update 等语句后,则该菜单项或按钮可用(点击之则相当于执行语句“commit”)。

      # Rollback(回滚)

      当 Autocommit 的状态为 OFF,且SQL编辑器运行了 insert、delete、update 等语句后,则该菜单项或按钮可用(点击之则相当于执行语句“rollback”)。

      # Explain Plan(解释计划)

      将SQL编辑器中的单条SQL语句的解释计划显示于监控器,通过解释计划可以清晰地看出SQL语句的索引使用、全表扫描等情况,进而判断SQL语句的性能。

      # Export(导出)

      快捷键为 Ctrl+O
      如果SQL编辑器选定的是一条 SELECT 语句,则该菜单项或按钮可用。将 SELECT 语句执行的结果不显示在工作表,而是直接导出为 XLS/CSV/INSERT Statement/HTML/XML 这5种格式到一外部文件,用来备份/移植/打印/存档等(如果选定的是XLS格式,或许只能导出5000条或10000条记录,这是因为受内存限制的缘故。如果用户的确需要导出很多的XLS记录,用户可以先导出多个较小的XLS文件再合并为一个大的XLS文件,或先导出为CSV格式的文件再用XLS打开CSV文件(除XLS格式外,其它4种格式的导出不受内存的限制,只受硬盘空间的限制;如果选定的是CSV格式,默认的分隔符为逗号,如果数据中本身包含了分隔符或回车符,则列值用双引号引起来,基于CSV规则))。

      # Config(配置)

      打开 “配置” 窗口,配置数据库的连接及工具序列号(即 serial_no)。

      # Oracle Connect(Oracle 连接)

      打开 “Oracle 连接” 窗口,创建一新的数据库连接/会话

      # set autocommit on/off

      用来切换 Autocommit 的状态(相当于运行命令 “set autocommit on” 或 “set autocommit off”)。
      当 Autocommit 的状态为 ON 时,能自动提交 insert、delete、update 等语句的操作

      # set timing on/off

      用来切换 Timing 的状态(相当于运行命令 “set timing on” 或 “set timing off”)。
      当 Timing 的状态为 ON 时,在信息栏或监控器中显示每条SQL语句的开始时间及消耗的时间

      # set echo on/off

      用来切换 Echo 的状态(相当于运行命令 “set echo on” 或 “set echo off”)。
      当 Echo 的状态为 OFF 时,在监控器中只显示SQL语句的结果信息而不显示对应的SQL语句

      # Disconnect(断开连接)

      打开 “断开连接” 窗口,断开所选会话的数据库连接,以释放数据库资源。
      鼠标点击列表框中任一选项,按 Ctrl+A 键则选中所有选项;按住 Ctrl 键的同时,鼠标点击一选项,则选中/去选该选项;连接断开后,下次可以直接运行SQL语句,不必通过 “Oracle 连接” 窗口重新连接,因为本工具能自动重新连接

      # Load Scripts(装入脚本语句)

      将外部文件中的文本装入到SQL编辑器(快捷键为 Ctrl+L)。

      # Save All Scripts(保存所有的脚本语句)

      将SQL编辑器中的所有文本保存到外部文件(快捷键为 Ctrl+S)。

      # Cut(剪切)

      将SQL编辑器的选中文本剪切到剪贴板(快捷键为 Ctrl+X)。

      # Copy(拷贝)

      将SQL编辑器的选中文本拷贝到剪贴板(快捷键为 Ctrl+C)。

      # Paste(粘贴)

      将剪贴板的文本拷到SQL编辑器(快捷键为 Ctrl+V)。

      # Find & Replace(查找和替换)

      打开 “查找和替换” 窗口,查找/替换SQL编辑器中相匹配的字符串(快捷键为 Ctrl+F;快捷键 F3 用来查找下一个)。

      # Undo(撤销)

      撤销SQL编辑器的编辑操作(快捷键为 Ctrl+Z)

      # Redo(重做)

      重做(或恢复)SQL编辑器的编辑操作(快捷键为 Ctrl+Shift+Z)

      # Format SQL(SQL格式美化)

      重新编排SQL编辑器中当前语句块,采用缩进式的格式,达到美化、整齐、易读之目的。

      # Add Comments(加上注释)

      给SQL编辑器中当前语句块加上注释标记(即语句块中每行的开头加上注释标记 “--”)

      # Remove Comments(去掉注释)

      去掉SQL编辑器中当前语句块中的所有注释标记(/* */ 及 --)

      # Remove Quotation Marks(去掉引号)

      Java 程序或其它程序语言中的多行SQL语句通常使用双引号“"”和加号“+”进行联接(例如 "select ..." + "where ..."),
      用户要调试/运行这个SQL,需要手工地删除所有额外的双引号和加号,或采用其它的文本编辑器替换所有的双引号和加号。但有的加号是作为运算符或外连结符因而不能删除, 所以删除这些双引号和加号既费时费心又容易出错。为了方便用户,本工具特地增加了这一菜单项和按钮,通过它可以很方便、快速地删除所有额外的双引号和加号。
      (例如,字串 "a\"b"+"c(+)",会变为 a\"b c(+)

      # Add Quotation Marks(加上引号)

      将SQL编辑器中当前语句块的每行首尾加上双引号“"”,行与行之间用加号“+”连结,用来将调试好了的SQL语句放入 Java 程序或其它语言的程序,方便程序的编写。

      # Increase Indent(增加缩进)

      将SQL编辑器中当前语句块向右移动一个 Tab 位置,即 4 个空格(快捷键为 Tab)。
      Ctrl+右箭头键,则将语句块向右移动一个空格的位置

      # Decrease Indent(减少缩进)

      将SQL编辑器中当前语句块向左移动一个 Tab 位置,即 4 个空格(快捷键为 Shift+Tab)。
      Ctrl+左箭头键,则将语句块向左移动一个空格的位置

      # Column Block Operation(列块操作)

      打开 “列块操作” 窗口,对SQL编辑器中当前语句块进行列块操作。
      通过鼠标的任意拖动或双击选择一列块,对列块进行拷贝、剪切、删除、左右移动等操作

      # To Upper Case(转为大写)

      将SQL编辑器中选中的文本转换为大写字母。

      # To Lower Case(转为小写)

      将SQL编辑器中选中的文本转换为小写字母。

      # Help Topics(帮助主题)

      打开 “帮助主题” 窗口(快捷键为 F1)。
      如果是中文界面,则调入工作目录中的帮助文件 “Help-in-Chinese.html”;如果是英文界面,则调入工作目录中的帮助文件 “Help-in-English.html”

      # About Oracle SQL Handler(关于 Oracle SQL Handler)

      打开 “关于 Oracle SQL Handler” 窗口,显示 本工具作者的微信号、微信二维码、QQ号及E-mail地址,工具版本号、操作系统的类型、JRE 版本号、当前会话连接的 Oracle 数据库的版本号、软件的版权声明及留言页面等信息。

    • 工作表(Worksheet)

      如果SQL编辑器中执行的是一条 SELECT 语句,则 SELECT 语句的结果显示在工作表(为了避免显示太多记录对内存及性能的影响,所以在工作表的工具条上有一“限定查询记录”输入框,默认限定2000行。如果超出2000行,每读5000条检查内存使用情况,如果剩下内存不多则不再继续读!所以通常最多只能显示1-2万行。作者认为没必要显示太多记录,显示得太多,用户不可能每一条去查看/编辑。这就要求用户不要将“限定查询记录”输入框的值设置得太大,或在写SELECT语句时尽量加上过滤条件显示所需要的数据。如果用户的确想查看或保存太多的记录,可以借助上面的“导出”功能

      对工作表的操作可以通过图标按钮,或主菜单“Worksheet/工作表” 或弹出菜单(鼠标右击之)。各项功能及使用介绍如下:

      # Insert A Blank Row(插入一空行)

      快捷键为 Ctrl+I
      如果有单元格被选中,则在第一个选中单元格的前面插入一空白行,否则在工作表的末尾追加一空白行(注:只是在工作表中插入一空白行,而不是插入一空白行到数据库表中)。

      # Duplicate A Row(复制一行)

      快捷键为 Ctrl+U
      如果要插入一行,且这一行与已存在的一行的内容大部分是相同的,如果使用“插入一空行”,则要输入的内容太多,这时应使用“复制”,也就是,先选中某一行的全部或部分单元格,再按“复制一行”这个菜单项,则复制了一行,再作一些修改,这样就很快地插入了一行。

      # Delete Selected Row(s)(删除选定的行)

      快捷键为 Ctrl+D
      如果有单元格被选中,则从工作表中删除选中单元格所在的行(注:只是在工作表中删除选定的行,而不是删除数据库表中的记录)。

      # Commit Changes(提交更改)

      快捷键为 Ctrl+S
      如果按钮图标为红色或菜单项可见,则可以通过修改工作表中的数据去更新数据库的表(即 工具条最右边显示的表名或视图名)。
      如果该菜单项可见并且为黑色字体,则表示工作表的数据发生了改变(修改、插入行、删除行),可以将所有的改动提交/写入到数据库的表中(提交过程中如果某一行发生错误,则高亮度显示错误行并且消息栏给出简短的错误信息。如此反复地更正,直至提交成功为止。提交成功后,该菜单项将变成灰色)。

      # Find & Replace(查找和替换)

      快捷键为 Ctrl+F
      弹出 “查找和替换” 窗口,对工作表进行查找或替换(当工作表中的数据量很大时,此功能显得特别有用)。
      数据类型分为 “数字型的单元格” 及 “非数字型的单元格”(数字型的单元格,是指单元格的标题显示其数据类型为 NUMBER、FLOAT 或 INTEGER);
      搜索范围分为 “所有单元格”、“选中的单元格” 及 “未选中的单元格”;
      搜索方向分为 “按行搜索” 及 “按列搜索”。

      # Single Record Operations(单条记录操作)

      快捷键为 Ctrl+R
      当工作表有很多列导致行很长时,有时对数据的查看和编辑显得不太方便,因此本工具提供了 “单条记录操作” 窗口,用竖向表格显示一条记录(即 第一列显示列名,第二列显示数据)(鼠标右击竖向表格则显示弹出菜单)。

      # Copy Cell(s) With Title(拷贝单元格带标题)

      快捷键为 Ctrl+W
      拷贝选中的单元格及标题(列与列之间用空格补齐)

      # Copy Separated Cells(拷贝分隔的单元格)

      拷贝选中的单元格,列与列之间用选定的分隔符隔开。
      如果将拷贝的结果保存为扩展名为 CSV 的文件,则文件能被 Microsoft Excel 打开;
      如果分隔符为Tab键,则拷贝的结果能直接粘贴到打开的 Excel 文件。
      如果使用快捷键 Ctrl+C,则分隔符为 Tab 键

      # Copy Separated Title(拷贝分隔的标题)

      拷贝选中单元格的标题,标题与标题之间用选定的分隔符隔开。
      注:若未选中单元格,则拷贝工作表的所有标题;该菜单项通常和菜单项 “拷贝分隔的单元格” 配合使用

      # Export Selected Cells(导出选定单元格)

      快捷键为 Ctrl+O
      将工作表中选定的单元格导出为 XLS/CSV/INSERT Statement/HTML/XML 这5种格式到一外部文件,用来备份/移植/打印/存档等(请参照上面的直接“导出”

      # Refresh(刷新)

      刷新表格的数据(重新运行之前的 SELECT 语句)

      # Number Statistic(数值统计)

      对选中区域中的数字型单元格进行数值统计,包括计数、最大值、最小值、求和、平均值

      # Empty Cell(s)(清空单元格)

      快捷键为 Ctrl+E
      清空工作表中选中的单元格

      # Select All(全选)

      快捷键为 Ctrl+A
      选中工作表中的所有单元格

      # Select Whole Row(选择整行)

      快捷键为 Ctrl+L
      如果某行有部分单元格被选择,则通过此菜单项选择整行


      工作表还具备以下功能/操作:
      (1)鼠标指向列标题,提示该列的数据类型、格式及长度;
      (2)鼠标左键点击列标题,对该列进行升/降排序;
      (3)鼠标左键点击行号列或按住左键拖动鼠标,则选择整行(支持Ctrl键或Shift键的配合使用,同Excel表格操作一样);
      (4)鼠标右键点击列标题,拷贝单个列标题;
      (5)Ctrl+鼠标左键点击列标题,则选中或去选整列单元格(同Excel不一样,Excel鼠标点击列标题则选择整列,本工具鼠标点击列标题则对列进行排序);
      (6)鼠标拖动列标题,改变该列在表格中的位置;
      (7)选中工作表格中的一行并按 “Alt+上下箭头键”,上下移动选中的行;
      (8)“限定查询记录”输入框只接收值1至999999,支持上下箭头键及Page Up/Down 键,将输入框的值以100进行递增或递减,以此来快速地调整输入框的值;
      (9)鼠标指向列标题之间的分隔线,鼠标变为水平方向的双向箭头,按住鼠标左键左右拖动则改变列的宽度;双击鼠标左键则将列调到合适的宽度以显示该列的所有单元格;如果某一行全选或表格全选,鼠标双击任一标题分隔线,则将表格的所有列调到合适宽度,这个同Excel表格操作一样
      (10)如果单元格的数据类型为 NUMBER、VARCHAR2、DATE、TIMESTAMP 等(单元格背景颜色为白色),鼠标双击则可直接编辑;
      如果数据类型为大型的文本字段如 CLOB、LONG(单元格背景颜色为淡黄色),鼠标双击则弹出一窗口则可查看/编辑多行文本;
      如果数据类型为 BLOB、LONG RAW 等(单元格背景颜色为灰色),不可编辑。

      为了能通过修改工作表中的数据去更新数据库中的表(即 “提交更改”菜单项可见,工作表边框的左上角能显示一表名),则要求工作表中至少有一个可编辑列的列名存在于查询表。请参照以下样本:
      (1)语句 “select * from tableName ...” - 合要求;
      (2)语句 “select col_1, col_2 from tableName ...” - 合要求;
      (3)语句 “select a.col_1, trunc(a.col_2) from tableName a ...” - 合要求;
      (4)语句 “select upper(col_1),sysdate from tableName ...” - 不合要求,因为没有一个列名存在于查询表

    • 监控器(Monitor)

      又叫控制台,用来监控批量SQL语句的运行。

      # 选项框 “遇到异常要暂停”

      当该选项框选中时,如果批中某一SQL语句运行出错,则暂停在这条出错误的语句,此时要么更正这条语句重新运行之,要么忽略错误继续运行下一条语句;
      否则(该选项框未选中),就算有SQL语句出错,也不暂停,继续运行下一条语句,直到批中最后一条语句运行完毕。

      # 选项框 “输出 Log”

      当该选项框未选中时,不输出任何 Log(通常用来避免大量 Log 的输出对内存的消耗)

      鼠标右击 Log 区的文本框,则显示弹出菜单;
      Ctrl键+鼠标点击 Log 区或 Amend 区中的字串 “[user.]objectName[@dbLink]” ,则弹出窗口显示字串的对象信息。


    • 数据字典

      本工具提供的常用数据字典有:表、视图、索引、同义词、约束、过程、触发器、对象。
      (位于监控器的右方)

      通过在文本框中输入字串进行搜索(如果文本框为空,则搜索所有对象)。

      文本框支持通配符 “%” 及 “*”,例如,输入 “%NAME” 或 “NAME%” 或 “%NAME%”,则查找包含子串 “NAME” 的所有对象。搜索的结果显示于文本框下方的表格,通过表格的弹出菜单可以对每一个选中的对象进行操作(如 修改、删除、查看等)。

      (数据字典的表格操作同工作表的操作是一样的,它们的弹出菜单的功能/操作也很类似)

    • 信息栏/进度条/状态栏

      信息栏用来显示单条语句运行的结果信息(多条语句运行的结果信息显示于监控器的 Log 区),鼠标右击信息栏则拷贝信息栏中的所有文本
      消息栏支持3种字体颜色:如果是一条错误(或异常)信息,则字体为红色;如果运行正常(无错误产生),则字体为黑色;如果SELECT语句的实际记录数超过了“限定查询记录”输入框的值,则字体为蓝色
      如果信息太多太长导致信息栏不能显示所有文字,或者信息字串中含有换行符,那么鼠标指向信息栏时工具提示“鼠标双击信息栏则弹出信息窗口”。

      当SQL语句在运行时,进度条则显示,如果鼠标指向进度条,则提示一些信息:如 当前运行的SQL语句的开始时间、当前运行的SQL语句是批中的第几条语句、已导出多少条记录等。

      当SQL语句在运行时,“Stop” 按钮则显示(显示在进度条的右边)。如果当前SQL语句运行时间太长,或其它原因需要中断其运行,则只需要点击 “Stop” 按钮,通常只需几秒钟就能停止其运行。存在个别情况,即 点击了 “Stop” 按钮长时间还不能停止,如果过了两分钟还不能停止,“Stop” 按钮的背景色变为淡黄色,此时若再点击它一次则强制中断。

      状态栏分割成 4 个小区间:
      第一个区间指示SQL编辑器的光标所处的行列位置(右边有一个倒立的小三角形的图标按钮,通过它可以改变光标的行号);
      第二个区间显示 Autocommit 的状态(命令 “set autocommit on” 或 “set autocommit off” 可以改变 Autocommit 的状态);
      第三个区间显示 Timing 的状态(命令 “set timing on” 或 “set timing off” 可以改变 Timing 的状态);
      第四个区间显示 Echo 的状态(命令 “set echo on” 或 “set echo off” 可以改变 Echo 的状态)

补充说明

    [1] 本工具的所有文本编辑框不仅支持通用的键盘操作(如 Ctrl+A、Home、End、Ctrl+Home、Ctrl+End、PgUp、PgDn 。 注:如果是Mac机,本文中的所有 Ctrl 替换成 Command ,在菜单标注中简缩成 Cmd),还隐含了本工具独有的键盘操作,如下:

      (1)Ctrl+D,删除单行或多行文本编辑器光标所在的一行;删除表格中选中的行;
      (2)Ctrl+I,在多行文本编辑器(如SQL编辑器)插入空行;在工作表中插入空白行;
      (3)Ctrl+Backspace,向后删除一字串;
      (4)若多行被选中:Tab 键将块右移 1 个空格的位置;Ctrl+Right 将块右移 1 个空格的位置;Shift+Tab 将块左移 4 个空格的位置;Ctrl+Left 将块左移 1 个空格的位置
      (5)若未选中行或仅一行被选中:Ctrl+Left 光标后退一字串;Ctrl+Right 光标前进一字串
      (6)Esc键,先隐藏弹出菜单再关闭弹出窗口
      (7)如果是Mac系统,Command+W 则先关闭弹出窗口,再逐一关闭会话连接,最后关闭主窗口即退出系统;Command+Q 则先关闭弹出窗口,再关闭主窗口退出系统。


    [2] 本工具的下列控件支持弹出菜单操作:
    SQL编辑器、工作表、监控器的 Log区、单行文本框、数据字典表格、“desc objectName”窗口中的表格、工具条下方的会话标签栏。
    通过弹出菜单或工具条按钮的提示文字可以得知其快捷键(如果是Mac机,菜单中的 Cmd 是Command键的简缩)。

    [3] 用户可以改变工具的背景图片,将喜欢的图片文件改名为 background-picture.gif 或 background-picture.PNG,并放到工作目录下(文件 OracleSQLHandler.jar 所在的目录),重启工具,则该图片作为主界面的背景图片。 (注:图片文件的后缀只能是 GIF 或 PNG, 象 JPG, BMP 需要改后缀, 还有,图片尺寸不能小于 100x100, 否则使用系统自带的背景图片)

    [4] 如果用户想通过命令“EXEC a_procedure()”来运行或调试一PL/SQL过程, 则用户需要在SQL编辑器编写并运行如下语句:
    begin
    a_procedure();
    end;

    [5] 本工具提供的 Oracle JDBC 版本号为 11.2.0.4

    [6] 本工具连接到数据库后有如下默认设置:

      NLS_DATE_FORMAT 的默认格式为 “yyyy-mm-dd hh24:mi:ss”,这样 to_char(sysdate) 就等价于 to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss'),to_date('2004-08-08 18:18:18') 就等价于 to_date('2004-08-08 18:18:18', 'yyyy-mm-dd hh24:mi:ss')。可以通过语句 “alter session set nls_date_format” 改变其格式

    欢迎您使用本工具!本工具的作者衷心感谢您的宝贵意见和建议,并欢迎留言到如下网页:
    http://blog.sina.com.cn/oraclesqlhandler
    http://www.onlinedown.net/soft/91179.htm
    http://www.duote.com/soft/17069.html
    https://www.crsky.com/soft/18077.html

版权属 毛灵燕(Swan Mao) 所有,欢迎使用!
微信:mz2250436518   QQ: 1078195462   E-mail: mao.swan@163.com

扫微信二维码加好友