`

Oracle的动态SQL和动态游标举例

阅读更多
--动态sql和动态游标
declare
  cnt number; 
begin
  execute immediate
  'select count(*) from emp'
  into cnt;
  dbms_output.put_line(cnt);
end;

--创建存储过程执行插入语句
create or replace procedure myproc11
(empid in varchar2,empname in varchar2)
is
  sql_str varchar(200):='insert into emp values(:a,:b)';    
begin
  execute immediate sql_str using empid,empname;
  commit;
end;


--本过程有两个参数,第一个表示查询类型:0-精确查询 1-模糊查询;
--第二个参数表示查询条件
create or replace procedure myproc12
(query_type in number,empname in varchar2)
is
  sql_str varchar(200):='select * from emp ';
  cur pck1.myrefcur;
  e emp%rowtype;   
begin
 
  if query_type=0 then
    sql_str:=sql_str||'where emp_name=:1';
  else
     sql_str:=sql_str||'where emp_name like ''%''||:1||''%''';
  end if;
  dbms_output.put_line(sql_str);
  open cur for sql_str using empname;
 
  loop
   fetch cur into e;
   exit when cur%notfound;
   dbms_output.put_line(e.emp_id||','||e.emp_name);
  end loop;
  close cur;
end;

--按姓名模糊查询记录总数
create or replace procedure myproc20
(ename in varchar2)
is
  cnt number; 
begin
  execute immediate
  'select count(*) from emp where emp_name like ''%''||:n||''%'''
  into cnt using ename;
 
  dbms_output.put_line(cnt);
end;












分享到:
评论

相关推荐

    Oracle数据库存储过程技术文档.doc

    2.3 动态SQL语句 21 2.4 例外处理 22 2.5 一个完整的PL/SQL实例 24 第三章 oracle存储过程讨论 25 3.1 函数(FUNCTION) 26 3.1.1 用户函数创建,编译,删除 26 3.1.2 参数传递 27 3.2 存储过程 28 3.3 包 29 3.3.1 ...

    21天学通Oracle

    第3章 SQL Plus和PL/SQL(教学视频:11分钟) 39 3.1 SQL Plus与PL/SQL简介 39 3.2 使用SQL Plus 40 3.2.1 登录SQL Plus 40 3.2.2 SQL Plus输出结果的格式化 41 3.2.3 SQL Plus小结 46 3.3 PL/SQL 46 3.3.1 ...

    精通sql结构化查询语句

    以SQL Server为工具,讲解SQL语言的应用,提供了近500个曲型应用,读者可以随查随用,深入讲解SQL语言的各种查询语句,详细介绍数据库设计及管理,详细讲解存储过程、解发器和游标等知识,讲解了SQL语言在高级语言中...

    ORACLE11G宝典.rar 是光盘里面的内容,书太厚咧没法影印啊

    《Oracle11g宝典》共分19章,第1~4章分别介绍了Oracle11g的下载和安装、SQL*Plus的使用、SQ语言与PL/SQL.程序设计,第5~9章分别介绍了Oracle11g的体系结构、表空间与数据文件的管理、启动和关闭数据库、网络服务...

    PL/SQL Developer8.04官网程序_keygen_汉化

    如今,有越来越多的商业逻辑和应用逻辑转向了Oracle Server,因此,PL/SQL编程也成了整个开发过程的一个重要组成部分。PL/SQL Developer侧重于易用性、代码品质和生产力,充分发挥Oracle应用程序开发过程中的主要...

    oracle复习笔记之PL/SQL程序所要了解的知识点

    PL/SQL的基本语法、记录类型、流程控制、游标的使用、 异常处理机制、存储函数/存储过程、触发器。 为方便大家跟着我的笔记练习,为此提供数据库表文件给大家下载:点我下载 为了要有输出的结果,在写PL/SQL程序前都...

    oracle学习资料

    第二章 PL/SQL块结构和组成元素 6 §2.1 PL/SQL块 6 §2.2 PL/SQL结构 6 §2.3 标识符 6 §2.4 PL/SQL 变量类型 7 §2.4.1 变量类型 7 §2.4.2 复合类型 9 §2.4.3 使用%ROWTYPE 11 §2.4.4 LOB类型* 11 §2.4.5 ...

    plsql_oracle 编程

    第二章 PL/SQL块结构和组成元素 6 §2.1 PL/SQL块 6 §2.2 PL/SQL结构 6 §2.3 标识符 6 §2.4 PL/SQL 变量类型 7 §2.4.1 变量类型 7 §2.4.2 复合类型 9 §2.4.3 使用%ROWTYPE 11 §2.4.4 LOB类型* 11 §2.4.5 ...

    PLSQLDeveloper下载

    Create or replace procedure procname(参数列表) as PL/SQL语句块 函数:Create or replace function funcname(参数列表) return 返回值 as PL/SQL语句块 为便于理解,举例如下: 问题:假设有一张表t1,有f1和f2两...

    plsql_oracle 8i 编程讲义

    第二章 PL/SQL块结构和组成元素 6 §2.1 PL/SQL块 6 §2.2 PL/SQL结构 6 §2.3 标识符 6 §2.4 PL/SQL 变量类型 7 §2.4.1 变量类型 7 §2.4.2 复合类型 9 §2.4.3 使用%ROWTYPE 11 §2.4.4 LOB类型* 11 §2.4.5 ...

    SQL培训第一期

    结构化查询语言(Structured Query Language)简称SQL,是一种关系数据库查询语言,用于存取数据以及查询、更新和管理关系数据库系统。 1.2 语句结构 1.2.1 数据查询语言(DQL) 对数据库进行的信息查询,select。 ...

    SQL语法大全

    以上几个游标类型将直接影响到Recordset对象所有的属性和方法,以下列表说明他们之间的区别。 ------------------------------------------------------------- Recordset属性 adOpenForwardOnly adOpenKeyset ...

    Hibernate中的query 分页.doc

    比如如果数据库是Oracle,SQL Server等,则翻译为类似select ... top 10之类的SQL语句,若是MySQL,则翻译为select ... limit 10之类的SQL。 三、举例: Java代码 1. import org.hibernate.Query; 2. 3. query...

    千方百计笔试题大全

    123、JSP中动态INCLUDE与静态INCLUDE的区别? 31 124、两种跳转方式分别是什么?有什么区别? 31 125、如何执行一个线程安全的JSP? 31 126、JSP如何处理HTML FORM中的数据? 31 127、在JSP如何包含一个静态文件? 32 ...

    java面试宝典

    123、JSP中动态INCLUDE与静态INCLUDE的区别? 31 124、两种跳转方式分别是什么?有什么区别? 31 125、如何执行一个线程安全的JSP? 31 126、JSP如何处理HTML FORM中的数据? 31 127、在JSP如何包含一个静态文件? 32 128...

Global site tag (gtag.js) - Google Analytics