转:

ORA-00911: invalid character 错误解决集锦

参考https://www.linuxidc.com/Linux/2017-05/144361.htm

ORA-00911: invalid character 错误解决集锦

案例一:字符集的问题

网上搜了一遍, 大多数是因为分号( ; ) 的问题.  而我的sql文件是没有分号的, 最后发现是sql文件编码和服务器字符集的差异造成

sql文件怎么都看不出问题,直到在UltraEdit里切换到16进制模式下才发现有些怪字符, 文件编码是UTF-8

然而服务器的字符集是TH8TISASCII

select userenv('language') from dual

解决办法: 把sql文件另存为ASCII编码就行了.

案例二:今天在访问远程oralce数据库时,以前正确的语句也都会出现“ORA-00911: invalid character”的错误信息,在网上找了很长时间,也没有找到原因,但在搜索时,看到一篇文章说字符集的问题,我突然想到,我的系统之前恢复过系统,oarcle客户端也是今天刚安装的,我记得在系统设置中,要设置字符集那个变量,于是我从服务器上看到了该字段,在我本机上果然没有,于是我按照上面的路径把那个变量加上,具体路径和变量名如下:

控制面板--系统和安全---系统--高级系统设置--高级--环境变量--系统变量中

变量名:NLS_LANG

变量值:SIMPLIFIED CHINESE_CHINA.ZHS16GBK

把这个变量添加完成以后,把系统重启一下就ok了,重启以后,错误提示消失了。

这个变量是在读取数据库中中文名称时出现的。

案例三:今天在写SQL查询Oracle中的数据时遇到一个问题。在一般的SQL查询分析器中写好的SQL语句(运行一切正常),扔到用C#写的程序中就报错。错误代码如下:

System.Data.OleDb.OleDbException:One or more errors occurred during processing of command.

ORA-00911: invalid character at...

检查了半天,实在是没找到任何SQL错误的原因,(本来怀疑是字符转码的问题,后来给排除了);最后,终于在网上查到了答案,原来“都是分号惹的祸”!

我一般写SQL的时候都喜欢在每个语句结尾加上":",我想这也是一般写SQL的程序员的习惯。因为很多SQL的查询分析其时都会将这个分号当成一个语句的结束。但是,其实在正式执行的时候,是不能将这个分号扔到Oracle的解析器中的,因为Oracle的语法解析器特别严格,就会报出以上的错误出来,解决方法也很简单,去掉分号就可以了。

以上的问题适用于任何用程序书写的Oracle数据查询,看起来有时候习惯也会害死人的。

注:

我是用C语言的OCI接口调用sql语句,sql语句末尾加了分号。

错误号: 911

错误描述:ORA-00911: invalid character

本篇文章来源于 Linux公社网站(www.linuxidc.com)  原文链接:https://www.linuxidc.com/Linux/2017-05/144361.htm

