• 使用DbVisualizer变量


      变量可用于构建参数化SQL语句,并让DbVisualizer在执行SQL时提示您输入值。如果您重复执行相同的SQL,只是希望在同一个SQL语句中传递新数据,这很方便。

    变量语法

    变量格式支持设置默认值,数据类型和一些选项,如下例所示:

    ${FullName||Andersson||String||where pk}$

    以下是完整的变量语法:

    ${name || value || type || options}$

    名称必需。这是出现在替代对话框中的名称。如果脚本中的多个变量具有相同的名称,则替换对话框仅显示一个,并且输入的值将应用于该名称的所有变量。

    变量的默认值
    类型
    变量的类型:String,Boolean,Integer,Float,Long,Double,BigDecimal,Date,Time和Timestamp。另外DbVisualizer定义了:BinaryData和TextData(用于CLOB)。这用于确定如何在DbVisualizer和数据库服务器之间传递数据。如果没有指定类型,则将其视为整数。
    选项
    选项部分用于表示某些条件:
    pk
    表示该变量是最终SQL中主键的一部分。用一个关键图标表示
    其中
    定义该变量是WHERE子句的一部分。绿色的星形图标进一步说明了这种情况
    noshow
    该选项定义变量不应出现在替换对话框中。使用此选项时必须设置适当的值,除非它是输出变量(请参阅下面的dir)
    nobind
    指定该值应该作为最终语句中的文本替换,而不是替换为参数标记
    dir = in | out | inout
    与@call命令一起使用的变量的方向(对于其他用途它将被忽略)。指定函数返回值的变量必须声明为 dir = out,并且用于过程参数的变量必须使用与过程参数方向声明相匹配的dir类型。 in 是默认值。
    预定义的变量
    一些预定义的DbVisualizer变量可以在SQL中的任何地方使用。在将SQL发送到数据库服务器之前,这些数据被替换为实际值。这些变量的最终值是自解释的。

    ${dbvis-date}$
    ${dbvis-time}$
    ${dbvis-timestamp}$
    ${dbvis-connection}$
    ${dbvis-database-type}$

    默认情况下,日期/时间变量值按照“ 工具属性” - >“数据格式”中的定义 格式化,但您也可以为变量的单次使用指定自定义格式,例如

    ${dbvis-date||||||format=[yyyyMMdd]}$

    只有在监视生成结果集的SQL语句并且 监视器的Allowed Row Count > 0 时,才能使用以下变量 。输出格式为秒和毫秒。例如:2.018

    ${dbvis-exec-time}$
    ${dbvis-fetch-time}$

    请注意,上述变量都不会出现在下面解释的变量替换窗口中。

    SQL语句中的变量替换
    要使可变处理在SQL Commander中工作,请确保 启用SQL主菜单中的 SQL-> Process Variables选项。

    一个简单的变量可能如下所示:

    ${FullName}$

    变量由开始和结束序列标识, ${ ... }$。(这些可以在工具属性中重新定义)。在执行期间,SQL Commander搜索变量并显示一个窗口,其中包含每个变量的名称和一个输入(值)字段。输入每个变量的值,然后按 执行。这将随后用值替换该变量,最后让数据库执行该语句。

    考虑以下带有变量的SQL语句。这是最简单的变量使用,因为它只包含变量名称。在这种情况下,由于替换窗口无法从这些变量表达式中确定实际数据类型,因此还需要将文本值放在引号内。

    INSERT
    INTO
    "SCOTT"."EMP"
    VALUES
    (
    ${EMPNO}$,
    '${ENAME}$',
    '${JOB}$',
    ${MGR}$,
    '${HIREDATE}$',
    ${SAL}$,
    ${COMM}$,
    ${DEPTNO}$
    )
    执行上述SQL将导致显示以下窗口:

    替代窗口与Form Data Editor具有相同的外观和功能,即可以在多行编辑器中排序,过滤,插入预定义的数据,复制,粘贴和编辑单元格以及其他许多功能。此外,替代窗口专门为替代窗口添加了两个新命令(工具栏中的最左侧和窗体右键单击菜单中):

    设置默认值
    这将设置该值为变量的默认值。如果未在变量中指定默认值,则会显示(空)
    设置先前使用的值
    将每个变量的值设置为上一次运行中使用的值(如果没有前一次运行的值,则此按钮被禁用)。
    “ SQL预览” 区域显示所有变量都用值替换的语句。

    这是一个更复杂的变量使用的例子。

    update SCOTT.EMP set
    EMPNO = ${EMPNO||7698||BigDecimal||pk ds=22 dt=NUMERIC }$,
    ENAME = ${ENAME||BLAKE||String||nullable ds=10 dt=VARCHAR }$,
    JOB = ${JOB||MANAGER||String||nullable ds=9 dt=VARCHAR }$,
    MGR = ${MGR||7839||BigDecimal||nullable ds=22 dt=NUMERIC }$,
    HIREDATE = ${HIREDATE||1981-05-01 00:00:00.0||Timestamp||nullable ds=7 dt=TIMESTAMP }$,
    SAL = ${SAL||2850||BigDecimal||nullable ds=22 dt=NUMERIC }$,
    COMM = ${COMM||(null)||BigDecimal||nullable ds=22 dt=NUMERIC }$,
    DEPTNO = ${DEPTNO||30||BigDecimal||nullable ds=22 dt=NUMERIC }$
    where EMPNO = ${EMPNO (where)||7698||BigDecimal||where pk ds=22 dt=NUMERIC }$
    本例使用变量的全部功能。它实际上是由脚本生成的 SQL Commander-> INSERT COPY INTO TABLE 在数据选项卡网格中的右键菜单选项。

    在执行由变量组成的语句时,DbVisualizer会将每个变量替换为内嵌文本的值或参数标记。使用参数标记通过语句传递数据比内联值更可靠和安全。这也是建议设置值的技术,因为数据库引擎可能会正确预编译这些语句。如果变量的类型部分已设置,并且没有指定nobind选项,则DbVisualizer将自动生成参数标记。

    以下内容将被替换为参数标记:

    ${Name||rolle||String}$

    这些将被替换为变量值:

    ${Name||rolle}$
    ${Name||rolle||String||nobind}$

    DbVisualizer中的变量可以在语句中的任何地方使用。但是,如果最终语句在不支持的地方包含参数标记,则最终语句传递到数据库以执行时可能会出现问题。一个简单的例子是Oracle不接受表名的参数标记。要解决此问题,请清除变量表达式的类型部分或添加选项 nobind (请参见上文)。

    更改分隔符字符
    可以改变哪个字符序列应该被用作前缀,后缀和部分分隔符在变量表达式的工具- >工具特性,在变量常规选项卡下的类别

  • 相关阅读:
    angular2^ typescript 将 文件和Json数据 合并发送到服务器(1.客户端处理)
    错误的尝试:回射程序改进2
    XML Schema笔记
    回射程序改进1
    DTD笔记
    XML语法笔记
    判断IPv6地址合法性
    线程相关函数(POSIX线程):
    使用string实现一个用于储存那些太大而无法使用 long long 的数
    基本SCTP套接字编程常用函数
  • 原文地址:https://www.cnblogs.com/cjtds/p/8818735.html
Copyright © 2020-2023  润新知