Oracle ORA-00904:标识符无效解决方法(太坑了!!)
目录
- 问题描述
- 原因分析:
- 解决方案:
- 总结
ORA-00904:标识符无效 解决办法(Oracle字段名区分大小写的坑)
问题描述
我在使用jpa或者mybatis集成Oracle进行where查询的时候发现一直出现:
java.sql.SQLSyntaxErrorException: ORA-00904: “USER0_”.“PWD”: 标识符无效
下面是问题代码:
@Test void test01(){ User user = userDao.findByPwd("ccat"); System.out.println("user = " + user); }
再来看看我的dao层代码块和实体代码块
数据接口的设计如下图
原因分析:
在这里我们可以看到整体的代码逻辑是没有问题的,但是再看看数据表结构发现:pwd
字段为小写,其实PL自动生成的创建表的脚本中,表名和字段名都加了双引号。双引号在Oracle中表示区分大小写,Oracle是严格区分大小写的,未使用双引号时默认全部大写。可能很多人都会误认为oracle是不区分大小写的,原因是我们在写查询语句的时候,大小写无所谓,结果都是一样的,这只是个表面现象,只要你不使用双引号表示区分大小写,oracle会默认把你写的脚本全部转换为大写的。
解决方案:
下面是问题代码:到这里大家我想大家应该明白了,怎么使Oracle区分大小写了,就是使用双引号。
1.将数据表中的字段名改为大写。
2.经过网上的一番查找,正如上面所讲,如果我们不加双引号,那么Oracle会默认把表名和字段名全部转换为大写形式。
最简单的查询语句:SELECT *
FROM t_user
WHERE “pwd” =‘ccat’;
这样我们就能查出想要的数据啦。
总结
到此这篇关于Oracle ORA-00904:标识符无效解决的文章就介绍到这了,更多相关ORA-00904:标识符无效内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
相关推荐
-
Oracle出现ora-12154无法解析指定连接标识符的解决方法
相信使用过Oracle数据库的人一定碰到过"ORA-12154: TNS: 无法解析指定的连接标识符"错误,我在此做一个小小的总结. 在程序中连接Oracle数据库的方式与其他常用数据库,如:MySql,Sql Server不同,这些数据库可以通过直接指定IP的方式连接,但是Oracle则需要通过Oracle客户端配置网络服务名的方式来连接.否则就会出现"ORA-12154: TNS: 无法解析指定的连接标识符".配置Oracle客户端详细步骤如下: 安装好Orac
-
PL/SQL登录Oracle数据库报错ORA-12154:TNS:无法解析指定的连接标识符已解决(本地未安装Oracle需要连接服务器上的)
ORA-12154:TNS:无法解析指定的连接标识符 ORA-12154:TNS:无监听程序 错误分析一.PL/SQL 客户端登录到数据库,如果配置错误会有以上错误,如下图. 这个错误主要是pl/sql客户端的tnsnames.ora配置错误,或者是输入 database选项错误. 错误分析二.未配置环境变量 所以解决问题之前一定要配置环境变量TNS_ADMIN path添加:E:\PLSQL Developer(64)\instantclient_11_2 配置环境变量就是为了让PL/SQL
-
Oracle报存储过程中调用DBLink同义词出现错误:PLS-00201: 必须声明标识符
前几天编写一个存储过程,需要访问远程数据库的字段,于是建立一个dbLink并建了同义词: CREATE PUBLIC DATABASE LINK orcl@dbc CONNECT TO orcl IDENTIFIED BY orcl USING 'orcl'; CREATE SYNONYM mtb FOR mytable@orcl@dbc: 这里之所以用orcl@bdc为dblink的名称是为了设置global_names=true. 然后新建一个存储过程调用该同义词: v_result mtb
-
Oracle导dmp出现文件ORA-12154: TNS: 无法解析指定的连接标识符问题的解决方案
其实TNS无法解析是Oracle操作里经常遇到的问题,原因有二: (1)Oracle服务器没有装好(一般不建议重装,因为Oracle卸载不完全是没法重装的) (2)TNS没有配置 现在本文给出解决方案: 现在先测试一下tns是否可以ping,成功的界面大致如下 (1)在oracle安装路径的tns配置文件里添加如下代码 # tnsnames.ora Network Configuration File: d:\Oracle\product\10.2.0\client_1\NETWORK\ADMI
-
Oracle连接出现ora-12154无法解析指定的连接标识符
配置好rac后,两个节点用tnsping都可以ping通,但用sqlplus连接都出现以下错误,不知道哪里出了问题 [oracle@rac2 admin]$ lsnrctl status LSNRCTL for Linux: Version 9.2.0.4.0 - Production on 04-MAR-2008 08:32:26 Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved. Connecting to
-
Oracle安装监听器错误的解决方法
小白在搭载环境时,经常遇到的一个问题就是数据库安装错误,其中Oracle监听器的错误是经常出现的一个错误,搞不好还要重装系统.下面我就总结一下解决监听器配置问题的三个方法. 一.删除监听器重新配置 在cmd命令栏,sercices.msc查看服务,找到Oracle监听器,停止运行.找到配置和移植工具下的Net Configuration Assistant进行简单的删除再重新建一个即可,直接点击下一步(ps重新配置完成后需重启电脑). 二.重新配置IP地址 如果在服务中Oracle监听器已经打开
-
php pdo oracle中文乱码的快速解决方法
在/etc/profile.d/简历oracle.sh 内容如下在NLS_LANG设置编码 ORACLE_HOME=/usr/lib/oracle/12.1/client64 C_INCLUDE_PATH=/usr/include/oracle/12.1/client64 LD_LIBRARY_PATH=$ORACLE_HOME/lib #remember this is the client NLS_LANG not the server one NLS_LANG=FRENCH_FRANCE.
-
No module named ‘win32gui‘ 的解决方法(踩坑之旅)
在此把踩过的坑记录下来,我失败的方式,你们可能成功,我成功的方法,你们可能失败.这些包啊库啊的,经验也就是这样了.也许换个时间再执行一次,莫名其妙的可能就成了.bug就是这么奇妙,跟人生一样.说不出来原因,也许有一天我能成为大佬,再回来补上吧. 问题:ModuleNotFoundError: No module named 'win32gui' round 1.pycharm中settings,失败 round 2.pycharm中的Terminal执行pip install pypiwin32
-
C#连接ORACLE出现乱码问题的解决方法
目录 方法一 方法二 方法三 方法四 以前做过java项目,连接各种数据库都得心应手,最近接触c#的一个项目,连接SqlServer数据库倒也是很好用,但是遇到oracle数据库就萎了,于是搜索好多资料,有使用oracle.datamanager.dataaccess的,有System.Data.OracleClient.OracleConnection的,也有System.Data.OleDb.OdbcConnection连接的,但前两种方式都试了,依旧如此乱码,于是就试试最后一种: 方法一
-
IE里button设置border:none属性无效解决方法
某个元素设置无边框,只需要给元素设置border:none即可,当然设置border:0效果一样,但实际上两者是有性能差别的 复制代码 代码如下: border:none:边框设置为为none,不做任何处理:border:0:边框宽度设置为0像素,但是实际上border-color和border-style还是在渲染的. 然而在IE中,对于button和input元素确并不是这样,在IE6,7中border:none仅等价于border-style:none,而边框所占的空间还是在的.这导致了调
-
oracle客户端PLSQL连接失败解决方法
上周博客中写了oracle客户端连接服务器的文章,解决了在自己本本上安装的烦恼. 原来自己的电脑与服务器在一个局域网,所以每次都是远程服务器,但是远程也不是解决的办法哈,因为多个人使用同一个服务器,所以使用极其不方便,在自己本本上安装,又比较卡.因此才出现上边博客.嘻嘻,题外话.言归正传. 从家回来,继续我那工作,打开oracle客户端PLSQL,呀,突然连接不上了. 咦,这是怎么回事呢,前几天运转正常哩,回家三四天,咋成这样了呢? 遇到问题,冷静分析其错误,从错误中,可以得知,目标主机,也就是
-
Oracle Connect to Idle Instance解决方法
解决Connect to Idle Instance问题 第一步 查看Oracle_SID. [oracle@linuxserver ~]$ echo $ORACLE_SID cjdl 这里的SID要和初始化文件spfilecjdl.ora里的一样才行. [oracle@linuxserver ~]$ cd $ORACLE_HOME [oracle@linuxserver 11.2.0]$ cd dbs [oracle@linuxserver dbs]$ ls hc_cjdl.dat hc_DB
-
oracle ORA-01114、ORA-27067错误解决方法
今天有朋友问到如下一则案例,ORA-01114,ORA-27067以及OSD-04026错误同时出现: *** ACTION NAME:() 2009-04-01 09:31:00.762*** MODULE NAME:(JDBC Thin Client) 2009-04-01 09:31:00.762*** SERVICE NAME:(SYS$USERS) 2009-04-01 09:31:00.762*** SESSION ID:(145.9) 2009-04-01 09:31:00.762
-
Java前端Layer.open.btn验证无效解决方法
今天遇到了一个很可笑的问题,在.Layer弹窗open中设置了多个按钮,只有yes按钮有效,btn2点击后直接关闭弹窗,排查了2个小时后终于解决,就是btn2要return false! var index = layer.open({ type: 2, area: [width + 'px', height + 'px'], fix: false, //不固定 maxmin: true, shade: 0.3, title: title, content: url, btn: ['保存', '
随机推荐
- 告别AJAX实现无刷新提交表单
- Lua中的迭代器和泛型for学习总结
- 微信小程序 刷新上拉下拉不会断详细介绍
- iOS开发微信收款到账语音提醒功能思路详解
- 深入讲解iOS开发中的UIViewController
- PHP中的表达式简述
- Apache访问出现501 Method Not Implemented错误解决
- Python日志模块logging简介
- 飞云写的防CC攻击的ASP程序插件 打包下载
- android 手机SD卡读写操作(以txt文本为例)实现步骤
- javascript版2048小游戏
- JS实现动画兼容性的transition和transform实例分析
- linux启动级别的含义(init 0-6)
- webpack2.0搭建前端项目的教程详解
- PHP简单实现“相关文章推荐”功能的方法
- 在Django的视图中使用form对象的方法
- Linux下的硬件安装
- Node.js与Sails ~项目结构与Mvc实现及日志机制
- 一个非常强大完整的web表单验证程序Validator v1.05
- python各种语言间时间的转化实现代码