您的位置:首页 > 数据库 > Oracle

oracle从char赋值到varchar2的几种情况

2012-09-19 10:44 190 查看
三种情况:

1 char变量直接赋值到varchar2

2 function输出的char赋值到varchar2

3 procedure输出的char赋值到varchar2

set serveroutput on
declare
v_char char:='Y';
v_varcha2 varchar2(10);
function  functestchar return char
is
begin
return 'Y';
end functestchar;
procedure  testchar(p_polno      out        char)
is

begin
p_polno:='Y';
end testchar;
begin
v_varcha2:=v_char;
dbms_output.put_line('v_varcha2='||v_varcha2);
dbms_output.put_line('length(v_varcha2)='||length(v_varcha2));

testchar(v_varcha2);
dbms_output.put_line('v_varcha2='||v_varcha2);
dbms_output.put_line('length(v_varcha2)='||length(v_varcha2));

v_varcha2:=functestchar;
dbms_output.put_line('v_varcha2='||v_varcha2);
dbms_output.put_line('length(v_varcha2)='||length(v_varcha2));
end;
/

输出结果:

v_varcha2=Y

length(v_varcha2)=1

v_varcha2=Y

length(v_varcha2)=10

v_varcha2=Y

length(v_varcha2)=1

在9i和10g下的验证结果均为

char变量直接赋值 function输出的char赋值到varchar2,内容和位数不变,procedure输出的char赋值到varchar2,会按照位数在后面补空格
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: