说起来惭愧,总是犯一些小错误,纠结半天,这不应为一个分号的玩意折腾了好半天!
错误时在执行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 在执行 SQL 语句时,如果参数是 `null` 而没有明确指定对应的 JDBC 类型,那么就会抛出类似于以下的异常: ``` Error setting null for parameter #1 with JdbcType OTHER. Try setting a different ...
1. 块结构:PL/SQL由声明部分、执行部分和异常处理部分组成,如: ```sql DECLARE var1 数据类型; BEGIN -- 执行部分 EXCEPTION WHEN 错误类型 THEN -- 异常处理 END; ``` 2. 控制流:包括IF-THEN-ELSE、CASE、...
### ORACLE 入门基础:本地动态 SQL 执行语句 #### 一、概述 本文旨在为初学者介绍 Oracle 数据库的基本概念,并重点讲解如何在 Oracle 中使用 PL/SQL 进行动态 SQL 的编写与执行。此外,文章还涵盖了 PL/SQL 的...
这种错误通常是由于开发者在编写 SQL 语句时,忘记了某个分号或写错了分号,导致 Oracle 无法执行 SQL 语句。解决这个错误的方法是,检查 SQL 语句中的分号是否正确,确保 SQL 语句正确结束。 ORA-01722: 无效数字 ...
这些异常通常会在执行SQL语句时出现,并通过特定的SQL代码来标识具体的错误类型。 #### 二、DB2 SQL异常分类及解释 ##### 1. SQL语句成功完成 **SQL Code:** `0000` **Description:** 表示SQL语句成功完成。 ####...
在Java编程中,检查SQL语法是否正确是一项重要的任务,它能确保我们的应用程序不会因为无效的SQL语句导致运行时错误。通常,我们可以通过使用数据库驱动提供的API或者利用第三方库来实现这一功能。在这个场景中,...
### PL/SQL过程编程中的异常处理详解 在数据库应用程序开发中,异常处理是确保程序健壮性和稳定性的重要手段之一。PL/SQL(Procedure Language for SQL)作为Oracle数据库的标准编程语言,提供了丰富的异常处理机制...
SQLSTATE是一系列五位字符代码,用于标识SQL语句执行的状态。每个SQLSTATE由两个部分组成:第一位表示错误类别,后面四位则代表具体的错误或警告信息。SQLSTATE按照类别分为不同的组,便于管理和查询。 #### ...
15. 42601-42637:这部分错误主要涉及SQL语法错误,如无效的字符、丢失的标记、无效的常量、错误的参数数目等,表明SQL语句的结构或语法有问题。 以上是对DB2异常消息中类代码40和42的部分解析,理解并解决这些异常...
这些消息通常包含了关于执行SQL语句时出现的问题详情,包括错误代码、描述以及可能的解决方案。通过理解这些SQL消息,用户可以更有效地调试和维护其数据库应用。 #### 二、SQL0440N - 找不到具有兼容自变量的类型为...
8. **导入导出**:如果以上方法均无效,可以考虑使用SQL注入工具(如SQLMap)的导入导出功能来进一步分析。 9. **延时注入变体**:如果从步骤1直接跳到这里,可以尝试直接跟payload,或在参数后面加上单引号或双引号...
63. **-02942601**:表示SQL语句中包含无效字符。 64. **-06042815**:表示对象权限问题。 65. **-08442612**:表示操作系统级别的错误。 66. **-09742601**:表示数据类型转换问题。 67. **-10154001**:表示SQL...
在SQL Server中,`ISDATE`是一个非常实用的函数,用于检查一个字符串是否能被解析为合法的日期格式。而在PostgreSQL数据库系统中,并没有内置与SQL Server完全相同的`ISDATE`功能。然而,我们可以自定义一个类似的...
3. **异常处理**:对于严重违反规则的输入,过滤器可能抛出自定义的异常,提示用户输入无效。 4. **过滤策略**:可能有多种过滤策略,比如黑名单(预先定义不安全字符)和白名单(仅允许特定字符),开发者可以根据...
2. 注释注入:在输入中插入注释符号,使部分SQL语句无效,改变原有查询逻辑。 3. Error-Based注入:通过引发错误信息来获取数据库结构或数据。 4. Time-Based注入:通过延迟查询执行时间来判断数据库结构。 防御...
然而,在实际执行SQL时,`#{sortInfo}`会被解释为字符串`"empno desc"`,从而导致执行的SQL语句变为`order by "empno desc"`。由于SQL语法不支持这种方式的排序,因此排序功能失效。 值得注意的是,这种情况下...
- **34** - 无效字符异常 - **36** - 数据异常 - **38** - 日期和时间函数异常 - **39** - 日期和时间截断异常 - **3B** - 保存点异常 - **40** - 事务处理异常 - **42** - 语法或访问规则异常 - **44** - WITH ...
SQL*Plus是Oracle提供的一种命令行工具,可以用来编写和执行SQL及PL/SQL语句。 在PL/SQL中,语句块是基本的执行单元,可以包含声明、初始化、控制结构(如IF-THEN-ELSE、WHILE、FOR循环)以及异常处理。在实验中,...
6. **数据库操作**: 一旦建立了连接,就可以执行SQL命令,如SELECT、INSERT、UPDATE和DELETE,或者使用`SqlCommand`对象执行存储过程。`SqlDataAdapter`和`DataSet`可以用来填充数据网格或其他UI控件,展示数据库中...
- **验证权限和访问控制**:确保执行SQL语句的用户拥有足够的权限,可以访问所涉及的数据库对象。 - **优化查询性能**:利用DB2提供的查询分析工具,评估查询效率,调整索引策略,优化表设计。 - **加强异常处理**...