错误信息的弹出框

异常的内容:

“Oracle.DataAccess.Client.OracleException”类型的未经处理的异常在 DBFSR.dll 中发生   其他信息: External component has thrown an exception.

捕获的异常信息:

Oracle.DataAccess.Client.OracleException ORA-00933: SQL 命令未正确结束    at Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, OpoSqlValCtx*

解决方案

本人的Oracle语句为

StringBuilder strSql = new StringBuilder();
            strSql.Append("insert into HP_TABLE(");
            strSql.Append("TS_ID,DATE_SOLAR,DATE_LUNAR,HP_FID,HOUR_00,"+
                "HOUR_01,HOUR_02,HOUR_03,HOUR_04,HOUR_05,HOUR_06,HOUR_07,HOUR_08,HOUR_09,HOUR_10,"+
                "HOUR_11,HOUR_12,HOUR_13,HOUR_14,HOUR_15,HOUR_16,HOUR_17,HOUR_18,HOUR_19,HOUR_20,"+
                "HOUR_21,HOUR_22,HOUR_23,\"SUM\",\"AVG\",G1_T,G1_L,G2_T,G2_L,D1_T,D1_L,D2_T,D2_L,UPDATE_TIME,DETAILS)");
            strSql.Append(" values (");
            strSql.Append(":TS_ID,:DATE_SOLAR,:DATE_LUNAR,:HP_FID,:HOUR_00,"+
                ":HOUR_01,:HOUR_02,:HOUR_03,:HOUR_04,:HOUR_05,:HOUR_06,:HOUR_07,:HOUR_08,:HOUR_09,:HOUR_10," +
                ":HOUR_11,:HOUR_12,:HOUR_13,:HOUR_14,:HOUR_15,:HOUR_16,:HOUR_17,:HOUR_18,:HOUR_19,:HOUR_20," +
                ":HOUR_21,:HOUR_22,:HOUR_23,:\"SUM\",:AVG,:G1_T,:G1_L,:G2_T,:G2_L,:D1_T,:D1_L,:D2_T,:D2_L,:UPDATE_TIME,:DETAILS)");
经检查,发现是关键字冲突,在上面“AVG”关键字与系统的函数冲突,只将上面的AVG加上引号还不够,还要将下面的AVG参数名加上引号。

PS,其实经过作者测试,SUM的参数名可以不加引号。

  ...

  ":HOUR_21,:HOUR_22,:HOUR_23,:\"SUM\",:\"AVG\",:G1_T,:G1_L,:G2_T,:G2_L,:D1_T,:D1_L,:D2_T,:D2_L,:UPDATE_TIME,:DETAILS)");

  ...

这样即可解决问题。进行正常的插入操作。

经验:

(1)对于较长的sql语句,最好将其粘贴到Word中进行分段识别,否则很难保证正确。

(2)一般写作的SQL语句,可以现在如PL/SQL中进行测试正确与否。

(3)平时要多SQL语句,包括高级的操作语法,如建立规则,事物,挎库数据转移,触发,数据表设计,实时更新数据的触发与操作。以及典型的即时通讯,并发操作,海量查询,索引,备份与恢复,安全等内容。

