在 INFORMIX 中打印调试语句
Print Debug statement in INFORMIX
我正在 INFORMIX 数据库上使用 SQL 存储过程。
当我使用
生成 DEBUG 文件时
SET DEBUG FILE TO
我需要打印调试语句。
例如:打印 Temporary table.
中的行数
其中一种方法可能是
RAISERROR('your message here!!!',0,1) WITH NOWAIT
但我不确定如何使用此 RAISE ERROR
方法打印 table 的计数。
您可以分两步完成:
DEFINE temp_count INTEGER;
SELECT COUNT(*) INTO temp_count FROM TempTable;
TRACE 'Count of rows in TempTable is ', temp_count;
唯一要检查的是您是否可以像在 TRACE 语句中那样分段构建消息。如果没有,那么您可以在将字符串提供给 TRACE 之前构建该字符串:
DEFINE trace_message VARCHAR(255);
LET trace_message = 'Count of rows in TempTable = ' || temp_count;
TRACE trace_message;
sqlca.sqlerrd[3] 包含最后一条语句中处理的行数。
SET DEBUG FILE TO '/tmp/foo.trace';
TRACE OFF;
TRACE ON;
使用以上 3 条语句来打印调试您的存储过程。
我正在 INFORMIX 数据库上使用 SQL 存储过程。
当我使用
SET DEBUG FILE TO
我需要打印调试语句。
例如:打印 Temporary table.
其中一种方法可能是
RAISERROR('your message here!!!',0,1) WITH NOWAIT
但我不确定如何使用此 RAISE ERROR
方法打印 table 的计数。
您可以分两步完成:
DEFINE temp_count INTEGER;
SELECT COUNT(*) INTO temp_count FROM TempTable;
TRACE 'Count of rows in TempTable is ', temp_count;
唯一要检查的是您是否可以像在 TRACE 语句中那样分段构建消息。如果没有,那么您可以在将字符串提供给 TRACE 之前构建该字符串:
DEFINE trace_message VARCHAR(255);
LET trace_message = 'Count of rows in TempTable = ' || temp_count;
TRACE trace_message;
sqlca.sqlerrd[3] 包含最后一条语句中处理的行数。
SET DEBUG FILE TO '/tmp/foo.trace';
TRACE OFF;
TRACE ON;
使用以上 3 条语句来打印调试您的存储过程。