我有一个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
应该在数据库中使用哪种编码?任何其他类型的帮助将不胜感激。
答案 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。