閱讀803 返回首頁    go 阿裏雲 go 技術社區[雲棲]


oracle中函數和存儲過程簡單示例-動態sql

oracle中函數和存儲過程

1. 函數

create or replace function getArtCount(keyword in varchar2) return number

as

  Result number;
 
  Sqlt varchar2(4000);

begin


   -- select t.sys_documentid into Result from dom_2_doclib t where t.sys_topic like '%key%';

       -- select count(t.sys_documentid) into Result from dom_2_doclib t where t.art_auctioncode like '%art%';

        -- select count(t.sys_documentid) into Result from dom_2_doclib t where t.sys_topic like '%1%';

      --  select count(t.sys_documentid) into Result from dom_2_doclib t where t.sys_topic like '%高%';

       Sqlt:='select count(t.sys_documentid)  from dom_2_doclib t where t.art_auctioncode='''||keyword||''' or   t.sys_topic like ''%'||keyword||'%''';
       Sqlt:=Sqlt||' or t.art_authors like ''%'||keyword||'%''';
      
      
       dbms_output.put_line(Sqlt);
      
       EXECUTE IMMEDIATE Sqlt INTO Result;
      
      -- Execute IMMEDIATE Sqlt into Result;


dbms_output.put_line(Result);
     return Result;

end getArtCount;


調用方法:

  select getArtcount('齊白石') from dual;

 

 


2. 儲存過程


create or replace procedure getArtsCount(artcount out number,keyword in varchar2) as

  Sqlt varchar2(4000);

begin
      -- select count(*) into artcount  from dom_2_doclib  t where t.sys_topic like '%key%';
   
       Sqlt:='select count(t.sys_documentid)  from dom_2_doclib t where t.art_auctioncode='''||keyword||''' or   t.sys_topic like ''%'||keyword||'%''';
       Sqlt:=Sqlt||' or t.art_authors like ''%'||keyword||'%''';
      
        EXECUTE IMMEDIATE Sqlt INTO artcount;
      
       dbms_output.put_line(Sqlt);
end;

 

調用方法 :

declare

a number;

begin

getArtsCount(a,'a');

dbms_output.put_line('aaaa=='||a);

end;

最後更新:2017-04-02 06:51:19

  上一篇:go 從一道麵試題想到的論壇數據庫設計
  下一篇:go magento 1.4.1.0 -- 新版本小改進之訂單備注前台顯示