我有一个非常简单的存储过程,当两个参数都从表单输入中发送值时,该存储过程目前可以完美地工作。
但是,我需要弄清楚如果值为空,那么IN_NUMBER应该做什么,因为目标表中的该列设置为可空。似乎过程本身只是在失败,因为它正在等待一个值。
我应该改变什么?
IN参数:
IN_NAME
IN_NUMBER
常规:
P1 : BEGIN ATOMIC
INSERT INTO schema . postings
( name
, postNumber)
VALUES
( IN_NAME
, IN_NUMBER) ;
END P1
答案 0 :(得分:1)
如果您要处理NULL
并将其替换为其他值,请使用NVL(IN_NUMBER, 0)
-您可以将0换成其他任意数目的课程(我假设这是整数)。 / p>
答案 1 :(得分:1)
示例:
create table postings (name varchar(100), postNumber int) in userspace1@
create or replace procedure postings (
in_name varchar(100)
, in_number int
)
P1 : BEGIN ATOMIC
INSERT INTO postings
( name
, postNumber)
VALUES
( IN_NAME
, IN_NUMBER) ;
END P1@
call postings('myname', null)@
select * from postings@
NAME POSTNUMBER
---- ----------
myname <null>
如您所见,这里没有任何问题。
在与此类似的情况下,您究竟有什么db2错误?