シンプルCONCAT
にしようとすると、構文エラーが発生します。接続には独自のODBCドライバーが使用されていますが、これが問題であると確信していますが、自分の側からできることがあるかどうかを知りたい. 以下は、私が最初に試したクエリです。
SELECT CONCAT('DF', '01', ServiceCode) AS RecordID
FROM ServiceCodes
ただし、これは の近く, ServiceCode
で構文エラーをスローし、他の情報はありません。だから私は試しました:
SELECT 'DF' + '01' + ServiceCode AS RecordID
FROM ServiceCodes
しかし、これはterm_expr type not supported
ドライバーからの特定のエラーであると思われるエラーを返します。
それで、私は試しました:
SELECT CONCAT(CONCAT('DF', '01'), ServiceCode) AS RecordID
FROM ServiceCodes
これはうまくいったようです!のような文字列を返しますDF01MOT
。これはすべてのサーバーで機能するため、クエリを生成するフィールドを追加しました。
SELECT CONCAT(CONCAT('DF', '01'), ServiceCode) AS RecordID, 'DF' AS Environment
FROM ServiceCodes
1つのサーバーを除いて、これも機能しているようです。この 1 つのサーバーで上記のクエリを実行すると、 のDF0DFMO
代わりに が返されますDF01MOT
。最後の 2 文字は に応じて各行で変更されますServiceCode
。さらにフィールドを追加すると、次のように変更されます。
SELECT CONCAT(CONCAT('DF', '01'), ServiceCode) AS RecordID, 'DF' AS Environment, '01' AS SO
FROM ServiceCodes
DF0DF01
これは、すべての行でこのフィールドを返します。
では、なぜこれが起こるのでしょうか?なぜ1つのサーバーにしかないのですか? ドライバーはすべてのサーバーで同じですが、これはドライバーの問題ですか? それを回避するにはどうすればよいですか?
編集: 混乱を避けるために、タイトルとタグを変更しました。これは実際には、SQL Server Enterprise Manager の DTS パッケージを使用して、サード パーティが提供するカスタム DBMS にアクセスしています。第三者に連絡することが唯一の選択肢だと思います。