• ベストアンサー

SQLで以下のような構文でコンパイルエラーがでます。

SQLで以下のような構文でコンパイルエラーがでます。 QSQL = QSQL & ",TMTNM,TO_CHAR(TMSPC,'000') AS TMSPC,HMHNM" TMSPCというフィールドを数値から文字へ変えたいのですが、 TO_CHARの引数が正しくないとでます。 どこが間違っているか教えていただけますでしょうか? TO_CHAR(TMSPC、’000’)にしても、 AS TMSPCをつけなくてもダメでした。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

こんにちは DB2はバージョンによっても関数の仕様が違ってくるので、かなりわかりにくいですね・・・。 (何故DB2なのか・・・、マニュアル少ないし・・・) とりあえずTMSPCカラムの型が整数値なら、CHARで変換できます。 DECIMALでフォーマット指定なら、バージョンを教えてください。

hokaktei
質問者

お礼

ありがとうございました!CHARで変換できました。1桁の数字が変換後はなぜか右詰になっていましたが調べてみます。

その他の回答 (2)

回答No.2

こんばんは ODBCで接続しているデータベースは何ですか?

hokaktei
質問者

補足

iserease(IBM)のUDB DB2です。 SELECT文でエラーが起きている状況です。

回答No.1

こんばんは SQL Serverですよね??? 「str」とか「convert」とか・・・。 「to_char」はOracleですが。

hokaktei
質問者

補足

そうなんですか。。。SQLserverって間違えて選んでました。VBAでODBCっていうのでやってるんですが。すみませんあんまり分かってないです。

