私は、列名にピリオドを許可する Proficy Historian にリンクしています。データは DBMS 以外の形式で格納されているopenquery
ため、テーブルにスキーマが設定されていないため、データの取得に使用できません。したがって、データを取得するには、4 つの部分からなる名前の構文を使用する必要があります。この例は機能します:
SELECT * FROM iHist...[SELECT * FROM ihTrend]
しかし、これは'.' の近くの不正な構文で失敗します。
SELECT * FROM iHist...[SELECT [SERVER.pid_astatus[07][0].F_CV.Value] FROM ihTrend]
SERVER.pid_astatus[07][0].F_CV.Value
列の名前はどこですか
これは、キーワード「from」の近くの構文が正しくない場合にも失敗します。
SELECT * FROM
iHist...[SELECT [SERVER.pid_astatus[[07]][[0]].F_CV.Value] from ihTrend]`
SQL Server にこれを列として表示させる方法についてのアイデアはありますか?
編集:
括弧をエスケープするための右括弧のMartinsの提案は、SQL呼び出しの外側でのみ機能します
SELECT [SERVER.pid_astatus[07]][0]].F_CV.Value] FROM iHist...[SELECT * FROM ihTrend]
ただし、キーワード「from」の近くの不正な構文内では機能しません。
SELECT * FROM iHist...[SELECT [SERVER.pid_astatus[07]][0]].F_CV.Value] FROM ihTrend]
編集
SELECT * FROM iHist...[SELECT [SERVER.pid_astatus[07]][0]].F_CV.Value]] FROM ihTrend]
列エスケープをエスケープする必要がありました:)