首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无效字符在哪里?基于简单sql的oracle 11g

无效字符在哪里?基于简单sql的oracle 11g
EN

Stack Overflow用户
提问于 2014-04-02 03:13:39
回答 4查看 748关注 0票数 0

我正在使用带有OJDBC6.jar适配器的oracle 11G。当我试图运行这个非常简单的insert语句时,它抛出了一个无效字符异常。

代码语言:javascript
复制
ActiveRecord::JDBCError: java.sql.SQLSyntaxErrorException: ORA-00911: invalid character
: insert into user_defaults values (8526547125,'H214Qa99547')

我的gemfile如下所示:

代码语言:javascript
复制
gem 'activerecord', '4.0.4'
gem 'ActiveRecord-JDBC', '0.5'
gem 'activerecord-jdbc-adapter', '1.3.6'

这是在带有OJDBC6.jar的Oracle 11g上

EN

回答 4

Stack Overflow用户

发布于 2014-04-13 17:06:24

这可能与推断的列顺序有关吗?尝试指定列以消除任何歧义:

代码语言:javascript
复制
INSERT INTO user_defaults (user_id, home_office_id)
VALUES (8526547125, 'H214Qa99547')
票数 1
EN

Stack Overflow用户

发布于 2014-04-03 15:13:32

  1. 检查查询是否能够直接在开发人员工具中执行,而不是通过java执行。如果查询失败,则检查无效的数据类型并更正它。
  2. 如果查询在开发人员工具中成功执行,则可能存在编码问题,则
    1. 会检查传递的字符串中是否有类似分号的查询终止字符串。
    2. 尝试在java程序中使用SOP在inserting.

之前打印查询

票数 0
EN

Stack Overflow用户

发布于 2014-04-16 02:31:52

我以前也被超范围的ASCII码烧焦过。最好排除这一点,特别是如果你已经尝试了你能想到的所有其他方法。

删除并重新键入整行或多行。在删除该行后,请抵制粘贴该行的诱惑。如果里面有一个不可打印的ASCII字符,它就会把它去掉。

请确保对与SQL语句交互的任何代码行执行此操作,无论是在变量中构建字符串还是实际传递参数以运行查询。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22794853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档