现在的位置: 首页 > 综合 > 正文

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

2014年09月05日 ⁄ 综合 ⁄ 共 874字 ⁄ 字号 评论关闭

三种情况:

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,会按照位数在后面补空格

 

抱歉!评论已关闭.