13ESQLC中使用VARCHAR数据类型Word下载.docx

上传人:b****3 文档编号:6358801 上传时间:2023-05-06 格式:DOCX 页数:10 大小:648.97KB
下载 相关 举报
13ESQLC中使用VARCHAR数据类型Word下载.docx_第1页
第1页 / 共10页
13ESQLC中使用VARCHAR数据类型Word下载.docx_第2页
第2页 / 共10页
13ESQLC中使用VARCHAR数据类型Word下载.docx_第3页
第3页 / 共10页
13ESQLC中使用VARCHAR数据类型Word下载.docx_第4页
第4页 / 共10页
13ESQLC中使用VARCHAR数据类型Word下载.docx_第5页
第5页 / 共10页
13ESQLC中使用VARCHAR数据类型Word下载.docx_第6页
第6页 / 共10页
13ESQLC中使用VARCHAR数据类型Word下载.docx_第7页
第7页 / 共10页
13ESQLC中使用VARCHAR数据类型Word下载.docx_第8页
第8页 / 共10页
13ESQLC中使用VARCHAR数据类型Word下载.docx_第9页
第9页 / 共10页
13ESQLC中使用VARCHAR数据类型Word下载.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

13ESQLC中使用VARCHAR数据类型Word下载.docx

《13ESQLC中使用VARCHAR数据类型Word下载.docx》由会员分享,可在线阅读,更多相关《13ESQLC中使用VARCHAR数据类型Word下载.docx(10页珍藏版)》请在冰点文库上搜索。

13ESQLC中使用VARCHAR数据类型Word下载.docx

$varcharHostName[n];

VARCHAR值简单地作为字符数组储存。

当定义VARCHAR宿主变量时,指定数组的大小n,就象定义其它字符类型一样,说明时多定义一个字节以使用空值来结束VARCHAR变量。

数组的大小应当反映变量的最大空间,类似于VARCHAR字段。

同VARCHAR字段所不同的是,不必说明最小空间。

另外,可以使用下面的语法来为VARCHAR定义宿主变量:

$stringHostName[n];

如果把变量定义为STRING类型,它也是一个字符数组。

VARCHAR或STRING宿主变量的值可能有尾部空格。

当这类的值插入到VARCHAR字段中时,这些尾部空格被保留但不会增加。

当把VARCHAR字段的值存放到内存中时,对于所有的宿主变量类型,除了一种以外,数据库服务器保留用户输入的末尾的空格。

当把VARCHAR类型的值存放到STRING宿主变量中时,数据库会去掉所有的尾部空格,仅保留前面的非空格字符。

有时可能需要使用VARCHAR类型的大小参数:

例如,可能想知道要保留多大的缓冲区以存放某个VARCHAR值。

VARCHAR字段的大小信息是以一个编码值存储的,存放在syscolumns目录的字段collength中。

在该编码值中有为VARCHAR字段定义的最大和最小的长度。

在头文件varchar.h中有四个宏,可以简化该编码值的使用:

VCLENGTH(size)

返回VARCHAR类型的宿主数组需要的大小(为存放空值结束符,加上1)。

VCMIN(size)

返回VARCHAR类型的最小长度。

VCMAX(size)

返回VARCHAR类型的最大长度。

VCSIZE(max,min)

返回基于最大长度和最小长度的编码值。

宏的参数size是syscolumns中的编码整数值。

这些宏的定义是:

VCLENGTH(len)(VCMAX(len)+1)

VCMIN(size)(((size)>

>

8)&

0x00ff)

VCMAX(size)((size)&

VCSIZE(max,min)(((min)<

<

8)&

0xff00)+((max)&

0x00ff))

作为一个例子,如果想找出VARCHAR字段cat_advert的最大长度,可以使用上面的代码。

在该例子中,我们访问syscolumns系统目录,获得想要的字段的collength值。

然后,使用宏VCLENGTH来抽取在内存中存放cat_advert字段的VARCHAR值所需要的字节数。

该返回值把存放字符数组的空值结束符的一个字节包括在内。

也可以使用VCMAX来得到字段的最大长度。

如果操作的是FIXCHAR类型而不是VARCHAR类型的宿主变量,使用VCMAX会更方便。

当把VARCHAR字段存放到CHAR类型的宿主变量时,下面的规则决定了所涉及到的转换的结果。

●如果源VARCHAR字符串比目的CHAR变量要长,字符串被截断以适合CHAR宿主变量。

如果使用了指示变量,则它的值被设置,以指明发生了截断。

CHAR宿主变量中的字符串以空值结束。

●如果目的CHAR宿主变量比选择的VARCHAR字符串要长,则CHAR宿主变量的末尾用空格来填充,并且,结果字符串以空值结束。

当把VARCHAR字段存放到FIXCHAR类型的宿主变量时,下面的规则决定了所涉及到的转换的结果。

●如果源VARCHAR字符串比目的FIXCHAR宿主变量要长,字符串被截断以适合FIXCHAR宿主变量。

●如果目的FIXCHAR宿主变量比源VARCHAR字符串要长,则FIXCHAR宿主变量的末尾用空格来填充。

当把VARCHAR字段存放到STRING类型的宿主变量时,下面的规则决定了所涉及到的转换的结果。

●如果源VARCHAR字符串比目的STRING宿主变量要长,字符串被截断以适合STRING宿主变量。

STRING宿主变量中的字符串以空值来结束。

●如果目的STRING宿主变量比源VARCHAR字符串要长,则把字符串赋给STRING宿主变量,字符串以空值结束。

当把CHAR字段存放到VARCHAR类型的宿主变量时,下面的规则决定了所涉及到的转换的结果。

●如果源CHAR字符串比目的VARCHAR宿主变量要长,字符串被截断以适合VARCHAR宿主变量。

VARCHAR宿主变量中的字符串以空值来结束。

●如果目的VARCHAR宿主变量比源CHAR字符串要长,则把VARCHAR宿主变量的长度为CHAR字符串的长度,VARCHAR宿主变量中的字符串以空值结束。

换言之,使用上面的例子:

源字段是SQL的CHAR(8)类型,它有八个字符friday。

目的宿主变量是SQLVARCHAR(最大=16)。

一旦把friday存放到VARCHAR宿主变量中,如果针对该值调用stleng()函数,则得到的长度为8。

回答上面的两个问题。

答案

第11页

1.当把VARCHAR字段的值存放到VARCHAR宿主变量中时,数据库服务器保留用户输入的末尾的空格,并以空值来结束字符串。

当把VARCHAR字段的值存放到STRING宿主变量中时,数据库服务器去掉用户输入的末尾的空格,并以空值来结束字符串。

2.给定一个编码值,VCLENGTH和VCSIZE两个宏都可以抽出相关的VARCHAR字段的最大的字节长度。

但是,VCLENGTH会多加上一个字节长度以存放空值结束符。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2