2013-06-26 56 views
2

我有一個包含更新db2表的例程的rpg程序。在DB2和RPG中設置NULL值

我已經宣佈的計劃

myvar 

If <condition> 
    %nullind(myvar) = *on 

它抱怨該字段不能夠爲空的局部變量。

我使用這個變量的SQL更新語句

UPDATE TABLE 
SET X=:myvar 

我怎麼可以設置X爲空?

+3

該表是否允許NULL?你有沒有告訴[RPGLE程序](http://publib.boulder.ibm.com/iseries/v5r2/ic2924/books/c0925083577.htm)[允許NULL](http://publib.boulder.ibm.com /iseries/v5r2/ic2924/books/c0925083225.htm#HDRHALWNUL)? –

回答

7

內部定義的字段不爲空,但您可以使用外部描述的數據結構來導入表定義併爲數據庫字段啓用空值。

H ALWNULL(*USRCTL) 

D TABLE   E DS     EXTNAME(TABLE) QUALIFIED 

/FREE 
    if <condition>; 
     %nullind(table.x) = *on; 
    endif; 

    exec sql update table 
     set x = :table.x 
     where <condition>; 
/END-FREE