前も書いたと思いますが、NULLの扱いは各RDBMSで微妙に異なっているところが多い部分で、厄介なところでもあります。 たとえばSELECTの後に、NULLを置けるかどうかというのもRDBMSによって異なります。SQL-92を厳密に解釈するとNULLは置けないのが正しいようなのですが、置けるように拡張されているRDBMSの方が多いように思います。 んで、DB2は単純には置けません。 C:¥>db2 "select NULL as "A" from sysibm.sysdummy1" SQL0206N 使用されているコンテキストで、"NULL" は無効です。 SQLSTATE=42703 原因は単純にNULLと書くと型が確定しないからなので、CASTしてやれば良いわけです。 C:¥>db2 "select cast(NULL as int) as "A" from sysibm.sysdum
表の内容を削除するにはDELETE文を使用しますが、この場合LOGが出力されるので、大量のデータを削除する場合は時間が掛かります。 内容が保存されなくても良く単に全データを削除したい場合、OracleなどではTRUNCATE TABLEステートメントを使用しますが、DB2にはありません。 ※2010/04/25追記:DB2 v9.7からTRUNCATE TABLEが追加されました。 ※TRUNCATEステートメント DB2の場合、以下の方法を使用します。 1) ALTER TABLEコマンドでACTIVATE NOT LOGGED INITIALLYを表に適用する ACTIVATE NOT LOGGED INITIALLYを行うと、COMMITまでLOGが取られなくなるので、その間にDELETEし、COMMITします。 2) IMPORTコマンドでファイル容量=0のファイルをIMPORTす
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く