如何从ms sql nvarchar(max)列检索数据

时间:2014-04-03 12:50:34

标签: sql-server perl dbi

我使用perl从Microsoft sql server获取数据。

我需要从列类型为nvarchar且长度设置为max的视图中检索数据。

nvarchar的最大长度可以是2GB。我可以获取除类型定义为nvarchar的列之外的其他数据。

$dbh->{'LongReadLen'} = $dbh->selectrow_array('SELECT MAX(LEN(column)) FROM ViewsName');
my $sth = $dbh->prepare($sql_query) or logger('ERROR',"Prepare Error:\n$DBI::errstr");
$sth->{'LongTruncOk'} = 1;
$sth->execute();
$queries_results_hr->{$query_type}{'data'}    = $sth->fetchall_arrayref;

此列的类型为nvarchar。

nvarchar列的数据以下面的格式显示。

enter image description here

所以我的问题是如何使用perl从Microsoft sql获取nvarchar类型数据。

我使用下面的代码来创建数据库连接。

my $db_instance = ".\\SQLEXPRESS";
my $db_name     = "MyDBName";
sub create_connection {
my $connect_string = "DBI:ODBC:Driver={SQL Server};Server=$db_instance;Database=$db_name;";
my $dbh = DBI->connect($connect_string) or die("\nCONNECT ERROR:\n$DBI::errstr");
return $dbh;
}

如果DBD :: ODBC是为unicode构建的,我也尝试过checl。如下所示。

print $dbh->{odbc_has_unicode};

它返回1.

0 个答案:

没有答案