从grails将阿拉伯字符插入sql server数据库

时间:2014-01-09 13:03:18

标签: sql-server grails gorm

我有一个grails应用程序,用于从接口到sql server数据库插入阿拉伯字符。首先,我使用字段类型varchar进行了操作,但它显示为???????。然后我发现字段类型应该是nvarchar但是,应用程序只是通过给出以下错误而无法插入任何行,

java.sql.SQLException: Cannot insert the value NULL into column 'id', table 'smsCampaigner.dbo.message'; column does not allow nulls. INSERT fails.

我知道这是约束错误,id不能为null,但在更改字段类型之前不是这种情况。现在我想知道我们是否可以指定config.groovy应该在数据库中使用哪种编码?任何其他类型的帮助将不胜感激。

3 个答案:

答案 0 :(得分:0)

在这里你去..

创建域类时,请使用该列的String类型,就是这样。你可以插入任何它会接受的角色。

例如TestDomain.groovy

class TestDomain {
   String column1
}

答案 1 :(得分:0)

在mysql中你可以设置数据库/表/列的排序规则以使用utf8_unicode_ci,如果我没错,那么保存阿拉伯语字符是有效的。不确定如何使用SQL Server,但它应该是类似的。

答案 2 :(得分:0)

将数据库和表格和列的排序规则更改为Arabic_CI_AS
在Sql Server管理工作室(SSMS)中,执行:

ALTER DATABASE  DB06 COLLATE Arabic_CI_AS

其中DB06是数据库的名称 右键单击表,然后单击设计,然后选择所需的列,在其属性中选择排序到Arabic_CI_AS 顺便说一句,错误:

  

无法将值NULL插入列

与阿拉伯语无关,这是因为您尝试在不允许NULL的列中插入NULL。