- PR -

adChar型をChar型に・・・

1
投稿者投稿内容
きば
会議室デビュー日: 2004/09/14
投稿数: 8
投稿日時: 2005-02-05 15:35
現在C#でアプリケーションを開発しているのですが、
DB2から複数のデータを取得し、それらをSQL文で結合する部分でつまづいています。

DB2から取得するデータはadChar型で、NULLまたは英数字7桁の文字列です。
@データがNULL文字か否かチェック
ANULL文字の場合、""(空)に置き換え
Bデータの結合
の順で実行したいのですが、
そもそも文字列型であるadCharをChar型に変換できるのかが疑問です。

SQL文を

"SELECT ISNULL(CAST("+ dataA +" AS char ), '') + ISNULL(CAST("+ dataB +" AS char ), '' ) AS " + dataC + " from" + DataBase

と記述したのですが、構文エラーのメッセージが出てCASTをすることができません。
ちなみに、dataA,dataB,dataCはこのSQL文を使用するプロシージャの引数で、
dataAとdataBを結合したものをdataCとして扱いたいのです。

初歩的な質問で申し訳ありませんが、
解決法をご存知の方がいらっしゃいましたら宜しくお願いします。
ishi
会議室デビュー日: 2004/07/16
投稿数: 17
投稿日時: 2005-02-08 12:48

ISNULLとかCASTはDB2の関数ではないので構文エラーになっていると思います。

ISNULLの変わりにCOALESCEを使ってみてください。
キャストはたぶん必要無いと思います。

#C#が分かっていないので外しているかもしれませんが。

・COALESCEに関する詳細はこちら
http://www.db2.jp/db2manual/ja_JP/admin/r0011043.htm
・DB2のマニュアル検索についてはこちら
http://www.db2.jp/siryo/db2online/
きば
会議室デビュー日: 2004/09/14
投稿数: 8
投稿日時: 2005-02-08 19:31
ishiさん、ありがとうございます。
さっそくCOALESCEを試してみようと思います。

現在作成しているアプリケーションは、DB2からデータを取得し、
取得したデータを加工してSQL Serverに保存する仕様になっているのですが、
開発環境にはDB2がないため、現場でしかテストを行うことができない状況です。
開発の際にはSQL Server内に2つのデータベースを作成し、ODBCドライバを利用して
片方のデータベースから取得したデータをもう片方のデータベースに保存するという
テスト方法しか取れないため、現場に行ってテストしてみて初めてDB2とSQL Serverの違いを
認識するという悪循環に陥っています。
しかもアプリケーションはすでに稼動しているため、短時間しかシステムを止めて
テストすることができません。
そもそもそのようなアプリケーションを開発するとわかっていながら
開発環境にDB2がないというのが大問題なのですが・・・。

重ねて、情報ありがとうございました!!
1

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