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;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值