我正在尝试执行以下查询,该查询基于少量条件来获取不同的数据。在这里,我在cookie字段上使用了类似运算符,而我的cookie字段的数据类型很长。
select * from (
select to_char(audit_logs.REQUEST_TIME, 'dd/mm/yyyy HH24:mm:ss') as event_time,
audit_logs.CLIENT_REQUEST as client_request,
audit_logs.RESPONSE_CODE as responsecode,
audit_logs.SIZEOFOBJECT as sizeofobject,
audit_logs.COOKIES as cookies,
audit_logs.ENV as env,
audit_logs.USERID as user_id,
audit_logs.POST_DATA as post_data,
audit_logs.AUTHSCHEME as authscheme,
audit_logs.AUTHMARKET as authmarket,
audit_logs.X_REQUESTED_WITH as x_requested_with,
audit_logs.METHOD_TYPE as method_type,
audit_logs.HOSTNAME as hostname,
audit_logs.SESSION_COOKIES as session_cookies,
audit_logs.X_FORWARDED_FOR as x_forwarded_for,
audit_logs.USER_AGENT as user_agent,
audit_logs.GEOIP_COUNTRY_CODE as country_code
from audit_logs
where
REQUEST_TIME >= to_date(:fromdate,'dd/mm/yyyy')
and REQUEST_TIME <= to_date(:todate,'dd/mm/yyyy HH24:MI:SS')
and COOKIES LIKE '%TANID=%'
order by REQUEST_TIME DESC)
where ROWNUM <= :recordslimit
order by event_time DESC;
在执行上述查询时,我遇到以下错误:
ORA-00932: inconsistent datatypes: expected CHAR got LONG
00932. 00000 - "inconsistent datatypes: expected %s got %s"
有人可以解决该问题吗?
注意:由于我的数据库中包含大量数据,因此更改数据类型将是一项耗时的工作。
答案 0 :(得分:1)
您正在查询中定义三个命名参数-fromdate,todate和recordslimit。该查询在fromdate和todate参数上使用to_date,因此它们应为char数据类型。因此,在这些参数上传递实际值时,请检查您正在使用的实际数据类型。可能还会有其他捕获物,但这是我唯一想到的捕获物。