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

【达梦数据库】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.

总结

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


http://www.kler.cn/a/550179.html

相关文章:

  • deepseek和ChatGPT 4o比较
  • Springboot集成Spring AI和Milvus,验证RAG构建过程
  • Postgresql在线重建索引REINDEX INDEX CONCURRENTLY出现后缀带_ccnew和_ccold关键字且状态是invaild的索引
  • 【撰写技巧】基金项目撰写跟踪交流会
  • 一种动态地址的查询
  • 2.17学习,双向循环链表
  • BFS广度优先搜索——994.腐烂的橘子
  • 通过VSCode直接连接使用 GPT的编程助手
  • 以下是 HTML 与 HTML5 的核心区别及从基础到高级的总结:
  • window中git bash使用conda命令
  • 什么是3D视觉无序抓取?
  • 海康摄像头IPV6模式,手动,自动,路由公告
  • 【力扣Hot 100】回溯1
  • Maven 项⽬⽣命周期
  • 数字化转型实战:Odoo+工业物联网技术破解江苏食品制造行业三大核心痛点
  • Java 运行时常量池笔记(详细版
  • 基础算法# 求一个数的二进制表示当中有几个1 (C++)
  • 解惑Python:一文解决osgeo库安装失败问题
  • 多模态特征提取与融合助力高光谱+LiDAR数据分类性能飞跃
  • 图片属性——位深度