gpt4 book ai didi

db2 - 如何从 DB2 中的存储过程中获取变量值?

转载 作者:行者123 更新时间:2023-12-04 20:30:19 24 4
gpt4 key购买 nike

这看起来应该很容易......无论如何,它是在 MS SQL Server 中

在 DB2 存储过程中,如何只获取变量的值?假设我有以下存储过程:

CREATE PROCEDURE etl.TestABC( 
)
LANGUAGE SQL
BEGIN
declare Stmt varchar(2048);
set Stmt = 'this is a test';
-- print Stmt;
-- select Stmt;


return 0;
END @

我想在设置后打印出 Stmt 的值。打印不起作用,选择不起作用。有人说我必须先插入到一个表中,然后运行存储过程后再获取它。这真的有必要吗?

谢谢,西尔维娅

编辑:我应该更清楚地知道每次设置后我都希望看到 Stmt 的值,并且我可能需要在同一个存储过程中多次设置它。

最佳答案

如果您想在开发/测试存储过程时查看这些值,那么您应该使用 IBM Data Studio 并调试您的存储过程。这提供了正常的调试器功能,因此您可以在过程执行时查看变量的值。

但是,如果您只想执行存储过程并查看值的历史记录,我建议创建一个全局临时表,并在您的代码中向其中插入一行:

declare global temporary table StmtHistory (
when timestamp not null with default current timestamp,
stmt varchar(2048) not null
) on commit preserve rows;

然后,在您的存储过程中,添加:

insert into session.StmtHistory (stmt) values (stmt);

执行存储过程后,您可以查询表 session.StmtHistory 并查看您要查找的值。

此外,DB2 9.7 添加了 Oracle 兼容性,因此如果您使用此版本,您实际上可以使用 DBMS_OUTPUT.PUT_LINE 和 DBMS_OUTPUT.GET_LINES 来完成此操作,如果您愿意的话。

关于db2 - 如何从 DB2 中的存储过程中获取变量值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2494656/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com