在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'Кириллица' –