sql - SQL 调优顾问中的绑定日期
问题描述
我正在尝试使用 Oracle SQL Developers SQL Tuning advisor 将日期绑定到变量,但它会将其识别为 aVARCHAR2
而不是DATE
. 有没有办法指定你绑定的参数的数据类型?
SQL:
SELECT * FROM Actv
WHERE ActvId = :in_UserGrpCds AND ActvTime >= :in_FromDate AND ActvTime < :in_ThruDate
OFFSET :in_CurrRecordOffset FETCH NEXT :in_NextRecordOffset ROWS ONLY;
get被in_ThruDate
绑定为 aVARCHAR2
并且它不能运行曲调。
Bind Variables :
1 - (NUMBER):1091
2 - (NUMBER):0
3 - (VARCHAR2):07-21-2018
4 - (NUMBER):50000
5 - (VARCHAR2):08-21-2018
-------------------------------------------------------------------------------
ERRORS SECTION
-------------------------------------------------------------------------------
- ORA-00932: inconsistent datatypes: expected DATE got NUMBER
-------------------------------------------------------------------------------
解决方案
我们只绑定字符串/数字/空值,因此请调整您的 SQL 以包含 to_date:
SELECT * FROM Actv
WHERE ActvId = :in_UserGrpCds
AND ActvTime >= to_date(:in_FromDate ,'MM-DD-YYYY')
AND ActvTime < to_date(:in_ThruDate ,'MM-DD-YYYY')
OFFSET :in_CurrRecordOffset FETCH NEXT :in_NextRecordOffset ROWS ONLY;
推荐阅读
- php - Sqlsrv dll does not properly load on IIS
- machine-learning - 线性回归的梯度下降无法正常工作 beta 参数被初始化为零或一
- c - 通用值初始化分配器
- java - 如何将字符串中的','替换为'\ n'?
- python - TypeError: module() 最多接受 2 个参数(3 个给定)代码取自复数课程
- excel - 为什么我不能在日期或长时间上使用 Application.WorksheetFunction.Year()?
- windows - 在 Windows 上重启后 Docker 不会自动启动
- r - 正则表达式 R:选择正则表达式选择的上面或下面的行,同时满足另一个正则表达式条件
- flutter - 从 Future Either 方法调用两个方法,两者都具有 Future Either 返回类型
- android - 如何使用 RxJava 将单个项目添加到 PagedList