可以,给你个例子:
create or replace function CreatSqlstr(p_str in varchar2) return varchar2 is
Result varchar2(15000) := '';
c varchar2(15000) := '';
v varchar2(15000) := '';
v_str varchar2(15000);
i number;
j number;
k number;
begin
if p_str is not null then
v_str := p_str;
end if;
i := instr(v_str,'<');
j := instr(v_str,'>');
if i>0 and j>0 then
c := substr(v_str,i+1,j-i-1);
v_str := substr(v_str,j+1,length(v_str));
v := substr(v_str,0,instr(v_str,'</')-1);
v_str := substr(v_str,instr(v_str,'>')+1,length(v_str));
Result := Result || ',' || c ||'=' ||''''||v||'''';
Result := Result||creatsqlstr(v_str);
else
v_str := '';
end if;
return(Result);
end CreatSqlstr;
create or replace function CreatSqlstr(p_str in varchar2) return varchar2 is
Result varchar2(15000) := '';
c varchar2(15000) := '';
v varchar2(15000) := '';
v_str varchar2(15000);
i number;
j number;
k number;
begin
if p_str is not null then
v_str := p_str;
end if;
i := instr(v_str,'<');
j := instr(v_str,'>');
if i>0 and j>0 then
c := substr(v_str,i+1,j-i-1);
v_str := substr(v_str,j+1,length(v_str));
v := substr(v_str,0,instr(v_str,'</')-1);
v_str := substr(v_str,instr(v_str,'>')+1,length(v_str));
Result := Result || ',' || c ||'=' ||''''||v||'''';
Result := Result||creatsqlstr(v_str);
else
v_str := '';
end if;
return(Result);
end CreatSqlstr;
解决方案 »
- ORACLE 链接SQLSERVER
- 写了个存储过程,怎么有时能insert(插入)10条值,有时只能插入5条值呢?
- 按单位产生ID的问题,在线等!
- 高手们求救,win2003server下安装oracle9i,独占模式,安装完毕后用任何一个用户去连接出错
- 加大process后重起电脑oracle9i数据库不启动了?
- 在oracle里面用怎样的命令将两个关系聚簇(cluster)在一起以加快连接查询的速度?
- 在线求救:系统崩溃了,如何抢救数据?
- 不使用游标在oracle9i中得到一个结果集
- 谁能告诉我怎么改变一个表的主键
- mac怎么连oracle数据库
- 如何在ORACLE中插入从年到毫秒的数据???
- 向oracle数据库插入大量数据时中途老提示“missing right quote”错误!高手很指教!
begin
if n = 1 then
return 1;
else
return n * f(n - 1);
end if;
end f;
/Function createdSQL> select f(10) from dual; F(10)
----------
362880010的阶乘
--------------------------------------------------------
create or replace Procedure SP_checkMeter(asChkMeter char)
cursor CurrentPart is
select * from hao_test where chkmeter=asChkMeter;
CurrentRecord hao_test%rowtype;
v_DataCount number(10,0);
v_DataSum number(10,2);
as
begin
v_DataCount:=0;
v_DataSum:=0;
open CurrentPart;
fetch CurrentPart into CurrentRecord;
while CurrentPart%FOUND loop
v_DataCount:=v_DataCount+1;
v_DataSum:=v_DataSum+CurrentRecord.Use_W;end loop;
close CurrentPart;
insert into hao_table(chkmeter,use_w,meterCount)
values(asChkMeter,v_DataSum,v_DataCount);end;
cursor CurrentPart is
select * from hao_test where chkmeter=asChkMeter;
CurrentRecord hao_test%rowtype;
v_DataCount number(10,0);
v_DataSum number(10,2);
as
begin
v_DataCount:=0;
v_DataSum:=0;
open CurrentPart;
fetch CurrentPart into CurrentRecord;
while CurrentPart%FOUND loop
v_DataCount:=v_DataCount+1;
v_DataSum:=v_DataSum+CurrentRecord.Use_W;
fetch CurrentPart into CurrentRecord;end loop;
close CurrentPart;
insert into hao_table(chkmeter,use_w,meterCount)
values(asChkMeter,v_DataSum,v_DataCount);end;
create or replace Procedure SP_checkMeter(asChkMeter char)
as
....