char nchar 有什么区别???
nchar是unicode编码,那char是什么编码???
另外:下面为什么能执行????
create table test_t(
test_char char(10),
test_nchar nchar(10)
)tablespace sunxf;
select * from test_t;
delete from test_t;
insert into test_t values('char','nchar');
declare
v_char test_t.test_char%type;
v_nchar test_t.test_nchar%type;
begin
select test_char,test_nchar into v_char,v_nchar from test_t;
dbms_output.put_line(v_char||' '||v_nchar);
insert into test_t values(v_nchar,v_char);
end; 没有显示转换也可以呀????
nchar是unicode编码,那char是什么编码???
另外:下面为什么能执行????
create table test_t(
test_char char(10),
test_nchar nchar(10)
)tablespace sunxf;
select * from test_t;
delete from test_t;
insert into test_t values('char','nchar');
declare
v_char test_t.test_char%type;
v_nchar test_t.test_nchar%type;
begin
select test_char,test_nchar into v_char,v_nchar from test_t;
dbms_output.put_line(v_char||' '||v_nchar);
insert into test_t values(v_nchar,v_char);
end; 没有显示转换也可以呀????
NCHAR根据所选字符集来定义存放字符的占用字节数,一般都为2个字节存放一个字符(不管字符或者汉字)
2 where parameter in('NLS_NCHAR_CHARACTERSET','NLS_CHARACTERSET');PARAMETER VALUE
------------------------------ --------------------------------------------------------------------
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_CHARACTERSET ZHS16GBK
如本例,区别就是你的varchar,char将采用ZHS16GBK字符集,而nvarchar,nchar将采用AL16UTF16字符集。