用于插入中文字母的SQL命令

时间:2018-04-19 08:22:57

标签: unicode oracle-sqldeveloper nvarchar

我有一个数据库,其中包含一个nvarchar类型的列。如果我写

INSERT INTO table VALUES ("玄真") 

它在表格中显示¿¿。我该怎么办?

我正在使用SQL Developer。

3 个答案:

答案 0 :(得分:4)

使用单引号而不是双引号来创建文本文字,对于NCHAR / N文字文字,您需要在其前面添加CREATE TABLE table_name ( value NVARCHAR2(20) ); INSERT INTO table_name VALUES (N'玄真');

SQL Fiddle

Oracle 11g R2架构设置

SELECT * FROM table_name

查询1

| VALUE |
|-------|
|    玄真 |

<强> Results

val grouped_ratings = ratings.groupBy("userId").count().withColumnRenamed("count", "No. of ratings") grouped_ratings.show(10)

答案 1 :(得分:0)

首先,甚至可能不需要使用NVARCHAR。

&#39; N&#39;字符数据类型用于存储不适合的数据。在数据库中定义的字符集。有一个辅助字符集定义为NCHAR字符集。它是一种乐队助手 - 一旦你创建了一个数据库,就很难改变它的角色集。这个故事的道德 - 在创建数据库时非常谨慎地定义字符集,并且不要只接受默认值。

这里是scenario (LiveSQL)我们在NVARCHAR和VARCHAR2中存储中文字符串。

CREATE TABLE SO_CHINESE ( value1 NVARCHAR2(20), value2 varchar2(20 char));
INSERT INTO SO_CHINESE VALUES (N'玄真', '我很高興谷歌翻譯。' )
select * from SO_CHINESE;

enter image description here

请注意,这两个字符集都在Unicode系列中。另请注意,我告诉我的VARCHAR2字符串可容纳20个字符。这是因为某些字符可能需要存储最多4个字节。使用(20)的定义将只给你存储5个这些字符的空间。

让我们使用SQL Developer和我的本地数据库查看相同的场景。

enter image description here

并确认字符集:

SQL> clear screen
SQL> set echo on
SQL> set sqlformat ansiconsole
SQL> select * 
  2  from database_properties 
  3  where PROPERTY_NAME in 
  4     ('NLS_CHARACTERSET', 
  5      'NLS_NCHAR_CHARACTERSET');

PROPERTY_NAME            PROPERTY_VALUE   DESCRIPTION           
NLS_NCHAR_CHARACTERSET   AL16UTF16        NCHAR Character set   
NLS_CHARACTERSET         AL32UTF8         Character set         

答案 2 :(得分:-3)

首先,您应该在数据库上建立中文字符编码,例如

UTF-8, Chinese_Hong_Kong_Stroke_90_BIN, Chinese_PRC_90_BIN, Chinese_Simplified_Pinyin_100_BIN ... 

我向您展示了一个包含所有这些Collat​​ions的SQL Server 2008(Management Studio)的示例,但是,您可以在其他数据库(MySQL,SQLite,MongoDB,MariaDB ...)中找到相同的字符编码。

  1. 使用Chinese_PRC_90_BIN创建数据库,但您可以选择其他Coallition:

    选择页面(左标题)选项&gt;整理&gt;选择整理

  2. enter image description here

    1. 使用相同的排序规则创建表格

    2. 执行插入声明

    3.   

      INSERT INTO ChineseTable VALUES('玄真');   enter image description here