一次非典型的SQL报错

昨天调试一个表值函数,结果出现了这个错误。

mplicit conversion of varchar value to varchar cannot be performed because the collation of the value is unresolved due to a collation conflict.

奇怪的是,这个函数之前都运行着没问题。经过一番查询,发现是某个字段的SQL Collation修改了导致的。

这个字段刚好是前段时间,导入一些中文数据进行测试的,一开始发现,中文乱码,然后修改了Collation,没想到埋了个雷。

接下来,要好好研究下这个错误,还有Collation的规则。

时间: 2024-07-31 14:30:36

一次非典型的SQL报错的相关文章

利用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

转 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_L

mysql - sql报错You can't specify target table 'table_name' for update in FROM clause

今天写了个更新数据库表的语句,本意是根据某个条件,筛选出该表某些数据之后,对这些数据进行删除操作,如下 delete from t_person where id in (select id from t_person where name = "hello"); 然而却报错: You can't specify target table 't_person' for update in FROM clause 以下这篇博客( https://blog.csdn.net/qq_2967

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,并没有执行成功,执行

SQL 报错信息整理及解决方案(持续更新)

整理一下自己遇见过的 SQL 各种报错信息及相应解决方法,方便以后查阅,主要平台为 Oracle: ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值: 原因:插入操作时,数据大于字段设定大小,Oracle 会自动将数据转为 long 型,然后报插入失败错误. 解决:更改数据大小,或者将字段设为 clob 或 blob 类型. "ORA-01012: not logged on" 以及 "Connected to an idle instance":

DB2 sql报错后查证原因与解决问题的方法

1.对于执行中的报错,可以在db2命令行下运行命令 : db2=>? SQLxxx 查看对应的报错原因及解决方法. 2.错误SQL0206N SQLSTATE=42703  检测到一个未定义的列.属性或参数名.  SQL0206N  "SQL_COU_ALL" is not valid in the context where it is used.  SQLSTATE=42703      db2 => ? "42703"          db2 =

Oracle10g使用$ORACLE_HOME/rdbms/admin/awrrpt.sql报错

Enter value for report_name: Using the report name awrrpt_1_591_593.htmlselect output from table(dbms_workload_repository.awr_report_html( :dbid,*ERROR at line 1:ORA-04063: package body "SYS.DBMS_WORKLOAD_REPOSITORY" has errorsReport written to

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