ORA-00911: invalid character 错误解决集锦的更多相关文章

  1. ORA-00911: invalid character 错误解决

    多数情况如下: 控制面板--系统和安全---系统--高级系统设置--高级--环境变量--系统变量中 变量名:NLS_LANG 变量值:SIMPLIFIED CHINESE_CHINA.ZHS16GBK ...

  2. Python 排错UnicodeEncodeError 'ascii' codec can't encode character 错误解决方法

    Python UnicodeEncodeError 'ascii' codec can't encode character 错误解决方法   by:授客 QQ:1033553122 错误描述: py ...

  3. SQL文件的BOM问题导致的invalid character错误及解决

    最近在做数据的搬运工,将Oracle中的数据搬运到ES中,方案很成熟了,使用Logstash的jdbc-input执行SQL,然后将结果输出到ES中.这么简单的问题,在测试环境中测试也一帆风顺,可一上 ...

  4. Golden32 别名时中文 报ORA-00911: invalid character错误

    查询数据库软件我一般用两个:PL SQL和golden32:使用golden32-之前使用的时候别名为中文是没有任何问题:直到我想将PL SQL汉化(使用中文包chinese.exe),汉化完后再次查 ...

  5. Oracle 数据库 Database Express Edition 11g Release 2 (11.2) 错误解决集锦(安装方面)

    前言:第一次接触数据库,想下载个oracle试玩下(虽然听说一般大企业才用),到 官网下载 了个简易版 XE 版本,安装时要注意记住自己输入的数据库密码(口令)  还有安装路径不能含有空格(Do no ...

  6. 启动docker容器时的Error response from daemon: devmapper: Error mounting: invalid argument. 错误解决

    错误出现 在一台物理机重启后,以前创建的容器无法启动了.一启动,则会报出错误. [root@217TN1V ~]# docker start e7e Error response from daemo ...

  7. ruby环境sass编译中文出现Syntax error: Invalid GBK character错误解决方法

    sass文件编译时候使用ruby环境,无论是界面化的koala工具还是命令行模式的都无法通过,真是令人烦恼. 容易出现中文注释时候无法编译通过,或者出现乱码,找了几天的解决方法终于解决了. 这个问题的 ...

  8. Oracle 数据库 Database Express Edition 11g Release 2 (11.2) 错误解决集锦(使用语法)

    ORA-14552: 在查询或 DML 中无法执行 DDL, 提交或回退 PL/SQL“ORA-14551:无法在查询中执行DML操作 解决:在声明函数时加上: PRAGMA AUTONOMOUS_T ...

  9. 抓取某网站信息时遇到的问题及解决 The character set provided in ContentType is invalid. Cannot read content as string using an invalid character set

    var response = httpClient.SendAsync(requestMessage).Result; content = response.Content.ReadAsStringA ...

随机推荐

  1. 温控PID自测验程序

    #pragma once #ifndef _PID_H_ #define _PID_H_ #include <vector> #include <map> using name ...

  2. 用js刷剑指offer(连续子数组的最大和)

    题目描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学.今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决.但是,如果向量 ...

  3. P4393 [BOI2007]Sequence 序列问题[贪心]

    题目描述 对于一个给定的序列a1, -, an,我们对它进行一个操作reduce(i),该操作将数列中的元素ai和ai+1用一个元素max(ai,ai+1)替代,这样得到一个比原来序列短的新序列.这一 ...

  4. 四舍五入toFoxed方法

    四舍五入的方法: Number.prototype.toFixed = function (n) { if (n > 20 || n < 0) { throw new RangeError ...

  5. 云计算(5)---MapReduce

    什么是MapReduce 例如用MapReduce如何计算12+22+32+42 用MapReduce执行Wordcount 步骤1:Map map task1 和map task2是独立,并行进行 ...

  6. machine learning(8) -- classification

    分类预测不能使用linear regression, linear regression算法对于分类预测效果很差,应使用logistic regression算法 Logistic regressti ...

  7. HDU 2454 Degree Sequence of Graph G——可简单图化&&Heavel定理

    题意 给你一个度序列,问能否构成一个简单图. 分析 对于可图化,只要满足度数之和是偶数,即满足握手定理. 对于可简单图化,就是Heavel定理了. Heavel定理:把度序列排成不增序,即 $deg[ ...

  8. 如何使用python内置的request发送JSON格式的数据

    使用步骤如下: 一.如果想发送json格式的数据,需要使用request模块中的Request类来创建对象,作为urlopen函数的参数 二.header中添加content-type为applica ...

  9. google Guava包的reflection(反射)解析

    译者:万天慧(武祖) 由于类型擦除,你不能够在运行时传递泛型类对象——你可能想强制转换它们,并假装这些对象是有泛型的,但实际上它们没有. 举个例子: ArrayList<String> s ...

  10. 002_simulink中显示模块中的名字

    (一)Display--->Hide Automatic Names(√去掉)