0

我有一个存储过程,它有很多打印语句,它会产生打印语句和结果集

如何使用 perl 和(DBI/DBD 或 CTLib 或 DBLib)分别捕获打印语句和选择语句

4

1 回答 1

1

http://search.cpan.org/~mewp/DBD-Sybase-1.12/Sybase.pm#syb_err_handler_(subroutine_ref)说:

syb_err_handler (subroutine ref)
此属性用于设置一个临时错误处理程序回调(即 perl 子程序),该回调在正常错误处理程序完成其工作之前被调用。如果此子例程返回 0,则忽略该错误。这对于处理 Transact-SQL 中的 PRINT 语句、处理来自备份服务器的消息、showplan 输出、dbcc 输出等很有用。[强调我的]

并展示了以下处理方法:

$dbh = DBI->connect('dbi:Sybase:server=troll', 'sa', '', 
                { syb_err_handler => \&err_handler });

我以前做的另一件事是,知道我的 procs 主要是从 perl 调用的,是“选择”所有打印的输出,第一列是“消息:”,第二列是我想要打印的消息。我什至创建了一种 printf-from-the-database 函数。

于 2011-05-19T12:48:31.420 回答