perl sybase:捕获存储过程print和select语句

时间:2011-05-18 20:11:45

标签: perl printing sybase procedure

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

如何使用perl和(DBI / DBD或CTLib或DBLib)单独捕获print语句和select语句

1 个答案:

答案 0 :(得分:1)

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

  

syb_err_handler(子例程引用)
此属性用于设置在正常错误处理程序执行任务之前调用的临时错误处理程序回调(即perl子例程)。如果此子例程返回0,则忽略该错误。 这对于处理Transact-SQL中的PRINT语句非常有用,用于处理来自Backup Server,showplan输出,dbcc输出等的消息。[强调我的]

并显示以下处理方式:

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

我过去做的另一件事,知道我的procs主要是从perl调用的,是“选择”所有打印输出,第一列是“Message:”,第二列是我想要打印的消息。我甚至围绕这个创建了一种printf-from-the-database功能。