• <ul id="mayc0"></ul>
    <ul id="mayc0"><center id="mayc0"></center></ul>
    <strike id="mayc0"><input id="mayc0"></input></strike>
    <ul id="mayc0"></ul>
  • 始創于2000年 股票代碼:831685
    咨詢熱線:0371-60135900 注冊有禮 登錄
    • 掛牌上市企業
    • 60秒人工響應
    • 99.99%連通率
    • 7*24h人工
    • 故障100倍補償
    您的位置: 網站首頁 > 幫助中心>文章內容

    Oracle varchar2最大支持長度

    發布時間:  2012/9/3 16:49:01

    網上經常有人問Oracle varchar2最大支持長度為多少?其實這個叫法不太準確,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

    drop table idb_varchar2;
    create table idb_varchar2
    (id number,
    name varchar2(4000 char));
    insert into idb_varchar2 values(1,lpad('中',32767,'中'));
    insert into idb_varchar2 values(2,lpad('a',32767,'b'));
    commit;
    select id,lengthb(name),length(name) from idb_varchar2;
     
    drop table idb_varchar2;  
    create table idb_varchar2  
    (id number,  
    name varchar2(4000 char));  
    insert into idb_varchar2 values(1,lpad('中',32767,'中'));  
    insert into idb_varchar2 values(2,lpad('a',32767,'b'));  
    commit;  
    select id,lengthb(name),length(name) from idb_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('中',32767,'中')); 已創建 1 行。 dw@dw>insert into idb_varchar2 values(2,lpad('a',32767,'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

    drop table idb_varchar2;
    create table idb_varchar2
    (id number,
    name varchar2(4001));
     
    drop table idb_varchar2;  
    create table idb_varchar2  
    (id number,  
    name varchar2(4001)); 
    結果:

    dw@dw>drop table idb_varchar2; 表已刪除。 dw@dw>create table idb_varchar2 2 (id number, 3 name varchar2(4001)); name varchar2(4001)) * 第 3 行出現錯誤: ORA-00910: 指定的長度對于數據類型而言過長

    超過4001會報錯。

    Oracle plsql中varchar2最大支持長度示例

    set serveroutput on
    declare
    v_var varchar2(32767 byte);
    v_char varchar2(32767 char);
    begin
    v_var := lpad('a',32767,'a');
    dbms_output.put_line(length(v_var));
    v_char := lpad('中',32767,'中');
    dbms_output.put_line(lengthb(v_var));
    v_var := lpad('中',32768,'中');
    end;
    /

    --定義如果超過32768會報錯
    declare
    v_var varchar2(32768);
    begin
    null;
    end;
    /
     
    set serveroutput on  
    declare  
      v_var varchar2(32767 byte);  
      v_char varchar2(32767 char);  
    begin  
      v_var := lpad('a',32767,'a');  
      dbms_output.put_line(length(v_var));  
      v_char := lpad('中',32767,'中');  
      dbms_output.put_line(lengthb(v_var));  
      v_var := lpad('中',32768,'中');  
    end;  
    /  
      
    --定義如果超過32768會報錯   
    declare  
      v_var varchar2(32768);  
    begin  
      null;  
    end;  

    輸出結果:

    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',32767,'a');
      6    dbms_output.put_line(length(v_var));
      7    v_char := lpad('中',32767,'中');
      8    dbms_output.put_line(lengthb(v_var));
      9    v_var := lpad('中',32768,'中');
     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)
     


    本文出自:億恩科技【www.vbseamall.com】

    服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經營性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經營性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經營性ICP/ISP證:贛B2-20080012
  • 服務器/云主機 24小時售后服務電話:0371-60135900
  • 虛擬主機/智能建站 24小時售后服務電話:0371-60135900
  • 專注服務器托管17年
    掃掃關注-微信公眾號
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權所有  地址:鄭州市高新區翠竹街1號總部企業基地億恩大廈  法律顧問:河南亞太人律師事務所郝建鋒、杜慧月律師   京公網安備41019702002023號
      1
     
     
     
     

    0371-60135900
    7*24小時客服服務熱線