問題タブ [nvarchar]

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 投票する
3 に答える
461 参照

sql - 大文字と小文字を変更し、同様の nvarchar 値をグループ化しようとする SQL

私は sql server 2008 を使用しており、単一の sql テーブルから全体的な結果を表示するためのクエリを作成しようとしています。各日付の count(fieldname) を表示したい、たとえば、各日付のテーブルで「izla」という名前が繰り返される頻度を知りたいのですが、「IZLA」または「Izla」でもある可能性があるため、見つける必要がありますこのデータを 1 つにグループ化し、そのうちの 3 つのカウントを見つける方法。

問題は、大文字または小文字を使用して自動的に同じと見なされるようにしようとすると、問題が発生することです。izla を大文字に変換すると İZLA になり、IZLA を小文字に変換すると ızla と表示されます。

大きな問題は、このデータをグループ化するにはどうすればよいかということです。問題は nvarchar の使用に起因する可能性がありますが、列の型をそのようにする必要があります (変更できません)。

0 投票する
9 に答える
29559 参照

database-design - (n)varchar 列に選択するサイズは?

TDWTF に関するやや白熱した議論の中で、DB 内の varchar 列のサイズに関する疑問が生じました。

たとえば、個人の名前 (名前のみで姓は含まれない) を含むフィールドを考えてみましょう。それほど長くないことは容易にわかります。ほとんどの人の名前は 10 文字未満であり、20 文字を超える人はほとんどいません。たとえば、varchar(50) という列を作成すると、これまでに遭遇したすべての名前が確実に保持されます。

ただし、ほとんどの DBMS では、varchar(50) を作成しても varchar(255) を作成しても、サイズや速度に違いはありません。

では、なぜ列をできるだけ小さくしようとするのでしょうか? 場合によっては、実際に文字列の長さに制限を設けたい場合があることは理解していますが、ほとんどの場合、そうではありません。そして、非常に長い名前を持つ人のまれなケースがある場合にのみ、より広いマージンが有益になります.


追加:人々は、「サイズや速度に違いはない」という声明への参照を求めています。わかった。どうぞ:

MSSQL の場合:http://msdn.microsoft.com/en-us/library/ms176089.aspx

ストレージサイズは、入力されたデータの実際の長さ + 2 バイトです。

MySQL の場合:http://dev.mysql.com/doc/refman/5.1/en/storage-requirements.html

列の値に 0 ~ 255 バイトが必要な場合は L + 1 バイト、値が 255 バイトを超える可能性がある場合は L + 2 バイト

Oracle のドキュメントが見つからず、他の DBMS を使用したことがありません。しかし、私はそれがそこで違うと信じる理由はありません。

0 投票する
2 に答える
2838 参照

sql - nvarchar列のvarcharコンテンツを決定する

VARCHAR列に完全に格納可能なデータが含まれていると思われるNVARCHAR列がたくさんあります。ただし、列のタイプをVARCHARに変更して、最善を期待することはできません。何らかのチェックを行う必要があります。

データは静的であり(将来変更されない)、列にインデックスが付けられ、実際の(nvarchar)インデックスと比較して小さい(varchar)インデックスの恩恵を受けるため、変換を実行したいと思います。

簡単に言えば

そうすれば、エラーや警告は表示されません。Unicodeデータは切り捨てられるか失われます。

どうすれば確認できますか?

0 投票する
4 に答える
25776 参照

sql - hibernate での varchar および nvarchar へのマッピング

データベースに 2 つの列がある場合。

コードで検索するために varchar を渡すように hibernate に指示する方法は?

休止状態のマッピングでは、文字列が nvarchar にマップされ、次のようなクエリが生成されます。

これは、インデックス シーク操作ではなくインデックス スキャンを引き起こすため、非常に悪いことです (要求されたインデックス ノードに直接移動するのではなく、すべてのインデックス ノードをスキャンします)。

コードは数百万の行といくつかのインデックスおよび外部キーで使用されるため、varchar から nvarchar に変更するとパフォーマンスが低下します (nvarchar は varchar の 2 倍のスペースを使用するため、より多くの IO 操作が行われます)。

Javaタイプではなく、データベースタイプに従ってマッピングを行うようにhibernateに指示する方法はありますか?

ありがとう

0 投票する
3 に答える
30627 参照

sql - Nvarchar(Max) の場合、TSQL で 4000 文字しか取得できませんか?

2005年春夏用です。

8000 文字ではなく 4000 文字しか表示されないのはなぜですか?

文字列 @SQL1 を 4000 で切り捨てます。

0 投票する
5 に答える
2549 参照

sql - Nvarcharまたはvarchar2の乗算または丸められた完全な数値を使用する方がよいのは何ですか?

私の質問は、SQLで列を生成する際に何を使用するのが良いかということです。nvarchar(varchar)のサイズを2(32、64、128)の乗算にする必要がありますか、それとも問題ではなく、完全な数値の例「100」、「50」を使用できますか?

理由のある回答ありがとうございます

皆さんこんにちは

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

foreign-keys - 末尾に空白がある SQL Server CE nvarchar 外部キー

SQL Server CE では、nvarchar フィールドに対する外部キー制約は、末尾の空白を削除した後にのみ適用されます。これは、PK が「foo」の場合、「foo」を FK に挿入できることを意味します。
これはなぜですか?外部キーシステムが提供するはずのデータの完全性がひどく損なわれているようです。

空白が比較に含まれるように外部キー制約を強制する方法はありますか? この動作を回避するには、どのようなオプションがありますか?
FK フィールドを int に置き換えるのが最も明白な解決策ですが、関連するアプリケーションの実装方法が原因で (私の場合は) 最後の手段です。

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

sql - Linq から SQL への nvarchar の問題

Linq to SQL で大きなパフォーマンスの問題を発見しました。

文字列を使用してテーブルから選択する場合、SQL テーブルが varchar であっても、SQL Server に渡されるパラメーターは常に nvarchar です。これにより、シークではなくテーブル スキャンが発生し、パフォーマンスに大きな問題が発生します。

パラメータは nvarchar として渡されるため、使用前にインデックス全体が varchar から nvarchar に変換されます。

パラメータが varchar の場合、シークは非常に高速です。

これをオーバーライドまたは変更する方法はありますか?

よろしくクレイグ。

0 投票する
4 に答える
523 参照

sql-server - .Net 圧縮と SQL Server 2005 NVARCHAR(MAX)

.Net 圧縮メモリ ストリーム (System.IO.Compression) を SQLServer 2005 NVARCHAR(MAX) フィールドに安全に格納できますか? SQLServer 2008 は代替手段ではありません。