在本文中,您将会了解到关于java.sql.SQLException:ORA-00936:缺少表达式的新资讯,并给出一些关于Cause:java.sql.SQLException:ORA-00923:
在本文中,您将会了解到关于java.sql.SQLException:ORA-00936:缺少表达式的新资讯,并给出一些关于Cause: java.sql.SQLException: ORA-00923: 未找到要求的 FROM 关键字、Caused by: java.sql.SQLException: ORA-00911: inval、iBATIS:java.sql.SQLException: ORA-00911: invalid character、java – SQLException:oracle中的协议冲突的实用技巧。
本文目录一览:- java.sql.SQLException:ORA-00936:缺少表达式
- Cause: java.sql.SQLException: ORA-00923: 未找到要求的 FROM 关键字
- Caused by: java.sql.SQLException: ORA-00911: inval
- iBATIS:java.sql.SQLException: ORA-00911: invalid character
- java – SQLException:oracle中的协议冲突
java.sql.SQLException:ORA-00936:缺少表达式
下面我正在创建表。
public static final String CREATE_SQL = "CREATE TABLE " +DATABASE_TABLE +
"(ID number(10,0)," +
" CGUID VARCHAR(255)," +
" PGUID VARCHAR(255)," +
" SGUID VARCHAR(255)," +
" USERID VARCHAR(255)," +
" ULOC VARCHAR(255)," +
" SLOC VARCHAR(255)," +
" PLOC VARCHAR(255)," +
" ALOC VARCHAR(255)," +
" SITEID VARCHAR(255)," +
" ATTRIBUTEID VARCHAR(255)," +
" ATTRIBUTEVALUE VARCHAR(255)," +
" PRIMARY KEY ( ID ))";
当我尝试更新数据库表时,这是下面的UPSERT_SQL查询,我总是在 获取java.sql.SQLException:ORA-00936:缺少表达式
。我检查了我的SQL,找不到找不到表达式的地方。下面的SQL有问题吗?
public static final String UPSERT_SQL = "MERGE INTO " +DATABASE_TABLE+ " USING ( SELECT ? AS ID," + // We will maybe add this record
" ? AS CGUID," +
" ? AS PGUID," +
" ? AS SGUID,"+
" ? AS USERID,"+
" ? AS ULOC,"+
" ? AS SLOC,"+
" ? AS PLOC,"+
" ? AS ALOC,"+
" ? AS SITEID,"+
" ? AS ATTRIBUTEID,"+
" ? AS ATTRIBUTEVALUE,"+
" FROM dual ) maybe "+
" ON (maybe.ID = "+DATABASE_TABLE+".ID) "+
" WHEN MATCHED THEN "+
// We only need update the fields that might have changed
" UPDATE SET " +DATABASE_TABLE+ ".ULOC = maybe.ULOC," +DATABASE_TABLE+ ".SLOC = maybe.SLOC," +DATABASE_TABLE+ ".PLOC = maybe.PLOC," +DATABASE_TABLE+ ".ALOC = maybe.ALOC "+
" WHEN NOT MATCHED THEN "+
// Insert new record
" INSERT VALUES (maybe.ID,maybe.CGUID,maybe.PGUID,maybe.SGUID,maybe.USERID,maybe.ULOC,maybe.SLOC,maybe.PLOC,maybe.ALOC,maybe.SITEID,maybe.ATTRIBUTEID,maybe.ATTRIBUTEVALUE)";
从下面开始,我执行该UPSERT_SQL语句。
LnPDataConstants.PSTMT = LnPDataConstants.DB_CONNECTION.prepareStatement(LnPDataConstants.UPSERT_SQL); // create a statement
LnPDataConstants.PSTMT.setInt(1,(int) ind);
LnPDataConstants.PSTMT.setString(2,LnPDataConstants.CGUID_VALUE);
LnPDataConstants.PSTMT.setString(3,LnPDataConstants.PGUID_VALUE);
LnPDataConstants.PSTMT.setString(4,LnPDataConstants.SGUID_VALUE);
LnPDataConstants.PSTMT.setString(5,LnPDataConstants.UID_VALUE);
LnPDataConstants.PSTMT.setString(6,LnPDataConstants.ULOC_VALUE);
LnPDataConstants.PSTMT.setString(7,LnPDataConstants.SLOC_VALUE);
LnPDataConstants.PSTMT.setString(8,LnPDataConstants.PLOC_VALUE);
LnPDataConstants.PSTMT.setString(9,LnPDataConstants.ALOC_VALUE);
LnPDataConstants.PSTMT.setString(10,LnPDataConstants.SITEID_VALUE);
LnPDataConstants.PSTMT.setString(11,"10200");
LnPDataConstants.PSTMT.setString(12,attrValue1.toString().split("=")[1]);
LnPDataConstants.PSTMT.executeUpdate();
Cause: java.sql.SQLException: ORA-00923: 未找到要求的 FROM 关键字
<select id="querysegmentedTotalStatistics" parameterType="com.hp.operationService.messageexchange.pojo.SmsGatewayStatisticsPojo" resultType="com.hp.operationService.messageexchange.pojo.SmsGatewayStatisticsPojo">
select orgid,
(select orgname from organize b where a.orgid = b.orgid) orgname,
count(*)
<if test="relatedownsmstable!= null and relatedownsmstable!=''''">
from ${ relatedownsmstable} a
</if>
group by orgid
union all
select orgid,(select orgname from organize b where a.orgid = b.orgid) orgname,count(*)
<if test="relatedownsmstable!= null and relatedownsmstable!=''''">
from ${ relatedownsmstable} a
</if>
group by orgid
union all
select orgid,(select orgname from organize b where a.orgid = b.orgid) orgname,count(*)
<if test="relatedownsmstable!= null and relatedownsmstable!=''''">
from ${relatedownsmstable} a
</if>
group by orgid
union all
select orgid,(select orgname from organize b where a.orgid = b.orgid) orgname,count(*)
<if test="relatedownsmstable!= null and relatedownsmstable!=''''">
from ${ } a
</if>
group by orgid
</select>
书写动态sql的时候报:
Error querying database. Cause: java.sql.SQLException: ORA-00923: 未找到要求的 FROM 关键字
请问大神,我写的哪里错了,该怎么写?在线等
Caused by: java.sql.SQLException: ORA-00911: inval
一.错误内容
Caused by: java.sql.SQLException: ORA-00911: invalid character
二.错误排查
1.出现这种情况多半情况是你的SQL 使用中文的标点符号,请仔细检查你SQL格式
Caused by: java.sql.SQLException: ORA-00911: invalid character
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:745)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:219)
at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:970)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1190)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3370)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3454)
at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_executeUpdate(FilterChainImpl.java:2723)
at com.alibaba.druid.wall.WallFilter.preparedStatement_executeUpdate(WallFilter.java:616)
at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_executeUpdate(FilterChainImpl.java:2721)
at com.alibaba.druid.filter.FilterAdapter.preparedStatement_executeUpdate(FilterAdapter.java:1070)
at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_executeUpdate(FilterEventAdapter.java:491)
at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_executeUpdate(FilterChainImpl.java:2721)
at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.executeUpdate(PreparedStatementProxyImpl.java:145)
at com.alibaba.druid.pool.DruidPooledPreparedStatement.executeUpdate(DruidPooledPreparedStatement.java:253)
at com.jfinal.plugin.activerecord.DbPro.update(DbPro.java:260)
at com.jfinal.plugin.activerecord.DbPro.update(DbPro.java:277)
iBATIS:java.sql.SQLException: ORA-00911: invalid character
我于2011-07-04 22:11在 iteye 中写的博客,现导入!
项目用到iBATIS,编码期间,程序报错,抛出异常:
java.sql.SQLException: ORA-00911: invalid character
检查好长时间,终于找到问题的所在,令人吐血的是,这又是一个分号引发的异常。
具体如下:
<select id="showCompanyByProvince" parameter>
SELECT i.ENT_NAME AS entName,
……
WHERE i.PROV_CODE=#pCode#;
</select>
sql语句后面多了一个分号,删除即可。
吐血,晕菜!
java – SQLException:oracle中的协议冲突
我有一个在RedHat Linux上运行的应用程序.数据库和应用程序共同驻留在机器上.
使用的Oracle版本:Oracle 11g R2(11.2.0.3.0)
使用的JDBC驱动程序:12.1.0.1
使用的Java:jdk1.7.0.65 32位
我遇到过很多论坛,其中这个错误被指出是一个驱动程序问题但是在所有那些论坛中使用的oracle版本更高且驱动程序版本更旧并且更改驱动程序解决了问题.但在我的情况下是Oracle版本较低但驱动程序版本较高.因此,在这种情况下,驱动程序的更高版本可能是一个问题?
此外,当达到DB上的最大连接数时,也会出现此协议违规?
错误信息:
java.sql.sqlException: Protocol violation: [72]
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:464)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:192)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:207)
at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:884)
at oracle.jdbc.driver.OracleStatement.executeMaybedescribe(OracleStatement.java:1167)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1289)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3584)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3628)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1493)
解决方法
您始终可以尝试使用最新的JDBC瘦驱动程序,希望能够解决该错误.截至今天,最新的是12.1.0.2.
如果这没有帮助,那么您需要联系Oracle支持.您将被要求提供的第一件事是提供发生此错误的连接的sqlnet跟踪.这将有助于Oracle工程师了解发生故障时网络上发生的情况.
要打开sqlnet跟踪,请在服务器上编辑sqlnet.ora文件并添加
TRACE_LEVEL_SERVER = 16
这将为跟踪控制器(在服务器上)中的每个连接添加跟踪文件.不要在生产系统上执行此操作,因为它会大大减慢系统速度并产生大量痕迹.
祝好运.
今天的关于java.sql.SQLException:ORA-00936:缺少表达式的分享已经结束,谢谢您的关注,如果想了解更多关于Cause: java.sql.SQLException: ORA-00923: 未找到要求的 FROM 关键字、Caused by: java.sql.SQLException: ORA-00911: inval、iBATIS:java.sql.SQLException: ORA-00911: invalid character、java – SQLException:oracle中的协议冲突的相关知识,请在本站进行查询。
本文标签: