Oracle   发布时间:2022-05-17  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Oracle varchar2最大支持长度大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

Oracle varchar2最大支持长度

[日期:2012-03-06] 来源:linux社区 作者:linux [字体:大中小]

网上经常有人问Oraclevarchar2最大支持长度为多少?其实这个叫法不太准确,varchar2分别在oracle的sql和pl/sql中都有使用,oracle 在sql参考手册和pl/sql参考手册中指出:oracle sql varchar2的最大支持长度为4000个字节(bytes);而 oracle plsql varchar2最大支持长度为32767个字节。这就是有朋友问,在pl/sql中定义了32767个(字符/字节),为什么在表的字段中不能定义大于4000个字节的原因了。

下面分别给出varchar2在oracle sql和plsql中最大长度的示例。

oracle sql中varchar2最大支持长度示例–最大长度为4000

  1. droptableIDb_varchar2;
  2. createtableIDb_varchar2
  3. (ID number,
  4. namevarchar2(4000char));
  5. insertintoIDb_varchar2values(1,lpad('中',32767,'中'));
  6. insertintoIDb_varchar2values(2,lpad('a','b'));
  7. commit;
  8. selectID,lengthb(name),length(name)fromIDb_varchar2;
  1. droptableIDb_varchar2;
  2. createtableIDb_varchar2
  3. (IDnumber,length(name)fromIDb_varchar2;

输出结果:

DW@DW>drop table IDb_varchar2; 表已删除。 DW@DW>create table IDb_varchar2 2 (ID number,3 name varchar2(4000 char)); 表已创建。 DW@DW>insert into IDb_varchar2 values(1,lpad('中','中')); 已创建 1 行。 DW@DW>insert into IDb_varchar2 values(2,lpad('a','b')); 已创建 1 行。 DW@DW>commit; 提交完成。 DW@DW>select ID,lengthb(name),length(name) from IDb_varchar2; ID LENGTHB(name) LENGTH(name) ---------- ------------- ------------ 1 4000 2000 2 4000 4000 已选择2行。

oracle sql中varchar2最大支持长度示例–设计长度为4001

  1. droptableIDb_varchar2;
  2. createtableIDb_varchar2
  3. (ID number,
  4. namevarchar2(4001));
Title="?" href="http://code.js-code.com/article/p-bIDzyybp-bgw.HTML" style="color:rgb(179,
  • namevarchar2(4001));
  • 结果:

    1. setserveroutputon
    2. declare
    3. v_var varchar2(32767 byte);
    4. v_char varchar2(32767char);
    5. begin
    6. v_var := lpad('a','a');
    7. dbms_output.put_line(length(v_var));
    8. v_char := lpad('中','中');
    9. dbms_output.put_line(lengthb(v_var));
    10. v_var := lpad('中',32768,'中');
    11. end;
    12. /
    13. @H_176_404@--定义如果超过32768会报错
    14. declare
    15. v_var varchar2(32768);
    16. begin
    17. null;
    18. end;
    19. /
    1. setserveroutputon
    2. declare
    3. v_varvarchar2(32767byte);
    4. v_charvarchar2(32767char);
    5. begin
    6. v_var:=lpad('a','a');
    7. dbms_output.put_line(length(v_var));
    8. v_char:=lpad('中','中');
    9. dbms_output.put_line(lengthb(v_var));
    10. v_var:=lpad('中','中');
    11. end;
    12. /
    13. @H_176_404@--定义如果超过32768会报错
    14. declare
    15. v_varvarchar2(32768);
    16. begin
    17. null;
    18. end;
    19. /

    输出结果:

    DW@DW>set serveroutput on
    DW@DW>declare
      2    v_var varchar2(32767 byte);
      3    v_char varchar2(32767 char);
      4  begin
      5    v_var := lpad('a','a');
      6    dbms_output.put_line(length(v_var));
      7    v_char := lpad('中','中');
      8    dbms_output.put_line(lengthb(v_var));
      9    v_var := lpad('中','中');
     10  end;
     11  /
    32767
    32767
    declare
    *
    第 1 行出现错误:
    ORA-06502: PL/sql: 数字或值错误 :  字符串缓冲区太小
    ORA-06512: 在 line 9
    
    DW@DW>
    DW@DW>declare
      2    v_var varchar2(32768);
      3  begin
      4    null;
      5  end;
      6  /
      v_var varchar2(32768);
                     *
    第 2 行出现错误:
    ORA-06550: 第 2 行,第 18 列:
    PLS-00215: 字符串长度限制在范围 (1...32767)
    本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
    编程之家官方1群(满)
    编程之家官方2群(满)
    编程之家官方3群(满)
    编程之家官方4群
    编程之家官方5群(新)
    • 上一篇:plsql连接不上Oracle数据库下一篇:oracle行锁 select for update

    大佬总结

    以上是大佬教程为你收集整理的Oracle varchar2最大支持长度全部内容,希望文章能够帮你解决Oracle varchar2最大支持长度所遇到的程序开发问题。

    如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

    本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
    如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
    标签: