token@cqlsh:baselines> create table if not exists so_blob_as(i int primary key, b blob);
token@cqlsh:baselines> insert into so_blob_as(i,b) values (1,textasblob('1'));
token@cqlsh:baselines> select * from so_blob_as ;
i | b
---+------
1 | 0x31
(1 rows)
token@cqlsh:baselines> select i, blobastext(b) from so_blob_as ;
i | system.blobastext(b)
---+----------------------
1 | 1
(1 rows)
字符串 然而,这就是集合的工作原理,
token@cqlsh:baselines> alter table so_blob_as add m_tb map<text,blob>;
token@cqlsh:baselines> desc so_blob_as ;
CREATE TABLE baselines.so_blob_as (
i int PRIMARY KEY,
b blob,
m_tb map<text, blob>
)...
token@cqlsh:baselines> update so_blob_as set m_tb = {'1': textasblob('1')} where i = 1;
token@cqlsh:baselines> SELECT * FROM so_blob_as ;
i | b | m_tb
---+------+-------------
1 | 0x31 | {'1': 0x31}
(1 rows)
>>>This below will work<<<
token@cqlsh:baselines> SELECT i,blobastext(b),blobastext(m_tb) FROM so_blob_as ;
i | system.blobastext(b) | system.blobastext(m_tb)
---+----------------------+----------------------------------------------------
1 | 1 | \x00\x00\x00\x01\x00\x00\x00\x011\x00\x00\x00\x011
(1 rows)
1条答案
按热度按时间u3r8eeie1#
首先,我甚至不知道
:attrs
作为列名是否支持使用除下划线(_
)以外的特殊字符,但让我们暂时搁置它。blobAsText
native cql function不支持您在此尝试的集合列类型。看到这里作为一个例子,这下面的作品:
字符串
然而,这就是集合的工作原理,
型
如果你想要一个给定键的值并转换它,你需要做at the application side。