問題タブ [nls-comp]

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.

0 投票する
1 に答える
2420 参照

java - 特定のクエリの実行後にセッション NLS_COMP/SORT を変更する方法

EntityManager私の質問は、Transaction が Spring Container から開始されてから休止状態セッションを取得しているという問題のシナリオに固有のものでしEntityManagerた。

全体の流れ:

  1. アプリケーションentityManager.createNativeQuery(searchQuery)では、いくつかのデータを選択する必要があります。

  2. entityManager設定したいセッションで休止状態セッションを取得する必要がありますnls_comp/またはクエリ自体nls_sortを実行できます。entityManager例えばセッションセットを変更しnls_comp=linguisticます。

  3. 完了したら、これらのオプションをもう一度無効にして、以前の状態に戻したいと思います。ほとんどの場合、休止状態セッションまたは何らかのメカニズムを閉じることによって。それは正しいアプローチですか?

2 alter コマンドに対しても別のトランザクションを開始する必要があります (いくつかの例外を与えてみました)。それを達成する方法と、春に開始されたトランザクション内で休止状態のセッションがどのように管理されているかを教えてください。または、entityManagerそれ自体で有効化/無効化を達成できます。

0 投票する
0 に答える
85 参照

oracle - NLS ora を変更すると、「ORA-00979: GROUP BY 式ではありません」というエラーが表示される

私のOracle NLSパラメータは次のとおりです。

クエリ:

このクエリは機能し、データが返されました。

しかし、私が変わるとき

このクエリ"= TABLEA.COLUMNA1" は、「ORA-00979: GROUP BY 式ではありません」というエラーを示しますか?

私のプロジェクトでは、このようなクエリがたくさんあり、すべてを変更できませんでした。私のクエリが間違っている場合、なぜ前に実行するのですか?

前もって感謝します!

0 投票する
1 に答える
925 参照

sql - Oracle のソートで大文字と小文字を区別しないようにしますか?

これは、オラクルのソートで大文字と小文字を区別しないことに関連しています。私が見たソリューションのほとんどは、 session params の下に設定することに言及しています:

デフォルトでは、NLS_COMP は BINARY です。

NLS_COMP を LINGUISTIC に設定せずに NLS_SORT を BINARY_CI に設定しただけでも機能することがわかりました。つまり、オラクルのソートでは大文字と小文字が区別されなくなります。NLS_COMP param を設定する利点はありますか?

0 投票する
0 に答える
109 参照

oracle11g - 言語ソートと文字列検索が oracle で誤ったデータをフェッチしている

Oracle 11g データベースに「監査」テーブルがあります。テーブルには「Account_Name」という列があります。"Audit"."Account_name" 列には、"Guest"、"feeder_1"、"feeder_2"、"feeder_3" などのデータがあります。

「Audit.Account_Name」列に次のインデックスを作成しました。

JDBCコードから、最初に以下のステートメントを実行し、次に実際のクエリを実行して「監査」テーブルからデータを取得しています。

//これは、データを取得するために実行されるコードです

上記のクエリは、「Guest」などの値を含むすべてのデータをテーブルから取得しています。Account_name が 'f' で始まる行のみをクエリがフェッチする必要があることを除いて、NLS_SORT と NLS_COMP が正しくないデータをフェッチしているように見えます。

「line2」にコメントすると、データが正しく取得されることがわかりました。これらのオプションが正しく機能しない理由を誰でも提案できますか?

同じ接続オブジェクトで JDBC コードからクエリを実行しました。

この問題は、本番環境で発生します。そのため、以前に JDBC を使用してスタンドアロン Java コードを作成し、本番環境と同じ問題が発生するかどうかを確認しました。

ここで、Oracle プロシージャを作成しました。このプロシージャでは、最初に NLS_COMP および NLS_SORT パラメータが設定され、次に検索クエリが実行され (ここでは CURSOR が使用されます)、後で NLS_SORT=BINARY がリセットされます。結果は同じで、同じ問題が発生します。

次のクエリを実行した後、文字セットを「WE8MSWIN1252」として取得しました。

パラメータ = 'NLS_CHARACTERSET'; nls_database_parameters から char_set に値を選択します。