我正在执行ETL过程,并得到标题错误:
源数据类型为char(1),目标数据类型为nchar(2)
如何将数据从char
插入到nchar
?
请帮忙。
您没有说明您使用的平台,但需要告诉它进行转换。类似的东西
SELECT CAST(GOVTPROGYN as NCHAR(2)) FROM TABLENAME_YOU_DID_NOT_SAY
或
SELECT CAST(GOVTPROGYN as CHAR(1)) FROM TABLENAME_YOU_DID_NOT_SAY
根据标题错误,nchar
中的n
添加了对unicode的支持(与nvarchar
和varchar
相同)。您尝试插入的数据类型为char
,但您的目标字段(GovtProgYN
?)需要nchar
。
大多数SQL引擎都支持CAST
函数,它看起来像这样:CAST( field AS datatype )
。在您的情况下,您可能希望将插入值强制转换为nchar(2)
示例:
INSERT INTO Table ( GovtProgYN )
VALUES ( CAST ( @value AS nchar(2) )
某些SQL引擎(如SQL Server)要求您使用字符串的N
前缀指定unicode。如果要手动插入nchar
值,请使用N'c'
而不是'c'
示例:
INSERT INTO Table ( GovtProgYN )
VALUES ( N'c' )