可以,给你个例子:
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;

解决方案 »

  1.   

    create or replace function f (n positive) return integer is
    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的阶乘
      

  2.   

    各位帮我看看这个有问题吗?编译通过,执行出错。
    --------------------------------------------------------
    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;
      

  3.   

    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;
    fetch CurrentPart into CurrentRecord;end loop;
    close CurrentPart;
    insert into hao_table(chkmeter,use_w,meterCount)
    values(asChkMeter,v_DataSum,v_DataCount);end;
      

  4.   

    as要在定义语句以上。
    create or replace Procedure SP_checkMeter(asChkMeter char)
    as
    ....