`
星夜的遐想
  • 浏览: 186911 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

执行SQL语报宝“无效字符”异常

阅读更多

说起来惭愧,总是犯一些小错误,纠结半天,这不应为一个分号的玩意折腾了好半天!

 

错误时在执行SQL语句的时候发出的,信息如下:

 

[default][2012-11-22 11:35:58,552][ERROR]
[com.primeton.common.connection.impl.synchronization.TraceLoggerStatementSynchronization:49] 
Sql[INSERT INTO ASE_SYSTEM_LOG (LOGID,USERID,USERNAME,LOGINTIME) VALUES(?,?,?,?);] execute error.
java.sql.SQLException: ORA-00911: 无效字符

 

 

程序代码如下:

 

String sql="INSERT INTO ASE_SYSTEM_LOG (LOGID,USERID,USERNAME,LOGINTIME) VALUES(?,?,?,?);";
		
	
			
		            con = this.getDataSource().getConnection();
			
		                ptt=con.prepareStatement(sql);
			
			ptt.setLong(1, logId);
			ptt.setLong(2, userId);
			ptt.setString(3,userName);
			ptt.setString(4, loginDate);
			
			ptt.executeUpdate();

 当执行ptt.excuteUpdate()方法的时候,直接报以上的错。

 

以为是sql中参数赋值有问题,但是将sql语句直接copy到PLSQL中执行,却没问题,纠结了好久,原来是

 

"INSERT INTO ASE_SYSTEM_LOG (LOGID,USERID,USERNAME,LOGINTIME) VALUES(?,?,?,?);"

 

中多了一个“;”号,坑哥啊,就这玩意,我顿时无语!!!

 

好啦,如果有报字符异常问题的盆友可以参考下,没有的就永远不要再发这样的低级错误啦!

 

告诫自己一句话:不细心是做不好程序的。

分享到:
评论

相关推荐

    mybatis 报空值异常

    当 MyBatis 在执行 SQL 语句时,如果参数是 `null` 而没有明确指定对应的 JDBC 类型,那么就会抛出类似于以下的异常: ``` Error setting null for parameter #1 with JdbcType OTHER. Try setting a different ...

    oracle ora-各种常见java.sql.SQLException归纳

    这种错误通常是由于开发者在编写 SQL 语句时,忘记了某个分号或写错了分号,导致 Oracle 无法执行 SQL 语句。解决这个错误的方法是,检查 SQL 语句中的分号是否正确,确保 SQL 语句正确结束。 ORA-01722: 无效数字 ...

    oracle脚本 常用的数据库sql及pl\sql语言

    1. 块结构:PL/SQL由声明部分、执行部分和异常处理部分组成,如: ```sql DECLARE var1 数据类型; BEGIN -- 执行部分 EXCEPTION WHEN 错误类型 THEN -- 异常处理 END; ``` 2. 控制流:包括IF-THEN-ELSE、CASE、...

    ORACLE入门基础,本地动态SQL执行语句

    ### ORACLE 入门基础:本地动态 SQL 执行语句 #### 一、概述 本文旨在为初学者介绍 Oracle 数据库的基本概念,并重点讲解如何在 Oracle 中使用 PL/SQL 进行动态 SQL 的编写与执行。此外,文章还涵盖了 PL/SQL 的...

    DB2常见sql异常负数码解释

    这些异常通常会在执行SQL语句时出现,并通过特定的SQL代码来标识具体的错误类型。 #### 二、DB2 SQL异常分类及解释 ##### 1. SQL语句成功完成 **SQL Code:** `0000` **Description:** 表示SQL语句成功完成。 ####...

    字符过滤字符过滤字符过滤

    3. **异常处理**:对于严重违反规则的输入,过滤器可能抛出自定义的异常,提示用户输入无效。 4. **过滤策略**:可能有多种过滤策略,比如黑名单(预先定义不安全字符)和白名单(仅允许特定字符),开发者可以根据...

    java检查sql语法是否正确

    在Java编程中,检查SQL语法是否正确是一项重要的任务,它能确保我们的应用程序不会因为无效的SQL语句导致运行时错误。通常,我们可以通过使用数据库驱动提供的API或者利用第三方库来实现这一功能。在这个场景中,...

    PL/SQL过程编程的异常解释

    ### PL/SQL过程编程中的异常处理详解 在数据库应用程序开发中,异常处理是确保程序健壮性和稳定性的重要手段之一。PL/SQL(Procedure Language for SQL)作为Oracle数据库的标准编程语言,提供了丰富的异常处理机制...

    SQL错误状态的提示信息

    SQLSTATE是一系列五位字符代码,用于标识SQL语句执行的状态。每个SQLSTATE由两个部分组成:第一位表示错误类别,后面四位则代表具体的错误或警告信息。SQLSTATE按照类别分为不同的组,便于管理和查询。 #### ...

    DB2异常消息(大全)

    15. 42601-42637:这部分错误主要涉及SQL语法错误,如无效的字符、丢失的标记、无效的常量、错误的参数数目等,表明SQL语句的结构或语法有问题。 以上是对DB2异常消息中类代码40和42的部分解析,理解并解决这些异常...

    DB2 SQL 消息

    这些消息通常包含了关于执行SQL语句时出现的问题详情,包括错误代码、描述以及可能的解决方案。通过理解这些SQL消息,用户可以更有效地调试和维护其数据库应用。 #### 二、SQL0440N - 找不到具有兼容自变量的类型为...

    SQL注入之如何检测与判断详细过程

    8. **导入导出**:如果以上方法均无效,可以考虑使用SQL注入工具(如SQLMap)的导入导出功能来进一步分析。 9. **延时注入变体**:如果从步骤1直接跳到这里,可以尝试直接跟payload,或在参数后面加上单引号或双引号...

    DB2异常代码查询大全

    63. **-02942601**:表示SQL语句中包含无效字符。 64. **-06042815**:表示对象权限问题。 65. **-08442612**:表示操作系统级别的错误。 66. **-09742601**:表示数据类型转换问题。 67. **-10154001**:表示SQL...

    postgresql的类似sqlserver的isdate方法

    在SQL Server中,`ISDATE`是一个非常实用的函数,用于检查一个字符串是否能被解析为合法的日期格式。而在PostgreSQL数据库系统中,并没有内置与SQL Server完全相同的`ISDATE`功能。然而,我们可以自定义一个类似的...

    SQL注入攻击与防御 第2版.pdf

    2. 注释注入:在输入中插入注释符号,使部分SQL语句无效,改变原有查询逻辑。 3. Error-Based注入:通过引发错误信息来获取数据库结构或数据。 4. Time-Based注入:通过延迟查询执行时间来判断数据库结构。 防御...

    DB2 SQL错误西信息查询

    - **34** - 无效字符异常 - **36** - 数据异常 - **38** - 日期和时间函数异常 - **39** - 日期和时间截断异常 - **3B** - 保存点异常 - **40** - 事务处理异常 - **42** - 语法或访问规则异常 - **44** - WITH ...

    Oracle的pl/sql和sqlplus

    SQL*Plus是Oracle提供的一种命令行工具,可以用来编写和执行SQL及PL/SQL语句。 在PL/SQL中,语句块是基本的执行单元,可以包含声明、初始化、控制结构(如IF-THEN-ELSE、WHILE、FOR循环)以及异常处理。在实验中,...

    C#实现SQL连接窗体

    6. **数据库操作**: 一旦建立了连接,就可以执行SQL命令,如SELECT、INSERT、UPDATE和DELETE,或者使用`SqlCommand`对象执行存储过程。`SqlDataAdapter`和`DataSet`可以用来填充数据网格或其他UI控件,展示数据库中...

    DB2常见SQL问题解释

    - **验证权限和访问控制**:确保执行SQL语句的用户拥有足够的权限,可以访问所涉及的数据库对象。 - **优化查询性能**:利用DB2提供的查询分析工具,评估查询效率,调整索引策略,优化表设计。 - **加强异常处理**...

    C#连SQL数据库 的登陆界面

    SqlCommand类用于执行SQL语句,SqlDataReader则用于读取结果。创建SqlCommand对象,设置其CommandText属性为SQL查询,将SqlConnection对象作为参数传入。执行SqlCommand的ExecuteReader()方法,返回SqlDataReader,...

Global site tag (gtag.js) - Google Analytics