使用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. 有段时间曾经很诧异,到底两种数据类型用来 ...
随机推荐
- excel 处理方法
//.方法一:采用OleDB读取EXCEL文件: //打开excel 返回指定表中的所有数据 public DataSet ExcelToDS(string Path) { string strCon ...
- vue 导航菜单默认子路由
export default new Router({ routes: [ { path: '/', name: 'index', component: index, children: [ { pa ...
- Win32_Window(day02)
--- 窗口创建函数 ---#include <Windows.h> //窗口处理函数 HINSTANCE g_hIns; LRESULT CALLBACK WndProc(HWND hW ...
- Intro.js 分步向导插件使用方法
简介 为您的网站和项目提供一步一步的.更好的介绍 Intro.js 目前兼容 Firefox.Chrome 和 IE8,不兼容 IE6 和 IE7,后续版本将会提供更好的兼容. 在线演示及下载 在线演 ...
- 继续聊WPF——进度条
ProgressBar控件与传统WinForm使用方法完全一样,我们只需关注: Minimum——最小值,默认为0: Maximum——最大值,默认为100. Value——当前值. 关键是它的控 ...
- AtCoder ARC 076E - Connected?
传送门:http://arc076.contest.atcoder.jp/tasks/arc076_c 平面上有一个R×C的网格,格点上可能写有数字1~N,每个数字出现两次.现在用一条曲线将一对相同的 ...
- 在ecshop模板使用自定义函数
https://blog.csdn.net/shaolinld/article/details/46400485 在ecshop模板使用自定义函数 可以增加自定义函数,在模板直接调用,例如: {$us ...
- android 手机网络接入点名称及WAP、NET模式的区别
移动 电信 联通 APN cmwap cmnet ctwap ctnet 3gwap uniwap 3gnet uninet设置 APN(Access Point Name),即“接入点名称”,用来标 ...
- Spring Cloud-hystrix使用例子(七)
继承方式 HystrixCommand public class UserSelectAllCommand extends HystrixCommand<List<User>> ...
- hdu 2089 数位dp入门题
#include<stdio.h> //dp[i][0]代表不存在不吉利数字 //dp[i][1]代表不存在不吉利数字但是以2开头 //dp[i][2]代表存在不吉利数字 #define ...