【发布时间】:2016-03-29 11:44:23
【问题描述】:
我正在尝试将值动态传递给 db2 中的以下存储过程,
CREATE OR REPLACE PROCEDURE E_Enquiry
(IN SourceQueue1 VARCHAR(30), IN ExceptionId1 Integer, IN EventSource1 VARCHAR(30) )
LANGUAGE SQL
DYNAMIC RESULT SETS 1
BEGIN
DECLARE C1 CURSOR WITH RETURN TO CLIENT FOR
select CreationTime
from Exception_Message
where (SourceQueue=SourceQueue1 or ExceptionId=ExceptionId1 or EventSource=EventSource1);
open c1;
END;
我在 IBM Data Studio 3.1 中创建了这个存储过程。 在这里,我试图将参数动态传递给值 SourceQueue1、ExceptionId1 或 EventSource1。我的要求是,当至少传递上述参数之一时,该过程应该起作用。如果只传递了两个参数,它应该搜索这两个参数并检索数据。谁能给我一个解决这个问题的想法。 我正在尝试通过 Mule 数据库连接器调用它。
【问题讨论】:
-
多个可选参数通常表示动态SQL。出于某种原因,这不是一种选择吗?您仍然希望将其准备为参数化以避免 SQL 注入,但只有三个参数会很容易编写(尤其是像这样)。
标签: stored-procedures dynamic db2 mule