create or replace function testsqltext(cMsisdn in varchar2,cCalQj in varchar2) return number is
  Result number;
  vLSql varchar2(150);
  --vLSumFee number(8,2);
begin
    vLSql:='select sum(fee1) feesum'||chr(13)||chr(10)
    ||'from mb_detailgp'||substr(cCalQj,1,4)||substr(cCalQj,5,2)||'01'||chr(13)||chr(10)
    ||'where msisdn=:cMsisdn'||chr(13)||chr(10)
    ||'group by msisdn';
    --dbms_output.put_line(vLSql);
    execute immediate vLSql into Result using cMsisdn,cCalQj;
    --execute immediate vLSql into vLsumfee using cMsisdn,cCalQj;
    --result:=vLsumfee;
  return(Result);
end testsqltext;
我这样改,也出现同样的提示.那位有时间看看.

解决方案 »

  1.   

    create or replace function testsqltext(cMsisdn in varchar2,cCalQj in varchar2) return number is
      Result number;
      vLSql varchar2(150);
      --vLSumFee number(8,2);
    begin
        vLSql:='select sum(fee1) feesum'||chr(13)||chr(10)
        ||'from mb_detailgp'||substr(cCalQj,1,4)||substr(cCalQj,5,2)||'01'||chr(13)||chr(10)
        ||'where msisdn='||cMsisdn||chr(13)||chr(10)
        ||'group by msisdn';
        --dbms_output.put_line(vLSql);
        execute immediate vLSql into Result using cMsisdn,cCalQj;
        --execute immediate vLSql into vLsumfee using cMsisdn,cCalQj;
        --result:=vLsumfee;
      return(Result);
    end testsqltext;
      

  2.   

    谢谢!您实际只是去掉:,我这之前也试过了会出现:ORA-00904:无效的列名.