oracle执行大sql,mybatis连接oracle执行sql语句出现ORA
使用mybatis连接oracle数据库进行查询,最好确保表命全大写,否者会出现ORA-00904: invalid identifier的问题
注:本人使用的mybatis版本是3.0.5
二、问题描述:
我使用ibator工具产生的代码,有一个Dao的测试类,但是一执行就出现了ORA-00904: invalid identifier,如图:
原因分析,大部分情况下是由于引用了不存在的列名导致的。 解决的办法就是检查自己引用的列名称是否一致。对于某些工具生成的sql,可能导致列名称和期望不符的情况,比如,有些工具生成的列名称会带双引号,从而导致此错误。
经过查询和本人的实践验证,oracle执行查询时(这里以11g为例),对于特殊的字段命名有着非常严格的语法要求,如果是字段名称按照单词首字母大写的规范进行命名,在进行条件查询的时候必须,字段名称必须与原来命名一样并且要加上双引号,否则会包ORA-00904: invalid identifier。以下是本案例的测试截图:
表结构:
执行查询:
从执行的结果可以知道,最终oracle在执行sql语句的时候把条件查询的字段名转成了全大写,遇到表中没有找到相关的字段(区分大小写),就出现了此错误。查询指定字段的值也是如此:
表结构:
执行查询:
三、解决办法
总结:
3.1oracle在执行sql语句进行查询的时候,默认的情况下(查询的时候不给字段加双引号),会将字段名称转换成全大写之后再到表中进行匹配查询,比如:执行select from dept where id=1,则实际执行的是:select from DEPT where ID=1,这里表名和字段名全部都会转成全大写去匹配查询,一旦匹配不到(真正匹配字段名和名的时候区分大小写),则会报错误。
3.2如果设计表的时候不想表名和字段名都全大写,则在进行查询的时候需要在表名或者字段名称加上双引号(相当于告知oracle不要对sql语句中指定的表名或者字段名转成全大写),并且区分大小写,这样执行查询才不会发生错误。
##解决方法##
因此解决的办法就是,在给字段名称进行命名的时候,建议全大写,对于表名也是全大写命名,这样不管是进行条件查询还是查询指定字段的名称的时候,都不需要严格区分大小写了并且还要加上双引号了,Oracle会自动帮你先转成全大写之后再进行匹配查询。
oracle执行大sql,mybatis连接oracle执行sql语句出现ORA相关推荐
- sql server配置连接oracle数据库,MS SQL Server连接Oracle
MS SQL Server连接Oracle 1. 安装oracle 10G客户端 要访问oracle数据库必须安装oracle客户端.安装oracle客户端有两种方式,即完整安装和立即安装,这两种方 ...
- PL/SQL developer连接oracle出现“ORA-12154:TNS:could not resolve the connect identifier specified”问题的解决
PL/SQL developer连接oracle出现"ORA-12154:TNS:could not resolve the connect identifier specified&quo ...
- PL/SQL Developer连接Oracle 11g在Win8 64位系统下乱码
PL/SQL Developer在64位系统上连接Oracle,需要安装32位Oracle client客户端,使用后,发现操作数据库出现乱码的情况.经过查找资料,解决此问题,方法如下: 需要在系统的 ...
- sql怎么与oracle连接,sql怎么连接oracle数据库
慕田峪9158850 第一步 安装好oracle客户端,并配置好TNS信息先配置好oracle的TNS连接信息.这个跟正常情况使用oracle完全一样ORCL =(DESCRIPTION =(ADDR ...
- Spring Boot整合MyBatis连接Oracle数据库
步骤如下: 1.Spring Boot项目添加MyBatis依赖和Oracle驱动: 1 2 3 4 5 6 7 8 9 10 <dependency> <groupId>o ...
- pl/sql远程连接oracle服务器问题(各种情况) .,plsql远程连接oracle服务器问题(各种情况).docx...
plsql远程连接oracle服务器问题(各种情况).docx PLSQL远程连接oracle服务器问题(各种情况)1.病毒软件的防火墙可以关闭试试在连接.2.环境变量path里面没有加上%ORACL ...
- PL/SQL远程连接Oracle数据库服务器
使用PL/SQL Developer 远程连接 Oracle数据库(10.2.0.1 RHEL AS 5.4),见附件 转载于:https://blog.51cto.com/longtian001 ...
- linux下安装oracle客户端,实现远程连接oracle库,导出数据表
工作中用到不安装oracle服务端,只安装客户端. 一:首先要到下载rpm包,使用如下,命令安装 rpm -ivh oracle/oracle-instantclient11.2-basic-11.2 ...
- python连接oracle报错dpi 1047_python连接Oracle的方式以及过程中遇到的问题
一.库连接步骤 1.下载cx_Oracle模块 下载步骤 工具 pycharm :File--->右键setting--->找到Project Interpreter -----> ...
- python 连接 oracle 循环,4.使用cx_Oracle连接Oracle(高级篇)
[Python运维]使用cx_Oracle连接Oracle(高级篇) 这节的内容较多,分别是: 使用sys用户连接Oracle数据库 通过函数执行SQL语句 通过读取文件内的内容来执行SQL语句 使用 ...
最新文章
- 关于Presenting view controllers on detached view ...
- SAP HUM 内向交货单凭证流和Relationship Browser
- 浅析日常网站建设中运营与优化的工作重点
- Struts2---入门
- “三通一达”创始人均来自桐庐 有的村人均GDP上亿
- 领英全球副总裁:如何做到 5 亿用户增长的 ?
- matlab 层次聚类
- 框架学习之Hibernate 第十节 事务原理与分析
- 2017.10.6 单词 思考记录
- model.evaluate 输出出一大串 ======================
- pythonpandas入门_pyhton pandas数据分析基础入门(一文看懂pandas)
- 《pr2019》怎么加字幕
- java随机生成测试数据
- dropbox无法访问后国内网盘对比选择
- js使用Canvas将多张图片合并成一张
- Spring Boot多数据源配置并通过注解实现动态切换数据源
- 基于OpenGL的雷达P显的系统设计与仿真 PPI_雷达仿真_雷达模拟器_雷达目标_雷达ppi_PPI显示器_源码
- ITASCA PFC 2D3D DISCERETE ELEMENT MODELING
- 嵌入式开发和应用技术大全
- 总结什么是SPU,SKU(复习)