在ORACLE中存储过程变量名和表字段名相同

摘要:
最后,发现我的字段名与变量名相同。检查数据后发现,如果存储过程变量名与ORACLE中的表字段名相同,则首先将其视为字段名。

1.事件概述

今天再写存储过程使用变量没注意到问题,导致SQL执行缓慢,找了许久才发现哪里有问题。

2.发现问题

在存储过程中执行下图sql需要20秒左右,执行计划发现走了全表扫描,而在存储过程中相同的SQL不会有问题。

在ORACLE中存储过程变量名和表字段名相同第1张

然后我单独把SQL拿出来跑,将变量名替换成真实数据,1秒就执行出来了,执行计划走了索引。

存储过程重新看了很久,是不是哪里有问题,变量哪里有问题。

最后才反应过来原来我字段名跟变量名写成一样了,然后查资料发现原来在ORACLE中如果存储过程变量名和表字段名一样的话,会优先当做字段名来看待。

免责声明:文章转载自《在ORACLE中存储过程变量名和表字段名相同》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇mysql-utf8mb4问题!Java 泛型(一)作用和使用下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

spring boot 中用@value给static变量赋值

需求:改写一个JedisUtils,工具类,所以最好用静态方法和变量。 @value("${redis.host}") private static String redisHost; 运行后发现注入失败。解决办法:看了网上大家的说法,有用中间变量的,有用set方法赋值的。试了一下都是可以成功赋值的, 以下引用别人的代码: 给参数注入,执行set方法(这里...

JS基础知识1

基础点: es5 原型链、 2. 继承、 3. this指向、 4. new操作符、 5. 隐式转换、 6. 事件循环机制macro micro、 7. 基础类型、 8. 数据去重/交集/并集、 9. 判断是否为数组、 10. 变量声明提升、 11. 函数作用域、 12. 节流/防抖、 13.  apply/call、 14.  jsonp跨域、 15....

SAP Study Notes: BW Queriy-Variables(变量)

About Variable:1.Variable 是和InfoObject绑定的,可用于任何含有该IO的query中。2.Variable有以下几种类型:Characteristic:用于限制Char。 Text:用于在报表动态显示文本。 Hierarchy:用于限制Hierarchy。 Hieararchy Node:用于限制Hierarchy Nod...

11个提升编程能力的小方法

编程是当今社会最为实用的技能之一。从能够创造一个公司网站到知道怎么修复一个重定向错误,这些技能带来的价值,不管是对雇主还是对程序员自身,都是无法估量的。 但是,保持你当前的状态,停滞不前,那你永远无法成为一个非常优秀的程序员。所以,请认真阅读下文,我总结了一些提升编程能力的小方法。 Step 1 清晰地分析问题。 如果在解决问题前不能先清楚问题,了解具体状...

C++ 变量作用域

作用域是程序的一个区域,一般来说有三个地方可以定义变量: 在函数或一个代码块内部声明的变量,称为局部变量。 在函数参数的定义中声明的变量,称为形式参数。 在所有函数外部声明的变量,称为全局变量。 局部变量 在函数或一个代码块内部声明的变量,称为局部变量。它们只能被函数内部或者代码块内部的语句使用。 #include<iostream> us...

PHP中的全局变量global和$GLOBALS的区别

1.global Global的作用是定义全局变量,但是这个全局变量不是应用于整个网站,而是应用于当前页面,包括include或require的所有文件。 但是在函数体内定义的global变量,函数体内可以使用,在函数体外定义的global变量不能在函数体内使用,具体看下面示例。 (1)在函数体内定义global变量,函数体内可以使用。 <?php...