转 sqlplus执行sql报错:ORA-01756:

1.sqlplus执行sql报错:ORA-01756: quoted string not properly terminated

  分类: 技术

在SQLPLUS中执行SQL文件时发生错误:ORA-01756: quoted string not properly terminated

但是SQL其实是没有问题的,找了很多原因,发现可能是由于使用TOAD导出SQL insert语句,编码集的问题导致的。

首先在.bash_profile文件中添加环境变量指定编码集:

export NLS_LANG=American_America.AL32UTF8

但是这样做了还是不行,后来找到了解决方法:

使用类似Notepad++之类的文本编辑器将SQL文件的编码转换为 UTF-8无BOM编码格式

结果试下来就没有问题了。

2.BOM: Byte Order Mark
UTF-8 BOM又叫UTF-8 签名,其实UTF-8 的BOM对UFT-8没有作用,是为了支援UTF-16,UTF-32才加上的BOM,BOM签名的意思就是告诉编辑器当前文件采用何种编码,方便编辑器识别,但是BOM虽然在编辑器中不显示,但是会产生输出,就像多了一个空行,

3.

PHP文件的编码格式是UTF-8,而且是无BOM格式,如果编写PHP文件时用错编码,则输出尤其是中文会出现乱码。Windows自带的记事本默认是ANSI编码格式,另存时可将编码改成UTF-8,但不是无BOM格式,也是无法正确输出的。

WordPress在编写主题和插件的PHP代码文件时,一定要要遵循这个规定,专业的CODE编辑器可以解决编码问题。

在用Notepad++编写的php文件时,首先请将字符集设置正确,方法是点击菜单“格式→以UTF-8无BOM格式编码”。设置完成后,再编辑代码,保存时就自动设为UTF-8 无BOM 编码。以后再打开此文件无需再次设定。

时间: 2024-10-20 13:40:44

转 sqlplus执行sql报错:ORA-01756:的相关文章

python3 UnicodeEncodeError错误,cx_oracle模块执行sql报错:UnicodeEncodeError: 'ascii' codec can't encode characters in position

问题描述: 写了一个执行sql的模块,引用了cx_oracle,在windows机器上完美运行,移植到Centos上就会报错, UnicodeEncodeError: 'ascii' codec can't encode characters in position 检查过程: 代码编码为utf-8,print编码为utf-8,文件编码为utf-8,服务器编码为utf-8,各种正常 定位代码报错位置,开始怀疑是sql执行成功,返回值有中文报错,但是后来通过观察,是传入sql,并没有执行成功,执行

MySQL - 执行sql报错USING BTREE

问题与分析 在执行sql文件时发现报错如下: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'USING BTREE.... 该错误导致有一个表创建失败,一时间很诧异.因为我所执行的sql语句是由SQLyog导出来的,怎么会有语法错误呢?因为报错里的中文字符变成了乱码,一开始以

lzo格式表执行sql报错

异常:at com.hadoop.mapred.DeprecatedLzoTextInputFormat 解决方法: 由于某表索引问题报错,查看表路径: desc formatted 表名; 创建索引 hadoop jar /usr/hdp/2.2.6.0-2800/hadoop/lib/Hadoop-lzo-0.6.0.2.2.6.0-2800.jar com.hadoop.compression.lzo.LzoIndexer 表路径 重新执行一遍sql即可解决. 原文地址:http://bl

Oracle执行SQL报错ORA-00922

问题描述: 对Oracle数据库执行序列化脚本出错,ora-00922 missing or invalid option  #无效的选项 问题解决: 对于set define off --这个是sqlplus的命令,需要在命令窗口执行(命令窗口就是sqlplus,plsql要安装此插件),打开载入sql脚本即可!

expdp报错ora 39126

11.2.0.2,expdp报错: ORA-39126: Worker unexpected fatal error in KUPW$WORKER.GET_TABLE_DATA_OBJECTS []ORA-31642: the following SQL statement fails:BEGIN "SYS"."DBMS_CUBE_EXP".SCHEMA_CALLOUT(:1,0,1,'11.02.00.00.00'); END;ORA-06512: at &quo

mysql执行update报错1175解决方法

mysql执行update报错 update library set status=true where 1=1 Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences -> SQL Queries and

利用sql报错帮助进行sql注入

我们可以利用sql报错帮助进行sql注入,这里以sql server 为例: sql查询时,若用group by子句时,该子句中的字段必须跟select 条件中的字段(非聚合函数)完全匹配,如果是select * ,那就必须将该表中所有列名都包含在group by 中:若少了哪个,就会报错,报错中会提示如下; 选择列表中的列 '列名'无效,因为该列没有包含在聚合函数或 GROUP BY 子句中. 这个提示的列名是按该表中的顺序来的,这时我们可以利用这点进行sql注入中枚举所有列的工作: 先使用

mysql 更新sql报错:You can't specify target table 'wms_cabinet_form' for update in FROM clause

数据库里面有两个字段的位置不对,要把他们对调换下.因为没有数据库写的权限,需要用sql语句来实现.原来以为简单的 update table a set a.字段a=(select b字段 from table  where id=?) ,set a.字段b=(select a字段 from table where id=?) where id=? ,结果报了 这个问题 You can't specify target table 'wms_cabinet_form' for update in

eclipse下执行wordcount报错 java.lang.ClassNotFoundException 解决办法

eclipse下执行wordcount报错 java.lang.ClassNotFoundException 17/08/29 07:52:54 INFO Configuration.deprecation: fs.default.name is deprecated. Instead, use fs.defaultFS 17/08/29 07:52:54 WARN util.NativeCodeLoader: Unable to load native-hadoop library for y