Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 红移ODBC驱动程序错误:字符串数据右截断数据源中的数据:字符串数据对于驱动程序太大';s数据缓冲区_C#_Odbc_Amazon Redshift - Fatal编程技术网

C# 红移ODBC驱动程序错误:字符串数据右截断数据源中的数据:字符串数据对于驱动程序太大';s数据缓冲区

C# 红移ODBC驱动程序错误:字符串数据右截断数据源中的数据:字符串数据对于驱动程序太大';s数据缓冲区,c#,odbc,amazon-redshift,C#,Odbc,Amazon Redshift,我正在使用.NET的红移ODBC驱动程序将行插入到红移数据库表中 该表包含一个名为“email”的列,定义为VARCHAR(MAX) 在插入带有非标准字符(例如3/4字符或带有重音符号的法语e)的行之前,所有行都不会出现问题。在这一点上,我得到了以下错误: “字符串数据对数据源中的数据进行右截断:字符串数据对于驱动程序的数据缓冲区来说太大。” 以下是连接字符串(使用string.Format替换部分信息): 我添加了最后两个参数,以查看它们是否有帮助,但如果没有它们,它也无法工作 附加信息:当我

我正在使用.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”

以下是执行插入操作的代码:


此问题的解决方法是使用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();
    }