VARBINARY类型
功能描述
Vastbase G100在SQL Server兼容模式下支持VARBINARY类型。varbinary为可变长度二进制字符串类型,存储的是二进制数据。其中包括三种类型定义:
varbinary,插入值可变长。
varbinary(n),插入值的长度为n,数据长度可以在 1到8000之间,其中包括1和8000。
varbinary(max),插入值的长度为max,代表长度为2147483647。
语法参考
varbinary
varbinary(n)
varbinary(max)
参数说明
n
变长值指定长度。
取值范围:1~8000
单位:byte
max
最大值。
代表长度:2147483647。
单位:byte
注意事项
该功能仅在数据库兼容模式为SQL Server时支持(即数据库实例初始化时指定DBCOMPATIBILITY='MSSQL')。
Vastbase G100进行类型转换时,其他类型转为varbinary类型可能存在结果与SQL Server中类型转换的结果不一致的情况。
示例
示例1: 在系统表中查找varbinary类型。
\x --列式展示查询结果
select * from pg_type where typname='varbinary';
结果显示为:
-[ RECORD 1 ]--+------------------
typname | varbinary
typnamespace | 11
typowner | 10
typlen | -1
typbyval | f
typtype | b
typcategory | U
typispreferred | f
typisdefined | t
typdelim | ,
typrelid | 0
typelem | 0
typarray | 0
typinput | varbinaryin
typoutput | varbinaryout
typreceive | varbinaryrecv
typsend | binarysend
typmodin | varbinarytypmodin
typmodout | binarytypmodout
typanalyze | -
typalign | i
typstorage | x
typnotnull | f
typbasetype | 0
typtypmod | -1
typndims | 0
typcollation | 0
typdefaultbin |
typdefault |
typacl |
示例2: 创建带varbinary类型的表,并插入数据。
1、创建带varbinary类型的表,并插入数据,可以成功创建并插入数据。
create table test1(col1 int,col2 varbinary);
insert into test1 values(1,12);
insert into test1 values(3,null);
insert into test1 values(1,'0xFF');
insert into test1 values(1,'0x100');
2、查询表记录。
select * from test1;
结果显示为:
col1 | col2
------+------
1 | 0x0c
3 |
1 | 0xff
1 | 0x01
(4 rows)
示例3: 创建带varbinary(n)类型的表。
1、创建带varbinary(n)类型的表。
create table test2(col3 varbinary(0));
create table test3(col3 varbinary(1));
create table test4(col3 varbinary(8000));
create table test5(col3 varbinary(8001));
只有当n值符合1~8000范围内才能创建表成功,否则创建表失败。以上四条建表语句的结果显示为test3、test4表创建成功,test2、test5表创建失败:
ERROR: varbinary(n): n must be a value from 1 through 8000
CREATE TABLE
CREATE TABLE
ERROR: varbinary(n): n must be a value from 1 through 8000
2、分别向带varbinary(1)、varbinary(8000)字段的表中插入数据。
insert into test3 values('0x123456');
insert into test4 values('0x123456');
以上两条插入语句结果为插入test3失败,插入test4成功:
ERROR: value too long for type varbinary(1)
INSERT 0 1
3、查询test4表中插入的记录。
select * from test4;
结果显示为:
col3
----------
0x123456
(1 row)
示例4: 创建带varbinary(max)类型的表。
1、创建带varbinary(max)类型的表。
create table test6(col4 varbinary(max));
2、向带varbinary(max)类型的表插入数据。
insert into test6 values('\x123456');
select * from test6;
查询结果为:
col4
----------
0x123456
(1 row)