問題タブ [sql-parser]
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 - SQL Server のフロー "batchparser.dll" - 使い方は?
batchparser.dll
SQL Server のディレクトリ構造 ( ) の奥深くに隠されている SQL Server を利用する、文書化された、または少なくとも漠然とした文書化された方法はありますC:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn
か?
T-SQL バッチを送信し、構文エラーを解析する可能性はありますか?
java - 検索シナリオでの Java 用 SQL パーサーの使用
SQLパーサーをJavaに使用できる優れた実装例または使用シナリオを誰かが提案できますか.
特定のパラメーター、並べ替え基準などに基づいて、UI に表示されるデータをフィルター処理する必要があるアプリケーションがあります。これに関していくつか疑問があります。
1)これはこれに対する理想的な解決策になりますか?
2) UI は Java レイヤーにクエリを提供する役割をどのように果たすことができますか?
python - SQLクエリをDOMのようなツリーに解析して、自動置換を有効にしますか?
デバッグしようとしている大きくて複雑なSQLビューがあります。ビューに表示されていないレコードがあり、レコードが表示される原因となっている句または結合を特定する必要があります。現時点では、これを非常に手動で行っており、一度に1つずつ句を削除し、クエリを実行して必要な行が表示されるかどうかを確認しています。
このようなクエリに2週間に1回程度飛び込んでしまうので、プログラムでこれを実行できれば素晴らしいと思います。
SQLクエリをオブジェクトのツリー(たとえば、のオブジェクト)に解析して、ツリーsqlalchemy.sql.expression
をパーマして結果を実行できる方法があるかどうかを誰かが知っていますか?
java - jsqlparserのSQLクエリにステートメントを追加します
jsqlparserを使用してSQLクエリに式を追加できるかどうか疑問に思いました。たとえば、SQLステートメントに列と値を追加したいと思います。
元のクエリ: "INSERT INTO frontend
(in_reply_to
)VALUES(email
);"
変更されたクエリ: "INSERT INTO frontend
(in_reply_to
、user_id
)VALUES(email
、123)"
列名を変更できましたが、追加できませんでした。
これが私が持っているコードです:
sql - 名前の値を解析するか、組み合わせる方がよい
私は2つの異なるテーブルを持っており、名前の値は異なる方法で保存されています...
たとえば、1つのフィールドは次のとおりです。
inventorName
ジョンC.スミス
他のテーブルにある間、フィールドは次のとおりです。
Inventorfirst | InventorLast
ジョンC.| スミス
問題は、神が個々の名前を解析する時間を知っているよりも、別々の名前を組み合わせる方が理にかなっているということです。クエリに関しては、欠点を理解しています。
トーマスという名前の発明者を見つけて、フィールド内にトーマスの名前を含めることができます。さらに、クエリでは、ほとんどの場合、私が好きではない名前 を使用します。可能な限り正確にしたいと思います。
私はこれにかなり慣れていません。私が読んだ名前解析の記事はすべて、悪夢のように見え、正直な意見を使用することができます。
antlr - SQLクエリの挿入/更新/削除を解析するための文法を作成するANTLR
私はANTLR
文法を書くのが初めてです。私の要件は、挿入/更新/削除SQL
クエリを解析して、どのテーブルが更新/挿入/削除されているか、列とその値のリストなどの詳細を取得することです。はい、の優れたドキュメントがありますANTLR
が、誰かが私を助けることができればクエリ解析のための特定の文法なら、それは大きな助けになるでしょう。
python - Python用のSQL解析ライブラリ
Python用のSQL解析または分解ライブラリが必要です。SQLテキストクエリを入力して、結果としてクエリパーツを取得できるようにしたいと思います。凝ったものである必要はありませんが、自分で構文解析を行うことは避けたいと思います。理想的には、次のようなことができます。
そしてこれも:
誰かが私たちにこれへのポインタを与えることができますか?機能がさらに制限されている場合は、それでも問題ありません。
どうもありがとう!
c# - .sqlファイルC#のDDLからストアドプロシージャとオブジェクト名を解析する正規表現
いくつかのストアド プロシージャの DDL 定義、テーブル、トリガー、ビューなどのステートメントの変更を含む .sql ファイルがあります。
次のようなステートメントを含めることができます。
- プロシージャの作成 / プロシージャの作成
- ALTER PROC / ALTER PROCEDURE
- DROP PROC / DROP PROCEDURE
- テーブル/トリガー/ビューの作成
- テーブル/トリガー/ビューの変更
- ドロップ テーブル/トリガー/ビュー
- 等
.sql ファイルを解析し、オブジェクトのリスト (Proc/Table/View 名) とそれらに対して実行されているアクション (ALTER/CREATE/DROP) を取得する最良の方法は何ですか? Microsoft.Data.Schema.ScriptDom や ANTLR などのパーサーを使用する代わりに、RegEx を使用するのが最も簡単な方法だと考えています。しかし、すべてのシナリオをカバーするどの種類の RegEx を作成すればよいかわかりません。
これまでのところ、この式は上記のすべてのルールに一致することができます。しかし、その前にあるオブジェクトの名前を取得するにはどうすればよいですか。例えば。一致する
(create|alter|drop)\s+(procedure|proc|table|trigger|view|function|constraint)
私の質問は、AdvisorGroups という名前を取得する方法です。[dbo] を持つ可能性があるため、私の RegEx も不完全です。その前かどうか。Alter table AdvisorGroups の可能性もあります。すべての可能性を考慮しようとしているわけではありません。最低限のことだけ。
ALTER TABLE [dbo].[AdvisorGroups] 制約を追加 [XXX]
-前もって感謝します
c# - DDL(作成、変更、削除).sqlスクリプト内の非表示のDML(挿入、更新、削除)ステートメントを検出するための正規表現
更新:この質問を簡単にするため。文字列を変更したので、BEGINENDについてまったく心配する必要はありません。代わりに、ターミネータとしてGOステートメントしかありません。私は今、他の人からいくつかの答えを得ることを願っています
DDLスクリプト(CREATE、ALTER、DROP)でINSERT、UPDATE、DELETEなどの非表示のDMLステートメントを検出できる正規表現を作成する必要があります。
例。以下のスクリプトでは、2つのdeletetable5ステートメントと最後のinsertintotable3ステートメントをキャッチする必要があります。ただし、実際にはストアドプロシージャ自体の本体にある挿入ステートメントは無視する必要があります。
ここでこの正規表現を実行すると:http://regexr.com?33rf3、90 %を達成したことがわかります。動作していない唯一の部分は、最後のGOまで貪欲な試合を行っていることです。最初のGOで停止する必要があります。+を使ってみましたか?欲張りでないようにするための演算子ですが、動作したくありません。
c# - Microsoft.Data.Schema.ScriptDom パーサーの速度
Microsoft.Data.Schema.ScriptDom および Microsoft.Data.Schema.ScriptDom.Sql ライブラリを使用して SQL を解析し、SQL 選択ステートメントに "TOP #" を追加しています。これは、特定の状況で結果セットを制限するために行います。
ライブラリの使用を開始したばかりで、SQL の解析が正確に高速ではないことに気付きました。実際に速度を測定するためにコードを計測していませんが、0.5 秒から 1 秒の間で目立ちます。これはひどいことではありませんが、速いとは言えません。
私のコードは次のようになります。
私はこれをグーグルで検索しましたが、速度に関する苦情は見つからなかったので、何か間違っているのではないかと思っています.