@IT会議室は、2009年4月15日に新システムに移行し、さらに2012年5月29日にITエンジニアに特化した
質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用くださいませ。
- PR -

DB2で「SELECT NULL」ができない

1
投稿者投稿内容
会議室デビュー日: 2003/06/09
投稿数: 2
投稿日時: 2004-12-02 10:03
DB2で、以下のようなSQL文を作成したいのですが、
UPDATE TABLE_1
SET (ROW1, ROW2) =
(SELECT 'xxx', NULL FROM TABLE_2 WHERE ...)
WHERE ....

実行しようとすると、「SELECT NULL〜」の部分がエラーになり、
以下のようなメッセージがでてきます。
「SQL0206N 使用されているコンテキストで、"NULL" は無効です」

NULLをセットしたい項目は、DATE型です。
何か方法はないでしょうか? 教えてください。

[ メッセージ編集済み 編集者: は 編集日時 2004-12-02 10:06 ]
あら
常連さん
会議室デビュー日: 2004/03/27
投稿数: 24
投稿日時: 2004-12-02 10:33
DB2固有の機能は知りませんが、
UPDATE文としては変な気がする。

UPDATE TABLE_1
SET ROW1 =(SELECT 'xxx' FROM TABLE_2 WHERE ...), ROW2 = NULL
WHERE ....

ではなくて?
taro
ぬし
会議室デビュー日: 2003/10/20
投稿数: 316
投稿日時: 2004-12-02 10:33
もっと良い方法があるとは思いますが、以下のSQLでも一応nullが入ります。
UPDATE TABLE_1
SET (ROW1, ROW2) =
(SELECT 'xxx', NULLIF(0,0) FROM TABLE_2 WHERE ...)
WHERE ....
会議室デビュー日: 2003/06/09
投稿数: 2
投稿日時: 2004-12-02 10:34
自己レスすみません。解決してしまいました。
「SELECT NULL ...」ではなく、
「SELECT CAST(NULL AS DATE) ...」でやったらOKでした。
失礼しました。

回答くださった方々、ありがとうございました。

[ メッセージ編集済み 編集者: は 編集日時 2004-12-02 10:38 ]
1

アイティメディアの提供サービス

ホワイトペーパー(TechTargetジャパン/閲覧には会員登録が必要です)

スキルアップ/キャリアアップ(JOB@IT)