【发布时间】:2021-08-02 20:53:58
【问题描述】:
我正在编写一个连接到 SQL 服务器的 perl 脚本。我编写了一个查询来获取我需要的数据。但是在 perl 中,如何使用 perl 将数据从 SQL 导出到制表符分隔的 txt 文件中?
这是我的示例脚本:
my $sql = "SELECT top (20) [code] AS Code
,Replace(Replace(Replace(Replace(Replace(Replace(Replace
(Replace(Replace(Replace(Replace
([name],'\“','\"'),'\”','\"'),'<= ','≤'),'>=','≥'),'<','<'),'>','>'),CHAR(10),'<br>'),'\n',' '),CHAR(13),' '),'–','-'),'’',''+NCHAR(39)+'') AS ShortDesc
,Replace(Replace(Replace(Replace(Replace(Replace(Replace
(Replace(Replace(Replace(Replace
([description],'\“','\"'),'\”','\"'),'<= ','≤'),'>=','≥'),'<','<'),'>','>'),CHAR(10),'<br>'),'\n',' '),CHAR(13),' '),'–','-'),'’',''+NCHAR(39)+'') AS LongDesc
,CASE WHEN isobsolete = 0 THEN 'NULL' ELSE 'Y' END AS Obsolete
FROM (
SELECT ROW_NUMBER() OVER(PARTITION BY code ORDER BY effectivefromdate DESC) rn, *
FROM [CodingSuite_STG].[Codes].[Hcpcs] ) cs
WHERE rn=1
order by code asc";
my $sth = $dbh->prepare( $sql );
#Execute the statement
$sth->execute();
while ( my @row = $sth->fetchrow_array ) {
print "@row\n";
}
#Close the connection
$sth->finish();
$dbh->disconnect();
【问题讨论】:
-
可能最简单的方法就是使用
bcp,将数据导出到文件是它最擅长的。 -
您好,请详细说明您的答案
-
您的问题不完整。一些数据库允许将信息提取到外部文件中并指定分隔符。请查看SELECT ... INTO Statement。你很有可能没有发明 DB 提供的东西。
-
跳过 Perl 部分,让数据库为您处理所有奇怪的情况:stackoverflow.com/questions/425379/…
标签: sql-server perl dbi