char和varchar2是oralce中的两种用来存储字符串的数据类型。但是其可以存储的字符的大小有一些特殊的地方。
长度:
在table 中:
char:1-255字节
varchar2:1-2000字节
在pl/sql中:
char:1-32767字节
varchar2:1-32767字节
所以根据以上,从pl/sql向table中insert,或者update数据的时候,要注意长度的变化。否则会出现“溢出”的错误
声明:
char的声明可以不用指定长度,系统会默认给一个8字节的长度。
varchar2必须指定长度
关于char和varchar2的使用
| 检索DB中的数据赋值给PL/SQL变量(“DB > PL/SQL”代表长度比较) | ||||
| DB(字段类型) | 赋值 | PL/SQL | DB > PL/SQL | DB <= PL/SQL |
| CHAR | ==〉 | VARCHAR2 | 长度溢出错 | DB中的内容原样赋给PL/SQL中的变量,如果CHAR型数据后有空格,不会被截掉 |
| VARCHAR2 | ==〉 | CHAR | 长度溢出错 | DB中的内容原样赋给PL/SQL中的变量,但是会补充空格 |
| PL/SQL中的数据登陆到DB中 | ||||
| PL/SQL | 赋值 | DB(字段类型) | PL/SQL > DB | DB <= PL/SQL |
| CHAR | ==〉 | VARCHAR2 | 长度溢出错 | 正常登陆数据,如果CHAR型数据后有空格,不会被截掉 |
| VARCHAR2 | ==〉 | CHAR | 长度溢出错 | 正常登陆,但是会自动补充空格 |
本文详细介绍了Oracle数据库中char和varchar2两种字符串类型的特性,包括它们在不同上下文中的最大长度限制,以及在PL/SQL与数据库表之间的数据交互时需要注意的事项。

3787

被折叠的 条评论
为什么被折叠?