関連するQ&A

  • SQLの構文エラー

    いつもお世話になってます。 現在、VBでSQLを発行し、ACCESSのテーブル(テストデータ)より 値を取得しようとしているのですが、 SQL文の発行時に構文エラーとなってしまいます。 詳細を下記しますので、ご教授頂けたらと思います。 宜しくお願い致します。 【SQL文】 select フィールド1,フィールド2,フィールド3,フィールド4,フィールド5,フィールド6,フィールド7, (CASE WHEN フィールド8='4' or フィールド8='5' then フィールド9*-1 else フィールド9 end)あああ, (CASE WHEN フィールド8='4' or フィールド8='5' then フィールド10*-1 else フィールド10 end)いいい from テストデータ ※フィールド9、フィールド10は数値型、その他はテキスト型です。 実行時エラー'3075' クエリ式'(CASE WHEN フィールド8='4' or フィールド8='5' then フィールド9*-1 else フィールド9 end)あああ'の構文エラー:演算子がありません。

  • PL/SQLのコンパイル

    PL/SQLで書いた構文をコンパイルしようとしたら 「キーワードがありません」というコンパイルエラーが出ます。 キーワードとはいったい何をさしているのでしょうか。 ご存知の方がいましたらご教授ください。お願いいたします。

  • 漢字のコメントをはずすとコンパイルできる

    Visual Stadio 2008 の C++ で以下の簡単なプログラムをコンパイルすると、  error C2059: 構文エラー : 'else'  error C2059: 構文エラー : 'return'  error C2059: 構文エラー : '}' のようにエラーが出ます。 ------------- #include <stdio.h> int main(int argc, char** argv) {  // 引数が指定されていた場合  if( argc == 2 ){   printf("引数があります");  }else{   printf("引数がありません");  }  return 0; } ---------- いろいろ試してみたところ、  ・コメントをはずすと、コンパイルできる  ・ソースリストはUTF-8である  ・同内容をShiftJISで記載すると、コンパイルできる ことに気がつき、  「UTF-8の日本語コメントを、コメントとして正しく認識していない」らしい ことが原因らしいところまでわかりました。 で質問になりますが、 「UTF-8の日本語コメントを、コメントとして認識させる」 ためには、どうしたらよいのかお教えください。

  • SQL構文エラー

    SQL構文エラーがでているのですが、どこが悪いのか 見つける事ができません。 SQLのデバッグツールなどはないのでしょうか? なるべくフリーソフトでなんですけど 知っている方がいたら教えて下さい。 言語:VB6.0 SP5 DB:Access  Vectorなどで探したのですが、シェアなどがおおかったです。

  • コンパイルエラー invalid operands to binary

    自己啓発で入力文字列をBASE64デコードする関数を作っているのですが、L20~L23(a[0] = strchr(b64, p[0]) - b64;)でコンパイルエラーinvalid operands to binaryが発生して色々試行錯誤しているのですが、どうしてもエラーがとれません。 ソースをここに書くのは大変恐縮なのですが、原因がわかる方がいらっしゃいましたら、教えていただけないでしょうか? char *Base64n(unsigned char *buf, size_t length, size_t *outlen) { const char b64[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrst         uvwxyz0123456789+/="; unsigned char *p; unsigned char *q; unsigned char a[4]; char *RtnBuf; int j=0; int cnt; RtnBuf = (char *)malloc(length+1); memset(RtnBuf, 0, length+1); p = (unsigned char*)buf; q = (unsigned char*)RtnBuf; cnt = 0; while(*p != 0) { a[0] = a[1] = a[2] = a[3] = 0; a[0] = strchr(b64, p[0]) - b64; a[1] = strchr(b64, p[1]) - b64; a[2] = strchr(b64, p[2]) - b64; a[3] = strchr(b64, p[3]) - b64; q[0] = ((a[0] << 2) | (a[1] >> 4)) & 0xff; cnt++; if (p[2] != '=') { q[1] = ((a[1] << 4) | (a[2] >> 2)) &0xff; cnt++; } if (p[3] != '=') { q[2] = ((a[2] << 6) | a[3]) & 0xff; cnt++; } p += 4; q += 3; } *outlen = cnt; return(RtnBuf); } コンパイルはRed Hatでgccを使ってコンパイルしています。 引数は第1引数がデコード対象の文字列、第2引数がデコード対象文字列長、第3引数がデコード後の文字列長で、戻り値がデコード後の文字列です。

  • ftn77のコンパイルエラー

    ftn77でfortranのプログラムをコンパイルしたところ、 文字情報のみでテストしたらコンパイルに成功したのですが、 数値計算の入ったものをコンパイルしたら、 実行時に以下のようなエラーが起こりました。 ーーーーーーーーーーーーーーーーーーーーーーーー RUN-TIME ERROR 00401000 main [+00c5] [recur= 1] メッセージ WARNING the following symbols are missing: IMAG C:\fortran\(ファイル名).obj (C:\FORTRAN\(ファイル名).FOR) ーーーーーーーーーーーーーーーーーーーーーーーーー 元々別のパソコンでコンパイルが成功したものを、 まったく書き換えずにftn77でコンパイルしてみたのにもかかわず、 UNTIME EROORと表示されました。 原因が何か分からないので、どなたか教えてください。 ちなみに10行程度の単純なプログラムなら、数値計算をしてもエラーは怒りませんでした。

  • 【ジェネリックス】コンパイルエラーが出ます。

    毎度お世話になります。 Javaの勉強をしております。 テキストのとおりに打ち込んだのですがコンパイルエラーとなり 対処方法の目処が立ちません。。。 環境: OS:Windows2000 version:Java6 ソース内容 ===ここから===================== package test01; import java.util.*; public class Gen1 { public static void main(String[] args) { List<String> list = new ArrayList<String>(); //リストに文字列を書き込む list.add("テスト1"); //リストから文字列を読み出す String s= (String)list.get(0); System.out.println(s); } } ===ここまで===================== コンパイルエラーの内容は以下のとおりです。 Exception in thread "main" java.lang.Error: コンパイル問題が未解決です。 トークン "<" に構文エラーがあります。AssignmentOperator が無効です。 トークン "=" に構文エラーがあります。正しくは != です。 トークンに構文エラーがあります。構成の位置が間違っています。 トークン ")" に構文エラーがあります。正しくは : です。 at com.sample.nsw2008101202.WordLoveSeeker3.main(WordLoveSeeker3.java:32) ソースコードのエラー該当箇所は↓になります。 List<String> list = new ArrayList<String>();  どなたか対象方法をご存知の方、ご教授ください。 よろしくお願い致します。

    • ベストアンサー
    • Java
  • C言語でのコンパイルエラー

    初心者です。 非常に基本的な質問かもしれませんが、 ご回答いただけたらうれしいです。 void test1(unsigned char* data) { } void test2(unsigned char** data) { } int main(void) { unsigned char data1[6]; unsigned char data2[6][6]; test1(data1); test2(data2); } としてtest1はうまくいくのに、 test2はコンパイルエラーになります。 どっちもポインタになると思うのですが…。 また、unsigned char data2[6][6]を 他の関数の引数とする場合は どうすればよろしいのでしょうか? 宜しくお願いいたします。

  • SQLの構文エラー??

    お世話になっています。 OS:Win2000 DB:Access2000 です。 Insert文、Update文共に「構文エラー」になってしまいます。 ですが、実行したSQL文をAccessのクエリに貼り付けて実行しても エラーにならず、正常に実行されます。 エラーになったSQL文は以下のとおりです。 INSERT INTO D_Schedule (ShisetuNo,YYYYMMDD,ScheTime,Seq,Title,Memo,AddDate,UpdDate) VALUES (1,20041213,'0900',6,'BBB','BBB',#2004/12/16 14:31:49#,#2004/12/16 14:31:49#) UPDATE D_Schedule Set YYYYMMDD =20041213, ScheTime ='0900', Title ='AAA', Memo ='BBB', UpdDate =#2004/12/16 14:30:06# WHERE ShisetuNo=1 AND YYYYMMDD=20041213 AND ScheTime='0900' AND Seq=2 Insert文の場合、Valueの左側を指定しないで Insert Into D_Schedule Values()だとエラーにならないです。 何かお心当たりのある方、ご指摘お願いいたします。 DB更新はADOで行っています。 ADOの接続方法は Set gobjCon = Server.CreateObject("ADODB.Connection") gobjCon.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & GCOM_DBNAME & ";" です。 SQL文の実行方法は gobjCon.Execute(strSQL) です。よろしくお願いいたします。

  • 構文エラーについて

    JAVAなどを使うときに下の表示が出ます。  Microsoft JScript コンパイルエラー  構文エラーです 何度もOKをクリックすると正常になります。 しかしいつも出るので出ないようにするにはどうしたら いいのでしょうか。誰か解る方いたらお願いします。