在FireRobin,我试图创建一个包含西里尔字母中有一个视图用西里尔字母一个观点:火鸟创建WHERE子句中
CREATE VIEW "CyrillicView" (PRIM)
AS
SELECT
PRIM
FROM ROYALTY
WHERE
(ROYALTY.PRIM = 'Кириллица');
不幸的是,它导致错误:
Message: isc_dsql_execute2 failed
SQL Message : -607 This operation is not defined for system tables.
Engine Code : 335544351 Engine Message : unsuccessful metadata update STORE RDB$RELATIONS failed Malformed string
当我用拉丁字母替换西里尔字母时,一切正常。 此外,我注意到,当我从上面的代码只运行SELECT语句 - 即使西里尔文字母在它工作正常。
我试着用UTF-8字符集连接到FireBird,甚至用西里尔字母成功创建了一个视图。但它没用,因为当我连接“无”字符集(正确的)时,视图根本不返回任何行。我检查了视图创建代码,它看起来像这样:
CREATE VIEW CYR (PRIM)
AS
SELECT
PRIM
FROM ROYALTY
WHERE
(ROYALTY.PRIM = 'Кириллица')
虽然与NONE字符集(正确的)与FireRobin连接:
- 可以写工作SELECT查询用西里尔字母 使用西里尔字母
- 可以不西里尔字母创建视图时创建,同时用UTF-8连接
- 视图和包含西里尔字母r
- 无法创建视图E打开什么
虽然用UTF-8字符集(错误的)与FIreRibon连接: - 可以创建与西里尔字母视图(实际上不返回任何值) - 用无所有列字符集不包含结果中的值
也许有人可以建议我可以在这里做什么?我可以以某种方式在where子句中指定不要ruion我的编码?也许,在火鸟有一个特殊的符号,就像在SQL Server中,我可以UNCODE字符串前放像这样:
CREATE VIEW CYR (PRIM)
AS
SELECT
PRIM
FROM ROYALTY
WHERE
(ROYALTY.PRIM = N'Кириллица')
附加信息:
- 火鸟2.5.2
- 数据库字符集为NONE
- 所有的数据库中的列沙雷是NONE
马克,非常感谢你!它实际上有帮助!在我的情况下得到的查询如下所示:Cast(ROYALTY.PRIM as varchar(100)character set win1251)= _win1251'Кириллица' –