の角括弧で問題が発生すると、実行時にクエリが生成されます。私のアプリケーションでエイリアス
私は(「fielddescriptionとしてフィールド値を選択」)は、このような値を持つフィールドのリストを取得:
select
152 as [weight],
25 as [length] -- this query text is generated at runtime
私の問題は、ユーザ定義のフィールドの説明、から来ています。上記の例では、ユーザーはフィールド "weight"という名前を付けましたが、1つのオプションは "weight [kg]"という名前です(アプリケーションでユーザーが好きなようにフィールドの名前を変更することができ、ユーザーは角括弧を選択できます)。
その場合、私のクエリは次のようになる。
select
152 as [weight [kg]],
25 as [length]
この場合の "[重量[kg]で]、25 [長さ]としては、" フィールドエイリアスとなります。 私は二重の閉鎖ブラケットを置くことによって、回避策が見つかりました:私は、生成したとき、彼らは私がすべてを置き換える照会「]で 『』]]、この場合には、私のクエリは次のようになります。
select
152 as [weight [kg]]], --notice "]]]" = "]]" (substituted) + "]" (closing one)
25 as [length]
を、これは正しい結果を与える
私の実装で実際に私は値を選択するために追加した後、私は追加「[」+ FIELD_DESCRIPTION +「]」私は角括弧の問題を持っている理由これはです。
代わりに角括弧の私が使用している場合引用符(select 152 as "weight [kg]"
)私はフィールドの説明で引用符で問題がありますので、私は変更する必要はありません角括弧を使用するplementation私は解決策として引用符を考慮しません。
私の質問では、私の場合、「]」を「]]」と置き換えても安全ですか?もっとスマートで安全なソリューションがありますか?
**この種の名前変更はSQLレベルで適用していますか? 'column0'、' column1'などで一般的な結果セットを生成することはできないのですか?この結果セットを消費する*アプリケーション/レポートビルダーでカスタム命名を実行しますか? –
@TT。 QUOTENAMEは値の部分で問題を解決しますが、私の場合はエイリアス名に問題があります。エイリアスでQUOTENAMEを使用することはできません – LaBracca
@Damien_The_Unbelieverあなたのアプローチは可能な方法ですが、私の実装はすでに完了しており、私はこの問題を解決しようとしています。フィールドに大括弧が定義されていない限り、すべて正常に動作します。この問題をすべて書き直すのを避けるためです。 – LaBracca