DB/2 で Oracle の DECODE に相当することを書きたいと思ってネットをさまよっていると...
CASE なるものを発見、DECODE よりもはるかに使える!(タイプ量は多いけど)
ちなみに Microsoft では Access の iif に相当すると説明しているけれども、項目1つに対して複数の条件をかけるから、switch か choose に近いかな?
2025年5月 2日(金) 22:10 JST
DB/2 で Oracle の DECODE に相当することを書きたいと思ってネットをさまよっていると...
CASE なるものを発見、DECODE よりもはるかに使える!(タイプ量は多いけど)
ちなみに Microsoft では Access の iif に相当すると説明しているけれども、項目1つに対して複数の条件をかけるから、switch か choose に近いかな?
ファイルの内容を変数に代入することで後々の処理に使用できます。
ファイル内に書かれたファイル名を読み出して操作するということも可能ではないでしょうか?
他のプログラムによって出力された内容によって処理の流れを変えたいことは、ままあることです。
良くあるのはログの内容によっての処理内容の変更でしょうか?
そんな場合に役立つかもしれません。
Oracle には データを CSV に出力する方法がないので、SQL*Plus を使って出力するか、もしくはサードパーティ製のツールを使う以外ないようです。
(Oracle Database 10g Express Edition には標準で csv のエクスポート/インポート機能があります。)
Google で検索するとすぐにでてくるのですが...
以下のような SQL ファイルを作成して実行します。
(SQL 文を書かないといけないのがかなりめんどくさい)
SET ECHO OFF SET FEEDBACK OFF SET HEADING OFF SET LINESIZE 10000 SET PAGESIZE 0 SET TRIMSPOOL ON SET TERMOUT OFF SPOOL output.csv SELECT '"'||col1||'",' ||'"'||col2||'",' ||'"'||col3||'",' ||'"'||col4||'",' ||'"'||TO_CHAR(date1, 'YYYYMMDD')||'"' FROM table ; SPOOL OFF EXIT
できたら、SQL ファイルを実行します。
実行方法は
SQL> @hogehoge.sql
です。
ORACLE MASTER Silver DBAポイント解説(4)で表領域の取り扱いについて解説されていたのですが、環境が XE だからかうまく動かなかったのでうまくいった方法をご紹介します。
ALTER TABLE SPACE文を使用して移動する場合の手順は以下のとおりです。
ALTER TABLESPACE users OFFLINE;
ALTER DATABASE RENAME FILE 'C:ORACLEXEORADATAXEUSERS.DBF' TO 'D:ORADATAXEUSERS.DBF'
ALTER TABLESPACE users ONLINE;