問題タブ [nls-sort]
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.
java - openjpa を使用した Oracle 動的 NLS_SORT
すべてのユーザーがユーザー設定で言語を選択できるアプリケーションがあります。今、私はこの言語を NLS_SORT に設定したいと思います。すべてのオーダーバイクエリでこの「言語」を送信できますが、それは良い解決策ではないと思います。ユーザーのログイン後に設定したいのですが、Google経由でこれに対する解決策が見つかりませんでした。誰かが私を助けてくれますか、それともより良い代替案を教えてくれますか? すべての多言語アプリケーションにこの問題があるはずだと思っていましたが、それに関する情報と解決策が不十分であることがわかりました。
お時間をいただきありがとうございます。
oracle - NLS ora を変更すると、「ORA-00979: GROUP BY 式ではありません」というエラーが表示される
私のOracle NLSパラメータは次のとおりです。
クエリ:
このクエリは機能し、データが返されました。
しかし、私が変わるとき
このクエリ"= TABLEA.COLUMNA1"
は、「ORA-00979: GROUP BY 式ではありません」というエラーを示しますか?
私のプロジェクトでは、このようなクエリがたくさんあり、すべてを変更できませんでした。私のクエリが間違っている場合、なぜ前に実行するのですか?
前もって感謝します!
sql - Oracle のソートで大文字と小文字を区別しないようにしますか?
これは、オラクルのソートで大文字と小文字を区別しないことに関連しています。私が見たソリューションのほとんどは、 session params の下に設定することに言及しています:
デフォルトでは、NLS_COMP は BINARY です。
NLS_COMP を LINGUISTIC に設定せずに NLS_SORT を BINARY_CI に設定しただけでも機能することがわかりました。つまり、オラクルのソートでは大文字と小文字が区別されなくなります。NLS_COMP param を設定する利点はありますか?
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 に値を選択します。