当前位置: 首页 > news >正文

【达梦数据库】disql工具参数绑定

前言

在达梦数据库的使用过程中尽管管理工具很好用,但是命令行工具还是有着得天独厚的优势,但是在参数绑定方面就没有管理工具做的更加完美,现在就汇总下disql 工具参数绑定的常用几种方式

disql 参数绑定

使用 ?

select * from v$dm_ini where para_name =? and  para_value=?;
input value of param1:COMPATIBLE_MODE

input value of param2:2


LINEID     PARA_NAME       PARA_VALUE MIN_VALUE MAX_VALUE DEFAULT_VALUE MPP_CHK SESS_VALUE FILE_VALUE DESCRIPTION                                                                                     PARA_TYPE
---------- --------------- ---------- --------- --------- ------------- ------- ---------- ---------- ----------------------------------------------------------------------------------------------- ---------
1          COMPATIBLE_MODE 2          0         6         0             Y       2          2          Server compatible mode, 0:none, 1:SQL92, 2:Oracle, 3:MS SQL Server, 4:MySQL, 5:DM6, 6:Teradata  IN FILE

  1. 无需给考虑给字符串加双引号,即只需要输入参数值就行
  2. 查看sqllog 内容如下,是参数绑定后触发执行
[ORA]: select * from v$dm_ini where para_name =? and  para_value=?;^M
[ORA]: select * from v$dm_ini where para_name =? and  para_value=?;^M
Load para: 0 rows^M
PARAMS(SEQNO, TYPE, DATA)={(0, VARCHAR2, 'COMPATIBLE_MODE'), (1, VARCHAR2, '2')}
[SEL] select * from v$dm_ini where para_name =? and  para_value=?;^M
[SEL] select * from v$dm_ini where para_name =? and  para_value=?; EXECTIME: 4(ms) ROWCOUNT: 1(rows).^M

不显示参数名,当参数列表过多时,无法进行区分

使用 &变量名

select * from v$dm_ini where para_name = &para_name and  para_value= &para_value;
input para_name value:'COMPATIBLE_MODE'
input para_value value:2
old value 1:select * from v$dm_ini where para_name = &para_name and  para_value= &para_value;
new value 1:select * from v$dm_ini where para_name = 'COMPATIBLE_MODE' and  para_value= 2;

LINEID     PARA_NAME       PARA_VALUE MIN_VALUE MAX_VALUE DEFAULT_VALUE MPP_CHK SESS_VALUE FILE_VALUE DESCRIPTION                                                                                     PARA_TYPE
---------- --------------- ---------- --------- --------- ------------- ------- ---------- ---------- ----------------------------------------------------------------------------------------------- ---------
1          COMPATIBLE_MODE 2          0         6         0             Y       2          2          Server compatible mode, 0:none, 1:SQL92, 2:Oracle, 3:MS SQL Server, 4:MySQL, 5:DM6, 6:Teradata  IN FILE

可以显示参数名

  1. 该方式实际上类似于参数替换,并没有实现参数绑定效果,查看sqllog
[ORA]: select * from v$dm_ini where para_name = 'COMPATIBLE_MODE' and  para_value= 2;^M
[SEL] select * from v$dm_ini where para_name = 'COMPATIBLE_MODE' and  para_value= 2;^M
[SEL] select * from v$dm_ini where para_name = 'COMPATIBLE_MODE' and  para_value= 2; EXECTIME: 4(ms) ROWCOUNT: 1(rows).
  1. 针对字符串需要添加双引号
select * from v$dm_ini where para_name = &para_name and  para_value= &para_value;
input para_name value:COMPATIBLE_MODE
input para_value value:2
old value 1:select * from v$dm_ini where para_name = &para_name and  para_value= &para_value;
new value 1:select * from v$dm_ini where para_name = COMPATIBLE_MODE and  para_value= 2;
select * from v$dm_ini where para_name = COMPATIBLE_MODE and  para_value= 2;
[-2111]:Error in line: 1
Invalid column name [COMPATIBLE_MODE].
used time: 0.382(ms). Execute id is 0.

总结

两种都不是最优,都无法实现预期中绑定参数的情况下动态显示参数名进行参数值输入

相关文章:

  • 【k8s应用管理】kubernetes 配置资源管理
  • Centos修改ip
  • Playwright入门之---命令
  • 【MySQL】 常见数据类型
  • c# 2025/2/17 周一
  • 夜莺监控发布 v8.beta5 版本,优化 UI,新增接口认证方式便于鉴权
  • qt:经典窗口操作与控制
  • 使用 Flask 和 pdfkit 生成带透明 PNG 盖章的 PDF 并上传到阿里云 OSS
  • 【NLP 25、模型训练方式】
  • 数据结构:栈(Stack)及其实现
  • AI与互联网交互的四种技术路线分析
  • Linux在shell中如何提前结束脚本
  • leetcode88.合并两个有序数组
  • springboot021-基于协同过滤算法的个性化音乐推荐系统
  • Java并发编程——锁升级机制
  • SSE:用于流式传输的协议
  • 百度热力图数据获取,原理,处理及论文应用6
  • Java 开发者需要了解的 PDF 基础知识
  • 安全防御综合练习2 nat+智能选路
  • 串的基本操作--数据结构
  • 官方数据显示:我国心血管疾病患者已超3亿人
  • 复旦一校友捐赠1亿元,却不留名
  • 一箭六星,朱雀二号改进型遥二运载火箭发射成功
  • 下周或迎外贸“抢出口”高峰,跨境电商敏感货物如何便利化“登机”?
  • 中拉互联网发展与合作论坛在西安开幕
  • 龚正市长调研闵行区,更加奋发有为地稳增长促转型,久久为功增强发展后劲