使用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 (请参见上文)。
更改分隔符字符
可以改变哪个字符序列应该被用作前缀,后缀和部分分隔符在变量表达式的工具- >工具特性,在变量常规选项卡下的类别
使用DbVisualizer变量的更多相关文章
- dbvisualizer参数设置
6.13 可否完全禁用数据编辑? 可以. 方法: 在文本编辑器里打开文件 DBVIS-HOME/resources/dbvis-custom.prefs. 找出 dbvis.disabledataed ...
- 6 小时 Python 入门
6 小时 Python 入门 以下操作均在 Windows 环境下进行操作,先说明一下哈 一.安装 Python 1.官网下载 Python 进入官网(https://www.python.org), ...
- 运行DbVisualizer报the java_home environment viariable does not point to a working 32-bit JDK OR JRE错误
报这个错误的根本原因就是DbVisualizer和JDK的版本不一致,那么知道原因,修改起来就方便了,要么修改DbVisualizer的版本,要么修改JDK的版本. 1.JDK7 64位 那么就在Db ...
- 连接各种数据库神器———DbVisualizer
作为开发人员,经常会遇到在不同的数据库环境中进行开发或者调试,所以针对每种数据库都要安装对应的客户端,不但要占用硬盘控件而且还要经常切换,无可厚非这是一项头疼并且麻烦的事情.有了DbVisualize ...
- 通过DbVisualizer 工具运行DB2存储过程实现INSERT语句主键自增造数
1.需求简介 最近开发人员需要进行一批数据进行生产上SQL语句耗时过长问题的验证与优化.所以在性能测试库中批量建造数据,由于交易本身业务逻辑过于复杂以及需要各种授权,最后决定采用插表的方式完成. 2. ...
- Hive(四)Hive的3种连接方式与DbVisualizer连接Hive
一.CLI连接 进入到 bin 目录下,直接输入命令: [root@node21 ~]# hive SLF4J: Class path contains multiple SLF4J bindings ...
- 使用PLSQL Developer和DbVisualizer、SQLDBx查询oracle数据库时出现乱码
使用PLSQL Developer和DbVisualizer查询oracle数据库时,出现查询数据中文乱码情况. 查看了一下数据库编码格式select * from v$nls_parameters; ...
- In-Memory:在内存中创建临时表和表变量
在Disk-Base数据库中,由于临时表和表变量的数据存储在tempdb中,如果系统频繁地创建和更新临时表和表变量,大量的IO操作集中在tempdb中,tempdb很可能成为系统性能的瓶颈.在SQL ...
- 探究javascript对象和数组的异同,及函数变量缓存技巧
javascript中最经典也最受非议的一句话就是:javascript中一切皆是对象.这篇重点要提到的,就是任何jser都不陌生的Object和Array. 有段时间曾经很诧异,到底两种数据类型用来 ...
随机推荐
- 利用Putty/Plink通过ssh tunnel端口转发实现FireFox和Chrome的加密代理访问
如果需要使用远端服务器的DNS:在Firefox中about:config设置 network.proxy.socks_remote_dns ==> true 参考原文:http://think ...
- BZOJ 4327: JSOI2012 玄武密码 后缀自动机
Code: #include<bits/stdc++.h> #define setIO(s) freopen(s".in","r",stdin) # ...
- github+hexo(window10)
一.申请github账户 二.先安装node.js.git 本地: 三.安装hexo(建立静态网页,用Markdown写博客) 1.创建文件地址 在合适的地方新建一个文件夹,用来存放自己的博客文件,比 ...
- 莫烦大大keras的Mnist手写识别(5)----自编码
一.步骤: 导入包和读取数据 数据预处理 编码层和解码层的建立 + 构建模型 编译模型 训练模型 测试模型[只用编码层来画图] 二.代码: 1.导入包和读取数据 #导入相关的包 import nump ...
- Centos 修改主机名称
Centos 配置主机名称: 1.首先查询一下当前的主机名称 [root@localhost~]# hostnamectl status Static hostname: ****** //永久主机名 ...
- Git 基础教程 之 远程仓库
① 注册GitHub账号 由于本地Git仓库和GitHub仓库之间的传输是SSH加密的,所以需要一点设置: a, 创建SSH Key 在用户主目录下,看是否有 .ssh 目录,若无 ...
- QT中tableview不能更新数据,why?
model->select(); //model->removeColumn(0);++++++++++++++++++++ //model->setHeaderData(model ...
- [MySQL]--查询性能分析工具-explain关键字
explain显示了MySQL如何使用索引来处理select语句以及连接表.可以帮助选择更好的索引和写出更优化的查询语句. explain的使用方法很简单,只需要在select查询语句前面加上expl ...
- btrfs
https://docs.docker.com/storage/storagedriver/btrfs-driver/ $ sudo cat /proc/filesystems | grep btrf ...
- junit4单元测试基础
导入方法看如下截图就明白了: 新建测试用例 右击包名,点击新建,或者新建里的others,选择JUnit test case,如下图所示: 接下来,给测试类起名字和选择要测试的类,如下图所示: ...