C# 红移ODBC驱动程序错误:字符串数据右截断数据源中的数据:字符串数据对于驱动程序太大';s数据缓冲区
我正在使用.NET的红移ODBC驱动程序将行插入到红移数据库表中 该表包含一个名为“email”的列,定义为VARCHAR(MAX) 在插入带有非标准字符(例如3/4字符或带有重音符号的法语e)的行之前,所有行都不会出现问题。在这一点上,我得到了以下错误: “字符串数据对数据源中的数据进行右截断:字符串数据对于驱动程序的数据缓冲区来说太大。” 以下是连接字符串(使用string.Format替换部分信息): 我添加了最后两个参数,以查看它们是否有帮助,但如果没有它们,它也无法工作 附加信息:当我使用像“Aginity”这样的客户端程序插入行时,行是inserted属性,这使我相信问题不在于表定义 以下是在客户端程序中使用的插入内容(该电子邮件故意不是合法电子邮件): 以下是表格定义: 创建表summary.member ( 成员id VARCHAR(255)DISTKEY, 成员_电子邮件VARCHAR(255) ) 索特基 ( 成员编号:, 会员电邮 ); 以下是打开连接的代码: 专用静态OdbcConnection CreateAndOpenOdbcConnection() { const string server=“someserverinfo.redshift.amazonaws.com”; 常量字符串端口=“5439”; 常量字符串masterUsername=“myusername”; 常量字符串masterUserPassword=“mypassword”; 常量字符串dbName=“databasename” 以下是执行插入操作的代码:C# 红移ODBC驱动程序错误:字符串数据右截断数据源中的数据:字符串数据对于驱动程序太大';s数据缓冲区,c#,odbc,amazon-redshift,C#,Odbc,Amazon Redshift,我正在使用.NET的红移ODBC驱动程序将行插入到红移数据库表中 该表包含一个名为“email”的列,定义为VARCHAR(MAX) 在插入带有非标准字符(例如3/4字符或带有重音符号的法语e)的行之前,所有行都不会出现问题。在这一点上,我得到了以下错误: “字符串数据对数据源中的数据进行右截断:字符串数据对于驱动程序的数据缓冲区来说太大。” 以下是连接字符串(使用string.Format替换部分信息): 我添加了最后两个参数,以查看它们是否有帮助,但如果没有它们,它也无法工作 附加信息:当我
此问题的解决方法是使用PostgreSQL UNICODE驱动程序而不是红移驱动程序。红移驱动程序中可能存在导致此行为的错误。我已通知AWS支持人员,他们正在对此进行调查。此问题的解决方法是使用PostgreSQL UNICODE驱动程序而不是红移驱动程序。看起来s红移驱动程序中可能存在导致此行为的错误。我已通知AWS支持部门,他们正在对此进行调查。解决此问题的方法是使用PostgreSQL UNICODE驱动程序而不是红移驱动程序。红移驱动程序中可能存在导致此行为的错误。我已通知AWS支持部门,他们正在研究。解决此问题的方法是使用PostgreSQL UNICODE驱动程序,而不是红移驱动程序。红移驱动程序中似乎存在导致此行为的错误。我已通知AWS支持部门,他们正在研究此问题。亚马逊发布了ODBC驱动程序更新,以解决此问题:
亚马逊发布了ODBC驱动程序更新,以解决此问题:
亚马逊发布了ODBC驱动程序更新,以解决此问题:
亚马逊发布了ODBC驱动程序更新,以解决此问题:
您还可以包括您正在使用的表定义吗?我在原始问题中添加了表定义。谢谢。您是否正在使用来自Amazon()的新的红移ODBC驱动程序还是旧的Postgres?我正在使用新的红移ODBC驱动程序感谢您添加表定义,我注意到表定义中只有两列,但插入中有3列。这只是一个输入错误吗?您还可以包括您正在使用的表定义吗?我将表定义添加到原始问题中。谢谢。您是否使用新的红移ODBC驱动程序t来自Amazon()的ODBC驱动程序还是旧的Postgres?我正在使用新的红移ODBC驱动程序感谢您添加表定义,我注意到表定义中只有两列,但插入中有3列。这只是一个输入错误吗?您还可以包括您正在使用的表定义吗?我将表定义添加到原始问题中。谢谢。您是否使用新的红移ODBC驱动程序t来自Amazon()的ODBC驱动程序还是旧的Postgres?我正在使用新的红移ODBC驱动程序感谢您添加表定义,我注意到表定义中只有两列,但插入中有3列。这只是一个输入错误吗?您还可以包括您正在使用的表定义吗?我将表定义添加到原始问题中。谢谢。您是否使用新的红移ODBC驱动程序t来自Amazon()或旧Postgres的ODBC驱动程序?我正在使用新的红移ODBC驱动程序感谢添加表定义,我注意到表def中只有两列,INSERT中只有3列。这只是一个输入错误吗?
Driver={{Amazon Redshift (x64)}};Server={0};Database={1};UID={2};PWD={3};Port={4};SSL=true;Sslmode=Require;MaxVarchar=1000;UseUnicode=1"
insert into summary.member values ('59D6687E-078F-45EA-8736-9A08AA85AD4D', 'shrew8@gmail¾comdde')
var connectionString =
string.Format(
"Driver={{Amazon Redshift (x64)}};Server={0};Database={1};UID={2};PWD={3};Port={4};SSL=true;Sslmode=Require;MaxVarchar=1000;UseUnicode=1",
server, dbName, masterUsername, masterUserPassword, port);
var odbcConnection = new OdbcConnection(connectionString);
odbcConnection.Open();
return odbcConnection;
}
private int InsertMember(Guid column1data, string column2data)
{
var command = new OdbcCommand(string.Format("INSERT INTO database.table (column1, column2, column3) values(?, ?, ?)"), Connection);
command.Parameters.AddWithValue("@column1", column1data.ToString());
command.Parameters.AddWithValue("@column2", column2data);
command.Parameters.AddWithValue("@column3", "column3data");
return command.ExecuteNonQuery();
}