如何在sqlplus中定义名称为“1”的绑定变量
SQL*Plus定义纯数字命名绑定变量的解决方案
SQL*Plus默认不允许直接使用纯数字作为变量名,你只需要用双引号包裹纯数字的变量名,强制将其识别为合法标识符即可:
- 定义变量的正确语法:
VAR "1" VARCHAR2(1);
- 给变量赋值时同样需要用双引号包裹变量名:
EXEC :"1" := 'X';
- 直接执行你的目标查询即可,SQL文本和应用生成的完全一致,可以命中v$sqlarea中存储的对应执行计划:
SELECT * FROM dual WHERE dummy=:1;
注意事项
- 双引号包裹的Oracle标识符大小写敏感,你需要保证双引号内的变量名和应用使用的绑定变量名完全一致
- 绑定变量的数据类型、长度需要和应用侧的定义保持一致,避免因变量类型隐式转换导致无法命中原有执行计划
内容的提问来源于stack exchange,提问作者joseyluis
相关产品推荐
相关产品推荐