向Oracle中插入记录时,出现“Oracle.DataAccess.Client.OracleException ORA-00933 ”错误的更多相关文章

  1. 向oracle中插入date时,持久层sql怎么写???

    public class EmpDao { public void addEmp(Emp emp) throws SQLException { QueryRunner runner = new Que ...

  2. 向mysql数据库中插入数据时显示“Duplicate entry '1′ for key ‘PRIMARY' ”错误

    错误情况如题,出现这个错误的原因十分简单: 很明显,这是主键的问题. 在一张数据表中是不能同时出现多个相同主键的数据的 这就是错误的原因,解决的方法: 1.可以将这张表设置成无主键(mysql支持,其 ...

  3. MyBatis在Oracle中插入数据并返回主键的问题解决

    引言:  在MyBatis中,希望在Oracle中插入数据之时,同一时候返回主键值,而非插入的条数... 环境:MyBatis 3.2 , Oracle. Spring 3.2   SQL Snipp ...

  4. for循环往Oracle中插入n条数据,主键自增

    1.主键自增实现方法:http://www.cnblogs.com/Donnnnnn/p/5959871.html 2.for循环往Oracle中插入n条数据 BEGIN .. loop insert ...

  5. 在Oracle中更新数据时,抛出:ORA-01008: not all variables bound

    在Oracle中更新数据时,抛出了一个 :ORA-01008 not all variables bound, 我的理解是不是所有的变量/参数都有边界,不懂: 后来知道了,原来是“不是所有变量/参数都 ...

  6. java.sql.date与java.util.date区别以及数据库中插入带时分秒的时间

    java.sql.Date,java.sql.Time和java.sql.Timestamp三个都是java.util.Date的子类(包装类). java.sql.Date是java.util.Da ...

  7. MyBatis插入记录时返回主键id的方法

    有时候插入记录之后需要使用到插入记录的主键,通常是再查询一次来获取主键,但是MyBatis插入记录时可以设置成返回主键id,简化操作,方法大致有两种. 对应实体类: public class User ...

  8. 在MySQL向表中插入中文时,出现:incorrect string value 错误

    在MySQL向表中插入中文时,出现:incorrect string value 错误,是由于字符集不支持中文.解决办法是将字符集改为GBK,或UTF-8.      一.修改数据库的默认字符集   ...

  9. 触发器修改后保存之前的数据 表中插入数据时ID自动增长

    create or replace trigger t before update on test5 for each rowbegin insert into test55 values (:old ...

随机推荐

  1. poj 2031 Building a Space Station(最小生成树,三维,基础)

    只是坐标变成三维得了,而且要减去两边的半径而已 题目 //最小生成树,只是变成三维的了 #define _CRT_SECURE_NO_WARNINGS #include<stdlib.h> ...

  2. java.util.Date和java.sql.Date的区别及应用

    java.util.Date 就是在除了SQL语句的情况下面使用java.sql.Date 是针对SQL语句使用的,它只包含日期而没有时间部分它都有getTime方法返回毫秒数,自然就可以直接构建ja ...

  3. lintcode:两个数的和

    题目 两数之和 给一个整数数组,找到两个数使得他们的和等于一个给定的数target. 你需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标.注意这里下标的范围是1到n,不 ...

  4. JavaWeb项目开发案例精粹-第2章投票系统-003Dao层

    1. package com.sanqing.dao; import java.util.List; import com.sanqing.bean.Vote; import com.sanqing. ...

  5. arcengine C# 读写lyr(转)

    写lyr { IFeatureLayer LineLayer = axMapControl1.get_Layer(0) as IFeatureLayer;            ILayerFile ...

  6. HDU 3038 How Many Answers Are Wrong 并查集带权路径压缩

    思路跟 LA 6187 完全一样. 我是乍一看没反应过来这是个并查集,知道之后就好做了. d[i]代表节点 i 到根节点的距离,即每次的sum. #include <cstdio> #in ...

  7. SVN update: 'skipped' message

    在eclipse中用svn插件同步google code老是服务器连接time out!就只有通过检出项目再更新啦,结果遇到个SVN update: 'skipped' message问题,还是sta ...

  8. 车牌识别LPR(一)-- 研究背景

    在年尾用了几天的时间将2014年的所有工作都总结了一遍,将之前的文档综合了下. 以下是LPR系统,车牌识别的一些总结资料. 第一篇:LPR研究背景 汽车的出现改变了以往出行徒步和以马代步的时代,极大地 ...

  9. Tomcat原理 分类: 原理 2015-06-28 19:26 5人阅读 评论(0) 收藏

    Tomcat的模块结构设计的相当好,而且其Web 容器的性能相当出色.JBoss直接就使用了Tomcat的web容器,WebLogic的早期版本也是使用了Tomcat的代码. Web容器的工作过程在下 ...

  10. How to upgrade gcc using apt-get ?

    在toolchain/test下已经有打包好的gcc,版本有4.x.5.0.6.0等,用这个PPA升级gcc就可以啦! 首先添加ppa到库: 1 sudo add-apt-repository ppa ...