oracle 9i
create table TB1
(
ID NUMBER(10) not null,
CODE NCHAR(20),
NAME VARCHAR2(100)
)create or replace function format(code in varchar2)
return varchar2 deterministic
as
begin
return replace(code,'-','');
end;select rownum,code,format(code) as code0 from tb1 where rownum<=300;结果是前100条的code0值正常?100后面的code0都是null?
也就是说:不管format怎么写,执行100次后,参数code将不能从nchar转为varchar2我有两个表用到,分别是nchar和varchar2类型的字段
如果format(code in nvarchar2),则format(varchar2字段)就是null
sql直接调用oracle自带的replace就没问题装了oracle 10和11的朋友也顺便帮我测测,谢谢拉
create table TB1
(
ID NUMBER(10) not null,
CODE NCHAR(20),
NAME VARCHAR2(100)
)create or replace function format(code in varchar2)
return varchar2 deterministic
as
begin
return replace(code,'-','');
end;select rownum,code,format(code) as code0 from tb1 where rownum<=300;结果是前100条的code0值正常?100后面的code0都是null?
也就是说:不管format怎么写,执行100次后,参数code将不能从nchar转为varchar2我有两个表用到,分别是nchar和varchar2类型的字段
如果format(code in nvarchar2),则format(varchar2字段)就是null
sql直接调用oracle自带的replace就没问题装了oracle 10和11的朋友也顺便帮我测测,谢谢拉
insert into tb1 (
select rownum as id, substr(col,1,10) as code, col as name from tb0 where rownum<=500
);