您当前的位置: 首页 > 数据库教程 > Oracle教程 > PL/SQL的几个概念区别

PL/SQL的几个概念区别

作者:不详 来源:网络 发布时间: 2014-08-28 10:46 点击:
1:char 和 varchar2的区别: varchar2 :variable-length 变长 char : fixed-length 固定长度 char定义的时候分配内存,而varchar2动态分配内存 下面一个例子明确的说明了这两个的区别 : SQL DECLARE 2 c CHAR(32767) := ' '; 3 v VARCHAR2(32767) := ' '; 4 BEGIN

PL/SQL的几个概念区别

  1:char 和 varchar2的区别:

  varchar2 :variable-length 变长

  char : fixed-length 固定长度

  char定义的时候分配内存,而varchar2动态分配内存

  下面一个例子明确的说明了这两个的区别 :

  SQL> DECLARE

  2 c CHAR(32767) := ' ';

  3 v VARCHAR2(32767) := ' ';

  4 BEGIN

  5 dbms_output.put_line('c is ['||LENGTH(c)||']');

  6 dbms_output.put_line('v is ['||LENGTH(v)||']');

  7 v := v || ' ';

  8 dbms_output.put_line('v is ['||LENGTH(v)||']'); END;

  9 /

  c is [32767]

  v is [1]

  v is [2]

  PL/SQL 过程已成功完成。

  输出的结果显示:CHAR类型变量在定义的时候分配内存,分配的内存也可能超过变量定义的大小,VARCHAR2类型变量动态分配内存,根据设置的变量的大校

  下面的例子也说明这一点:

  SQL> DECLARE

  2 c CHAR(32767) := ' ';

  3 v VARCHAR2(32767) := ' ';

  4 var1 CHAR := ' '; -- Implicitly sized at 1 byte.

  5 var2 CHAR(1) := ' '; -- Explicitly sized at 1 byte.

  6 var3 CHAR(1 BYTE) := ' '; -- Explicitly sized at 1 byte.

  7 var4 CHAR(1 CHAR) := ' '; -- Explicitly sized at 1 character.

  8 BEGIN

  9 dbms_output.put_line('c is ['||LENGTH(c)||']');

  10 dbms_output.put_line('v is ['||LENGTH(v)||']');

  11 dbms_output.put_line('var1 is ['||LENGTH(var1)||']');

  12 dbms_output.put_line('var2 is ['||LENGTH(var2)||']');

  13 dbms_output.put_line('var3 is ['||LENGTH(var3)||']');

  14 dbms_output.put_line('var4 is ['||LENGTH(var4)||']');

  15 v := v || ' ';

  16 dbms_output.put_line('v is ['||LENGTH(v)||']'); END;

  17 /

  c is [32767]

  v is [1]

  var1 is [1]

  var2 is [1]

  var3 is [1]

  var4 is [1]

  v is [2]

  2:character 和 char的区别:

  CHARACTER类型是CHAR的subtype,CHARACTER类型和它的基类优相同的大小,在CHAR和CHARACTER数据类型之间隐式转换。以下是一个subtype的定义:

  SUBTYPE subtype_name IS base_type[(maximum_size [BYTE | CHAR])] [NOT NULL];

  应用例子:

  SQL> DECLARE

  2 SUBTYPE code IS CHAR(1 CHAR);

  3 c CHAR(1 CHAR) := 'A';

  4 d CODE;

  5 BEGIN

  6 d := c;

  7 END;

  8 /

  PL/SQL 过程已成功完成。
分享到:
本文"PL/SQL的几个概念区别"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4