問題タブ [quoted-identifier]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql-server - 既存の制約/ルール/手順の Quoted_Identifier の変更
私は現在、2008-r2 サーバー上の古いデータベースで作業しています。このデータベースは、Quoted Identifier をオフに設定して作成された多くのオブジェクトを使用しています。
私は主にこれらのタイプを見ています:
制約を変更することさえできないことがわかったので、すぐに困惑した引用識別子設定を変更しようとしています。
制約について: どうにかして一時的なクローン/コピーを作成し、オリジナルを削除してから、コピーと Quoted_Identifier を ON に設定してそれらを再作成する必要があると考えていますが、これを行う方法や方法がよくわかりません。私のSQLスキルは限られているため、これを自動化します。誰かが私を助けることができますか?または、誰かがより簡単な代替方法を知っていますか?
sql - EXEC および設定 Quoted_Identifier
別のストアド プロシージャ [B] を作成するストアド プロシージャ [A] があります。
[A] エンド ユーザーによって実行されることはなく、パラメーターやその他の信頼できないデータはありません。代わりに、複雑な SP [B] の作成を自動化するために単純に使用しています。[A] 内部を変更しない限り、常に同じ結果になります。したがって、これは安全だと思います。
[B] xml を使用するため、Quoted_Identifiers を ON にする必要があります。
生成された SP をコピーして貼り付けると正常に動作しますが、[A] に EXEC で作成させると、実行時に SP が失敗します。
[B] の中に追加してみましSET QUOTED_IDENTIFIERS ON
たが、目立った効果はありません。
sp_ExecuteSQL を使用した場合も同じ問題が発生します [B] を呼び出す前に設定しようとしましたが、それも効果がないようです (ただし、常にオンになっているコンテキストではなぜでしょうか)
私の推測では、EXEC と sp_ExecuteSQL は常に設定 OFF を使用し、SET コマンドは SQL エンジン自体ではなくパーサーによって処理されます。では、EXEC で proc を正しく作成するにはどうすればよいでしょうか。
parsing - 単一引用符で囲まれた文字列の単一引用符文字を解析する
私の parsec パーサーで、あなたの助けが必要なばかげた状況が発生しました。
| で区切られたストロング/文字のシーケンスを解析する必要があります。文字。したがって、a|b|'c'|'abcd' となる可能性があります。
に変換する必要があります
' ' 文字列内を除き、スペースは使用できません。さて、私の素朴な試みで、a'a|'bb' のような文字列を [a'a,bb] に解析できるが、aa|'b'b' を [aa,b'b] に解析できない状況になりました。 .
では、パーサーに | が続く場合に 'a stoping' を考慮するように指示するにはどうすればよいでしょうか。または空白?(または、これにいくつかの ' char カウントを入れます)。入力はユーザーが生成したものなので、\'-ing 文字に頼ることはできません。
sql - Postgres 列が存在しません
他の誰かが書いた SQL Server クエリがうまくいきました。私はそれを Postgres に移植する仕事をしています。
どちらのデータベースも、非常に基本的な SQL コマンド以外はよくわかりません (チュートリアルを進めており、どちらの方法でも続行しますが、遅かれ早かれこれを解決したいと思います)。
とにかく、4行目でエラーが発生しています。
エラー: 列 timeloggedtoday.date_logged が存在しません
これは 89 行目あたりのセクション (** でマーク) から来ていると思いますが、構文がどうあるべきかわかりません。ドキュメントから WITH/AS セクションをコピーしようとしましたが、まだ間違いを犯しているか、エラーが別の場所にあります。以下のコードはおそらく繰り返し/余分なコードがたくさんありますが、Postgres 構文に変更したときに他のエラーを簡単に導入できたので、すべてを含めたほうがよいと思いました。
編集:
問題のあるセクションを削除すると、エラーが次のように変わります
エラー: 列 timelogged1daysago.date_logged が存在しません
これは同様のコードの次のバッチであり、一時テーブルの名前を付ける際に構文上のエラーが発生していると思われます (用語は正しいですか?) が、何が問題なのかわかりません。ドキュメントで関連するセクションを見つけるのは困難です... 'With' または 'As' をグーグル検索することは、当然のことながら、役に立ちません。
編集:より簡単なクエリ
このエラーを見つけることを期待して、余分なものをいくつか編集したと思います。いずれにせよ、この短いクエリでは、少なくとも同じエラーが発生するため、デバッグに役立つ可能性があります。
sql-server - 単純な SQL - openquery 内でのフォーマットの使用
Wonderware (Industrial HMI) Historian アプリケーションで MS SQL Server を使用して、次のクエリを実行します。「ww」で始まるキーワードは Wonderware 固有のもので、wwResolution は 24 時間ごとに結果を取得しています。
QUOTED_IDENTIFIER をオフに設定
クエリをフォーマットして試してみたいので、次のようにします。
format([BarRoom_GASMETER.ACC],'###,###,###,###,###.##') as 'Bar Room'
しかし、「エラーが発生しました」と表示されます。この場合、フォーマットをどのように使用すべきかについての提案はありますか? 回答ありがとうございます。スナップショットを追加しました。読み取るには、ローカルに保存する必要があります。
「引用された識別子」の処理方法に関係があると思います。