一级女人毛片人一女人-一级女性大黄生活片免费-一级女性全黄久久生活片-一级女性全黄生活片免费-国产美女在线一区二区三区-国产美女在线观看

始創于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.laynepeng.cn】

服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!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小時客服服務熱線