关于ACCESS数据库插入或更新数据的溢出问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于ACCESS数据库插入或更新数据的溢出问题相关的知识,希望对你有一定的参考价值。

有时候在插入数据到数据库的时候会提示如下错误:[Microsoft][ODBC Microsoft Access Driver]非法的字符串或缓冲区长度.比如一个留言功能,上午的时候都是好好的能够输入中文,下午再输入的时候就不行了,更新数据或者插入数据时就会出现错误,而且以前显示是好的中文也会变成乱码,这个问题很烦啊,哪位大侠帮我解答下啊~100分送上~!!急!!!ACCESS数据库的类型都正确的啊,

原系统在SQLSERVER数据库下无任何问题,转换成ACCESS数据库后,操作其中一个表Client,这个表有3W多条记录,语句如下:
public DataSet getClient(string SearchStr)

try

string SqlStr="Select * from Client where ClientName like '%"+SearchStr+"%'";
OleDbDataAdapter OleDbCommand=new OleDbDataAdapter(SqlStr,Conn());
DataSet TempData=new DataSet();
OleDbCommand.Fill(TempData,"Client");
return TempData;

catch(Exception ex)

throw ex;

参考技术A Access中Text类型的长度只有255,也就说你超过255个长度后就报错。一条留言有时候肯定超过255的,只有122.5个汉字,只能写122个汉字以内的 参考技术B 怕溢出的话就用字符串

Redshift 复制命令追加、替换或更新插入?

【中文标题】Redshift 复制命令追加、替换或更新插入?【英文标题】:Redshift copy command append, replace or upsert? 【发布时间】:2018-11-29 06:58:57 【问题描述】:

假设我对现有数据所在的表运行 Redshift COPY 命令。然后执行命令:

    将数据追加到现有表中? 擦除现有数据并添加新数据? 插入数据。即,如果表中存在具有相同主键的数据,则更新,否则插入

【问题讨论】:

【参考方案1】:

COPY 命令总是将数据附加到表中。

【讨论】:

【参考方案2】:

为了使用“复制”命令在 Redshift 中有效地进行 upsert,您需要首先将数据(从您的副本)加载到临时表,然后在 redshift 上运行一些 sql 来处理这些数据。

AWS 在此处记录了一种方法https://docs.aws.amazon.com/redshift/latest/dg/t_updating-inserting-using-staging-tables-.html

【讨论】:

以上是关于关于ACCESS数据库插入或更新数据的溢出问题的主要内容,如果未能解决你的问题,请参考以下文章

Access - 比较两个表并在第一个表中更新或插入数据

用 Python 在 MS Access 数据库中插入或更新行

access文件共享锁定数溢出怎么办

关于数据库更新/插入速率限制的一些查询(基于 SQL 或基于 NoSQL)

如何从 SQL Server 读取 MS Access 数据库以更新一个或多个表列中的数据?

无法使用 pyodbc 在 Access 数据库的表中插入/更新长文本字段