温故知新-数据类型

    xiaoxiao2021-03-25  36

    1.char和varchar2

    char:定长 长度不够会自动补齐空格 浪费空间 varchar2:多余的长度不会补空格 节省磁盘空间 DECLARE v_len1 CHAR(10):='ABC'; v_len2 VARCHAR2(10):='ABC'; BEGIN dbms_output.put_line('v_len1的长度:'||LENGTH(v_len1)); dbms_output.put_line('v_len2的长度:'||LENGTH(v_len2)); END;

    ————————output——————————— v_len1的长度:10 v_len2的长度:3

    2.NCHAR和NVARCHAR2

    NCHAR和NVARCHAR2保存数据使用unicode编码,统一了英文和汉字的长度。进行字符处理时方便,会浪费一定的空间。

    DECLARE v_len1 NVARCHAR2(10):='ABCD'; v_len2 NVARCHAR2(10):='我爱中国'; BEGIN dbms_output.put_line('v_len1的长度:'||LENGTH(v_len1)); dbms_output.put_line('v_len2的长度:'||LENGTH(v_len2)); END;

    ———————output——————————– v_len1的长度:4 v_len2的长度:4

    DECLARE v_len1 VARCHAR2(10):='我爱中国天安门'; v_len2 NVARCHAR2(10):='我爱中国天安门'; BEGIN dbms_output.put_line('v_len1的长度:'||LENGTH(v_len1)); dbms_output.put_line('v_len2的长度:'||LENGTH(v_len2)); END;

    同样的字符串,VARCHAR2类型的报字符串缓冲区太小的错误。一般建议存储汉字时使用NVARCHAR2。

    转载请注明原文地址: https://ju.6miu.com/read-278191.html

    最新回复(0)