oracle varchar2最大支持长度
来源:互联网 发布:数据对比ppt模板 编辑:程序博客网 时间:2024/05/20 10:22
网上经常有人问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_varchar2values(1,lpad('中',32767,'中'));
- insert into idb_varchar2values(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 ondeclare 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 ondw@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 /3276732767declare*第 1 行出现错误:ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太小ORA-06512: 在 line 9dw@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)
转载请注明:本文来自iDB Stock:http://www.idb-stock.net/idb/2011/05/26/143.html
- oracle varchar2最大支持长度
- Oracle varchar2最大支持长度
- Oracle varchar2最大支持长度
- ORACLE VARCHAR2最大长度问题
- 关于oracle中varchar2的最大长度
- 关于oracle中varchar2的最大长度
- 关于oracle中varchar2的最大长度
- 关于oracle中varchar2的最大长度
- 关于oracle中varchar2的最大长度
- 关于oracle中varchar2的最大长度
- 关于oracle中varchar2的最大长度
- Oracle的varchar2类型最大长度为4000, PLSQL的varchar2最大长度为32762
- varchar2 的最大长度
- oracle中关于varchar2的最大长度问题
- ORACLE VARCHAR2最大长度是4000?还是32767?
- Oracle的varchar2的最大长度,编码问题
- ORACLE VARCHAR2最大长度问题[作者:潇湘隐者]
- Oracle varchar2 长度
- Extjs中的success和failure
- 使用ibatis 通过多个参数来执行查询
- javascript:history.go()和History.back()
- 判定被7整除的简易方法【Martix67】
- androidpn研究成果
- oracle varchar2最大支持长度
- djmount 的一般使用
- getchar的返回值问题
- 第二周实验报告1-2
- 验证身份证号码
- 同余运算及其基本性质【Matrix67】
- UML类图的画法
- 素数与素性测试【Matrix67】
- 我来了