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;

时间: 2024-10-31 18:01:15

oracle中函数和存储过程简单示例-动态sql的相关文章

查询Oracle中正在执行和执行过的SQL语句_oracle

查询Oracle正在执行的sql语句及执行该语句的用户 SELECT b.sid oracleID, b.username 登录Oracle用户名, b.serial#, spid 操作系统ID, paddr, sql_text 正在执行的SQL, b.machine 计算机名 FROM v$process a, v$session b, v$sqlarea c WHERE a.addr = b.paddr AND b.sql_hash_value = c.hash_value 其它网友给出的正

Oracle中 关于数据库存储过程和存储函数的使用_oracle

存储过程和存储函数指存储在数据库中供所有用户程序调用的子程序叫存储过程.存储函数.存储过程没有返回值.存储函数有返回值   创建存储过程      用CREATE PROCEDURE命令建立存储过程和存储函数.       语法:create [or replace] PROCEDURE过程名(参数列表) AS         PLSQL子程序体:   存储过程示例:为指定的职工在原工资的基础上长10%的工资 /*为指定的职工在原工资的基础上长10%的工资,并打印工资前和工资后的工资*/SQL>

如何在Oracle中使用Java存储过程(详解)

其实,这篇短文,我早就应该写了.因为,Java存储过程今后在各大数据库厂商中越来越流行,功能也越来越强大.这里以Oracle为例,介绍一下java存储过程的具体用法. 一.如何创建java存储过程? 通常有三种方法来创建java存储过程. 1.使用oracle的sql语句来创建: e.g. 使用create or replace and compile java source named "<name>" as 后边跟上java源程序.要求类的方法必须是public sta

thinkPHP模板中函数的使用方法示例_php实例

本文实例讲述了thinkPHP模板中函数的使用方法.分享给大家供大家参考,具体如下: 1.php中的方法使用 <?php $var_num = "13966778888"; $str = substr_replace($var_num,'*****',3,5); echo $str; $var_date = time(); $str = date("Y-m-d H:i",$var_date); echo $str; ?> 2.模板中的使用 {sh:$me

.NET中Socket编程的简单示例

编程|示例 以下示例程序实现简单的Socket通信,可以开多个客户端.本机测试通过,未做联机测试. Server: using System.Net; using System.Net.Sockets; using System.Threading; using System.Collections; namespace MySocketServer1 {     public partial class Form1 : Form     {         private IPAddress

JavaScript中数组继承的简单示例_基础知识

在写一些库时经常会用到树结构的数据,而且一些树形结构的数据对从根到叶的路径获取需求非常高.比如一个站点的整个路由表就是一棵这样的树,它的「路径」实际上就是 URL 中的 path 部分.所以我好几次都用了丧心病狂的数组继承去实现,下面给大家分享下. 在 JavaScript 中,数组也属于 Object 的一种,它也可以继承.任何两个对象本身就可以有继承关系,数组也不例外.于是我们让一个树的任何一个节点都是数组,它只维护自己下标最大的那个元素的值.其它元素的值通过原型继承从祖先节点继承而来.这样

oracle中如何执行存储过程和创建存储过程

创建存储过程 create or replace procedure test(var_name_1 in type,var_name_2 out type) as --声明变量(变量名 变量类型) begin --存储过程的执行体 end test; 打印出输入的时间信息 E.g: create or replace procedure test(workDate in Date) is begin dbms_output.putline(&apos;The input date is:&

oracle中如何调用存储过程

过程调用方式 declare realsal emp.sal%type; realname varchar(40); realjob varchar(40); begin   //存储过程调用开始 realsal:=1100; realname:=''; realjob:='CLERK'; runbyparmeters(realsal,realname,realjob);     --必须按顺序 DBMS_OUTPUT.PUT_LINE(REALNAME||'   '||REALJOB); EN

Oracle中备份表的简单sql命令语句_oracle

复制代码 代码如下: create table bmpforest.E_PKG_ATPCFG_BAC as select * from bmpforest.e_pkg_atpcfg where 1=2 insert into E_PKG_ATPCFG_BAC select * from E_PKG_ATPCFG;