标签: unicode

将 nvarchar(10) 复制到 char(10) 时出现“字符串或二进制数据将被截断”错误

我正在将一个 SQL 表/列中的值插入到另一个中。由于其他原因,这些列的数据类型不同,但我不明白为什么 nvarchar(10) 源和 char(10) 目标有时会在 SQL Server 2014 中导致错误:

字符串或二进制数据将被截断。

len(sourcecol) = 10 和 datalength(sourcecol) = 20。

可能是因为 nvarchar 类型的源列中存储了一些不可见的空格/字符?

sql-server collation encoding sql-server-2014 unicode

3
推荐指数
1
解决办法
8605
查看次数

错误:“sql”不是已知变量

这一定是我在这里问过的最愚蠢的问题之一,但是我的 SQL 脚本中肯定隐藏着一些非常恶心的问题,阻止它运行。

我正在使用以下示例 CLI 语法调用 cobertura.sql 文件:

psql -h localhost -U myUser -f cobertura.sql myDB
Run Code Online (Sandbox Code Playgroud)

但它抱怨以下错误:

psql:cobertura.sql:29: ERROR:  "sql " is not a known variable
LINE 14: sql := format('insert into cobertura_tmp select count(*) as ... cobertura.sql file:
Run Code Online (Sandbox Code Playgroud)
DO language plpgsql $$
declare 
    eq  record;
    sql varchar;
BEGIN

create table if not exists cobertura_tmp  (num integer, realtime char(1), lat numeric, lng numeric);

truncate table cobertura_tmp;
for eq in select imei_equipo as imei  from cliente_avl_equipo where id_cliente in (select id …
Run Code Online (Sandbox Code Playgroud)

postgresql scripting plpgsql postgresql-9.4 unicode

3
推荐指数
1
解决办法
4757
查看次数

在表格中插入特殊字符

我有几个字符被替换为?. 你如何保持表格中的原始字符?我要插入的字符是?; 带腰带的拉丁文小写字母 L。是否可以将此字符添加到表中?

sql-server collation insert t-sql unicode

3
推荐指数
1
解决办法
8828
查看次数

将 unicode 文本存储到 SQL Server 中的 varchar 列中

我错误地将 unicode 文本存储到varchar表中的一列中,现在它显示为问号 (???)。

是否有可能从列而不是问号中取回我们的主要信息???

sql-server varchar unicode

3
推荐指数
1
解决办法
2720
查看次数

乌克兰使用什么排序规则?

我们有一个带有 SQL Server 数据库的会计程序,并希望启动乌克兰版本。我不确定使用哪种排序规则:乌克兰语Cyrillic_General

对于非技术乌克兰语,我们比较了Cyrillic_general乌克兰语的校对图表,发现表末尾只有细微的差异。那个人认为Cyrillic_general应该没问题。

此外,SQL Server 2012 不再列出乌克兰语排序规则。这是一个令人担忧的理由吗?

有什么建议可以选择吗?

sql-server collation unicode

2
推荐指数
1
解决办法
1846
查看次数

如何在 SQL Server 2012 中禁用区分大小写?

我尝试collation_namesys.databases. 我正在尝试将 'SQL_Latin1_General_CP1_CS_AS' 更改为 'SQL_Latin1_General_CP1_CI_AS' 以禁用表中的区分大小写。

update d set d.collation_name='SQL_Latin1_General_CP1_CI_AS'
--SELECT name, collation_name 
FROM sys.databases d
WHERE name = 'db_name' 
Run Code Online (Sandbox Code Playgroud)

但是,我收到此错误:


不允许消息 259,级别 16,状态 1,第 1 行对系统目录进行临时更新。

collation character-set sql-server-2012 unicode

2
推荐指数
1
解决办法
2万
查看次数

即使源列和目标列都是 unicode,ssis 也无法在 unicode 和非 unicode 数据类型之间进行转换

我遇到了一个错误:“SSIS 无法在 unicode 和非 unicode 字符串数据类型之间转换”,即使源列和目标列都是 unicode (NVARCHAR) 数据类型。源数据库和目标数据库在同一台服务器上。

来源是一个查询:

SELECT 
   CASE
        WHEN [Gender__c] = 'Female' THEN 'N' 
        WHEN [Gender__c] = 'Male' THEN 'M'
        WHEN [Gender__c] = 'Nainen' THEN 'N' 
        WHEN [Gender__c] = 'Mies' THEN 'M'
        When [Gender__c] = 'Ei tiedossa' THEN 'Ei tiedossa'
        ELSE NULL 
    END as Gender__c
  FROM [database].[table] 
Run Code Online (Sandbox Code Playgroud)

有人见过一样的吗?

sql-server ssis unicode

2
推荐指数
1
解决办法
8360
查看次数

如何使用 SQL Server 数据库邮件发送 Unicode 符号?

如何使用 SQL Server 数据库邮件发送 Unicode 符号?我的目标是发送关于电子邮件主题的符号。比方说,我想发送关于该主题的“带有符号的主题”。我想使用的符号来自 Segoe UI Emoji 字体。

谢谢!

sql-server database-mail unicode

2
推荐指数
1
解决办法
1464
查看次数

PostgreSQL 的“collat​​es”中的“-x-icu”是什么意思?

我有这个查询:

SELECT * FROM table ORDER BY label ASC;
Run Code Online (Sandbox Code Playgroud)

由于标签不是英文的,它们没有按正确的顺序排序(以“ö”开头的标签不在底部/末尾)。

因此,我尝试:

SELECT * FROM table ORDER BY label COLLATE "sv-SE" ASC;
SELECT * FROM table ORDER BY label COLLATE "sv_SE" ASC;
Run Code Online (Sandbox Code Playgroud)

这些给出了关于那些不存在的排序规则的错误,这让我感到困惑。

经过一番搜索,我想出了这样做:

SELECT * FROM pg_collation;
Run Code Online (Sandbox Code Playgroud)

这表明它应该是:

sv-SE-x-icu
Run Code Online (Sandbox Code Playgroud)

当我使用该标识符时它起作用了,但是“-x-icu”的东西有什么用?那是怎么回事?我讨厌他们总是不得不弄乱标准的语言环境标识符,所以你永远不能只依赖标准的“language_location”格式。

postgresql collation unicode international-components-unicode

2
推荐指数
1
解决办法
411
查看次数

当字符串包含阿拉伯语单词时,如何在 SELECT CASE 中创建新列?

我的 select case when 语句有问题,我想在 select case when 语句中添加一个新列,我得到了结果,但是?????因为我已将该列设置为阿拉伯语单词,所以我试图转换新列nvarchar(55)不幸的是,我得到了相同的结果。

我怎样才能得到正确的结果?

SELECT case when ( CAST(o.startTime as time(7)) > cast(Start as time(7))) 
          then  cast('????' as nvarchar(55))
          else cast('????' as nvarchar(55)) end as stat,
       userId, FirstName
from   Users, TimeTable
Run Code Online (Sandbox Code Playgroud)

sql-server collation case encoding unicode

2
推荐指数
1
解决办法
318
查看次数

sp_send_dbmail 在结果集中的所有字符之间填充 00 位

我在每晚触发的 SQL 代理作业中使用 sp_send_dbmail。该作业查询我们的数据库并检查产品价格更新,如果有,它将通过电子邮件作为附件发送给我们的电子商务供应商。他们有一些自动流程,他们会更新我们的电子商务平台,但是他们的自动流程无法处理 sp_send_dbmail 提供的文件。sp_send_dbmail 似乎在结果集中的所有字符之间放置了空字符。

查看在十六进制编辑器中打开 csv 的结果:

十六进制捕捉

通过文本编辑器查看我看到的预期:

文字捕捉

sp_send_dbmail 在这里查询:

    SET @FileName = 'Update_' + CONVERT(VARCHAR(12),GETDATE),105) '.csv'        
    SET @Query = 'Some Query'

    EXEC msdb.dbo.sp_send_dbmail
        @recipients = 'me@domain.com'
        @query = @Query
        @attach_query_result_as_file = 1
        @query_attachment_filename = @FileName
        @query_result_separator = ','
        @query_result_no_padding =  1
    END
Run Code Online (Sandbox Code Playgroud)

这里发生了什么?

****编辑补充说明****

使用 Microsoft SQL Server 2008 R2 排序规则为 Latin1_General_CI_AS

离开 no_padding 会在每个返回的字段中留下几个尾随空格。每个空格 (20) 由​​空值 (00) 分隔

NoPadCapture

sql-server t-sql database-mail encoding unicode

1
推荐指数
1
解决办法
692
查看次数

特信行为问题?

我以非常模糊的方式提出问题,因为我无法用简短的句子解释我的问题是什么。

一般来说,我有一组转换文本和 XML 的过程。里面的程序,我有很多NVARCHARXML变量与表XML列。在我的数据中,我有特殊的字母(例如ò)。当我运行所有代码时,特殊字符消失并显示为?- 这意味着我得到了VARCHAR而不是NVARCHAR.

总的来说,我一切都好,直到最后的步骤。我得到了EXEC哪个调用存储过程具有类型为临时构造的变量NVARCHAR。我有一个包含XML字段的表。在这种情况下,我得到了?. 如果我手动运行程序(不在 中EXEC INTO),我会得到正确的符号。

任何想法为什么会发生这种情况?我检查了所有变量,它们是NVARCHAR.

xml dynamic-sql sql-server-2012 cast unicode

0
推荐指数
1
解决办法
47
查看次数