声明变量时将'CHAR'与数据类型大小一起使用的原因是什么



为什么'CHAR'使用WITH SIZE ?

declare
lf  constant varchar2(1 char) := chr(10);
lf2 constant varchar2(2 char) := lf || lf;
begin
dbms_output.put_line('LINE-X'||lf||'LINE-Y'||lf2||'LINE-Z');
end;

结果如下

x直线y

LINE-Z

PL/SQL procedure successfully completed.

如果可能的话,我们可以在什么情况下使用'CHAR'?

在声明varchar2数据类型变量(或列)时,在设置其大小时有两个选项:charbyte:

SQL> create table test
2    (a    varchar2(1 byte),
3     b    varchar2(2 char)
4    );
Table created.
SQL>

第一个选项(byte)意味着为该列保留恰好一个字节。第二个选项(char)意味着您选择存储一个字符到那一列。在许多/大多数情况下,没有区别。但是,如果使用包含多字节字符的字符集,你不能告诉每个字符占用多少字节,所以-例如-varchar2(2 byte)不能保证你将设法存储所有字符(例如,使用3个字节的字符将不适合)。

相关内容

  • 没有找到相关文章

最新更新