首页
学习
活动
专区
圈层
工具
发布

Oracle存储过程(while循环、for循环、if判断、sql拼接、游标)

本篇文章将通过实例来讲解一下存储过程怎么写,知识点总结在文末。 1 写一个简单的存储过程 首先,让我们来写一个简单的存储过程,用于输出当前系统时间。...(关联条件字符串):B1002.PROJECTID = Z.ID AND B1002.YEAR_DATE = Z.TIME 4 FOR循环 通过游标写一个简单的FOR循环。...CREATE OR REPLACE PROCEDURE TEST AS --定义游标,取该表的前10条记录(通过ID排序) CURSOR DATA IS SELECT * FROM (SELECT...128); --查询项目字符串 QUERY_ITEMS VARCHAR2(128); --存放计算值,用于判断是每组字段的前后者,0为前者,1位后者 CALCULATED INT; --定义游标...DBMS_OUTPUT.PUT_LINE() 打印的语句或变量。 EXECUTE IMMEDIATE 执行动态语句,可以用于执行动态拼接好的SQL。 CURSOR IS 游标,配合FRO使用。

4.2K10

存储过程与游标

存储过程: 存储过程里的流程控制语句还有类似于switch分支语句,和while、loop等循环控制语句。 类似于switch分支语句的sql写法: ?...在存储过程里可以创建临时表,将计算出来的数据存储到临时表中: ? 在sql语句中没有自增自减的写法,只能写i=i+1;来代表i++。...在sql里声明变量需要用DECLARE关键字声明,然后类型和长度写在变量的后面: ?...带出值的存储过程,带出值的关键字是out: 将查询出来的值通过sname1带出 ?...游标:   游标是用于针对于SELECT语句拿值的,游标就是一个记录集的取值方法,需要在检索出来的行中前进或后退一行或多行的情况下就需要使用游标,所以游标是可以针对行进行操作的,游标写在存储过程中,游标使用

1.5K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    mysql存储过程----游标

    定义: 游标是用来存储查询结果集的数据类型,在存储过程和存储函数中可以使用游标对结果集进行循环处理,游标的使用包括游标声明、open、fetch和close,语法如下: 语法: 声明光标...: DECLARE 游标名称 CURSOR FOR 封装select语句; 开启游标(open): OPEN 游标名称; 获取游标中的数据(fetch) FETCH 游标名称 INTO var_name...关闭游标(close): close 游标名称; 示例: BEGIN -- 声明保存数据的变量 DECLARE class_id int(10); DECLARE class_name...VARCHAR(10); -- 声明一个名字为 cursor_result 游标 -- 游标值为class_info表中数据 DECLARE cursor_result CURSOR FOR...class_id,class_name; -- 查看结果 SELECT CONCAT('class_id=',class_id,'class_name=',class_name); -- 关闭游标

    4.1K20

    游标对于分页存储过程

    我个人认为最好的分页方法是: Select top 10 * from table where id>200 写成存储过程,上面的语句要拼一下sql语句,要获得最后大于的哪一个ID号 2。...那个用游标的方式,只适合于小数据量的表,如果表在一万行以上,就差劲了 你的存储过程还比不上NOT IN分页,示例: SELECT Top 10 * FROM Customers WHERE Customerid...游标是存放在内存中,很费内存. 游标一建立,就将相关的记录锁住,直到取消游标 游标提供了对特定集合中逐行扫描的手段,一般使用游标来逐行遍历数据,根据取出数据条件的不同进行不同的操作。...所以说,我个人的经验,就是一万上行上的表,不用游标.小数据量的表,适当的时候可以用游标 因为游标,遍历小数据量的行集还是不错的一个方法! 4。...用临时表自定义分页和使用游标自定义分页都不好!

    1.3K30

    SQL Server基础:T-SQL编程、游标、存储过程创建与信息查找

    本文介绍基于Microsoft SQL Server软件,实现数据库T-SQL语言程序设计,以及游标的定义、使用与存储过程的创建、信息查找的方法。   ...系列文章中示例数据来源于《SQL Server实验指导(2005版)》一书。大家用自己手头的数据,可以将相关操作与分析过程加以完整重现。...定义游标Cursor_Famale (1) 单击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句: DECLARE @SNO CHAR...; (4) 对数据库表S中信息加以修改,增添学生“牛莉”的信息后,单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句,如下图; 6 使用游标——创建存储过程Pro_C查找信息 (1) 单击屏幕上方...在语句处搜寻、更改但仍有错误,且错误甚至越来越多,如下图; (7) 此时利用系统错误提示,考虑到可能是上述存储过程Pro_C构建出现错误;返回并对这一步骤加以检查,发现其T-SQL语言中数据库表与我个人数据库表名称

    2.6K10

    mysql存储过程之游标

    MySQL5 中添加了存储过程的支持。  大多数SQL语句都是针对一个或多个表的单条语句。并非所有的操作都怎么简单。...4 提高性能,因为使用存储过程比使用单条SQL语句要快 5 存在一些职能用在单个请求中的MySQL元素和特性,存储过程可以使用它们来编写功能更强更灵活的代码  换句话说3个主要好处简单、安全...、高性能 缺点 1 一般来说,存储过程的编写要比基本的SQL语句复杂,编写存储过程需要更高的技能,更丰富的经验。...许多数据库管理员限制存储过程的创建,允许用户使用存储过程,但不允许创建存储过程  存储过程是非常有用的,应该尽可能的使用它们 存储过程使用对我这种菜鸡来说还是有些难度的,没系统学过,看了同事写的之后,...大概看得懂,但是看到cursor游标之后有些懵,特此总结与一下 使用游标 MySQL5添加了对游标的支持  只能用于存储过程  直接上一个已经完善的存储过程,用于对表数据的copy DELIMITER

    3.9K40

    【SQL 基础】游标(curosr)

    显式的游标:(显式定义一个游标) EXEC SQL DECLARE SEL_CURS CURSOR FOR...隐式的游标:(没有明确定义游标,但会由内部自动生成一个游标) EXEC SQL INSERT...(Server端) 对于游标的总体概况,可以参考下图。 ? 本文主要介绍Oracle数据库中游标相关内容。 SQL文执行和游标 以下是SQL语句的大概处理流程: 客户端应用程序: 0....from v$open_cursor c, v$sql sql where c.sql_id=sql.sql_id ; 共享游标(shared cursor) 共享游标(shared cursor...所以对于一条SQL文可能会存在多个子游标。 下面我们介绍一下关于游标相关的一些常见问题和知识。 v$sql和sqlarea 视图 v$sql和sqlarea视图在某种意义上,可以看成父子关系。...v$sql :保存的是子游标的sql的信息;列CHILD_NUMBER,表示子游标的编号。

    1.6K20

    MY SQL存储过程、游标、触发器--Java学习网

    MySQL5 中添加了存储过程的支持。 大多数SQL语句都是针对一个或多个表的单条语句。并非所有的操作都怎么简单。...4 提高性能,因为使用存储过程比使用单条SQL语句要快 5 存在一些职能用在单个请求中的MySQL元素和特性,存储过程可以使用它们来编写功能更强更灵活的代码 换句话说3个主要好处简单、安全、高性能...缺点: 1 一般来说,存储过程的编写要比基本的SQL语句复杂,编写存储过程需要更高的技能,更丰富的经验。...如果命令行实用程序要解释存储过程自身的 ; 字符,则他们最终不会成为存储过程的成分,这会使存储过程中的SQL出现句法错误 解决方法是临时更改命令实用程序的语句分隔符 DELIMITER...使用BEGIN END块的好处是触发器能容纳多条SQL语句。

    2.7K30

    BI-SQL丨游标

    图片游标游标这个概念在SQL中比较重要,在其他语言中也有类似的处理办法。那么什么是游标呢?...简而言之,SQL语句返回的结果通常为数据集,而游标可以在此基础上,像一个指针一样,对某些行结果进行处理,换成PowerBI中的概念有点像迭代遍历。...使用步骤1.声明游标:定义游标的名称、类型、属性。2.打开游标:执行SQL语句,准备对游标进行操作。3.读取游标:从结果集检索,进行逐行操作。4.关闭游标:将游标进行关闭,可以使用Open再次打开。...5.释放游标:删除缓存并释放游标的占用资源。...其他补充:游标除了上面展示的,还可以对特定数据进行修改操作,也可以与存储过程和WHILE搭配使用,后面有机会的话,白茶会进行补充。图片图片这里是白茶,一个PowerBI的初学者。图片

    80030

    PLSQL -->隐式游标(SQL%FOUND)

    /SQL中,游标的使用分为两种,一种是显示游标,一种是隐式游标,显示游标的使用需要事先使用declare来进行声明,其过程包括 声明游标,打开游标,从游标提取数据,关闭游标。...有关显示游标的使用,请参考:PL/SQL --> 游标 一、隐式游标的定义及其属性 定义 隐式游标则由则由系统自动定义,非显示定义游标的DML语句即被赋予隐式游标属性。...其过程由oracle控制,完全自动化。隐式游标 的名称是SQL,不能对SQL游标显式地执行OPEN,FETCH,CLOSE语句。...属性 类似于显示游标,隐式游标同样具有四种属性,只不过隐式游标以SQL%开头,而显示游标以Cursor_name%开头 通过SQL%总是只能访问前一个DML操作或单行SELECT操作的游标属性,用于判断...code is executed successful PL/SQL procedure successfully completed 2.SQL游标的综合应用(根据SQL游标的不同属性返回不同的结果

    2K30

    SQL Server 2012学习笔记 (七) ------ SQL Server 游标

    1、游标的概述   一个完整的游标由5部分组成,并且这5个部分应符合下面的顺序。 (1)声明游标。 (2)打开游标。 (3)从一个游标中查找信息。...(4)关闭游标。 (5)释放游标。 SQL Server提供了4种类型的游标: 1. 静态游标   静态游标的完整结果集在游标打开时建立在tempdb中。...2.动态游标   动态游标与静态游标相对。当滚动游标时,动态游标反映结果集中所做的所有更改。结果集中的行数据值、顺序和成员在每次提取时都会改变。...3、使用系统存储过程查看游标   创建游标后,通常使用sp_cursor_list和sp_describe_cursor查看游标的属性。   ...sp_cursor_list用来报告当前为连接打开的服务器游标的属性   sp_describe_cursor用于报告服务器游标的属性。本节就详细的介绍这两个系统过程

    3.4K50

    Library Cache优化与SQL游标

    1 SQL语句与父游标及子游标 在PL/SQL中,游标(Cursor)是数据集遍历的内存集合。而从广义上讲, 游标是SQL语句在Library Cache中的内存载体。...图2-2 SQL语句与游标 SQL语句通过SQL_ID唯一标识父游标,如下所示: 从上述示例可以看出,SQL语句使用SQL_ID唯一标识父游标(V$SQLAREA),同时该SQL语句仅包含一父游标和一个子游标...不同的SQL语句的父游标也不同,如下所示: 可以看出,2个不同SQL语句对应的SQL_ID也不相同,产生了不同的父游标。 小提示 当SQL语句父游标不相同,其对应的子游标也肯定不同。...2 父游标 1父游标特点 父游标的主要特点如下: q 父游标是由SQL语句决定; q 父游标使用SQL语句的SQL_ID唯一标识; q 父游标包含一到多个子游标; q 父游标与参数cursor_sharing...V$SQL主要特点有: V$SQL中一条记录代表一个子游标。如下所示: 可以看到,一个SQL_ID(父游标)包含了多条记录,每条记录代表一个子游标。 V$SQL包含了父游标和子游标信息。

    1.2K50

    SQL游标的使用与语法

    begin –update [spt_values] set [name]=@name+’1′  –where [number]=@number+1           –进行相应处理(跟据需要填入SQL.../lejuo/archive/2008/11/12/3279340.aspx 可百度 SQL游标语法及举例 进行更深入学习 游标的定义: 每一个游标必须有四个组成部分这四个关键部分必须符合下面的顺序; ...1.DECLARE 游标  2.OPEN 游标  3.从一个游标中FETCH 信息  4.CLOSE 或DEALLOCATE 游标  通常我们使用DECLARE 来声明一个游标声明一个游标主要包括以下主要内容...INSENSITIVE  表明MS SQL SERVER 会将游标定义所选取出来的数据记录存放在一临时表内(建立在tempdb 数据库下)。对该游标的读取操作皆由临时表来应答。...因此,对基本表的修改并不影响游标提取的数据,即游标不会随着基本表内容的改变而改变,同时也无法通过  游标来更新基本表。如果不使用该保留字,那么对基本表的更新、删除都会反映到游标中。

    1.9K10

    PLSQL 编程(二)游标、存储过程、函数

    PL/SQL 程序不能用OPEN 语句重复打开一个游标。 l 提取游标数据:就是检索结果集合中的数据行,放入指定的输出变量中。 ...END; 隐式游标: 被plsql自动管理,也被称为sql游标, 用户无法控制,但能得到他的属性信息。...在隐式游标的工作区中,所存放的数据是与用户自定义的显示游标无关的、最新处理的一条SQL 语句所包含的数据。...简单来时是存储在数据库服务器中的封装了一段或多段sql语句的plsql代码块。存储过程可以在编程语言中调用,如Java等。 存储过程的优点: 简化复杂的操作,封装。...增加数据独立性,利用存储过程可以把数据库基础数据和程序或用户隔离开来。 提高安全性。 提高性能。 有参存储过程: 存储过程允许带有参数,过程有输入,输出,输入输出三种参数。

    4.6K71

    c# 调用Oracle带有游标的存储过程

    前言 我们在写Oracle存储过程时经常会需要返回数据,像这种方式一般都输出游标的方式。我们今天就来做个用C#程序调用Oracle带有游标输出的存储过程并展示出数据。...存储过程 我们先在我们的Oracle数据库里编写一个简单的存储过程,名称为sTest,有一个输入参数ps_SaleNo,三个输出参数分别是pi_Result,ps_Message,pc_cursor 如下图...---- 其中CCurType类型就是我们定义的输出游标变量 ? ---- 上面蓝框的语句就是输出的游标的数据集,我们把这一句单独摘出来查询一下,可以看到返回的结果,如下图: ?...1.引用Oracle.ManagedDataAccess 要调用带游标的存储过程,我们必须要引用Oracle.ManagedDataAccess,有两个原因: 不需要安装OracleClient的客户端...原来自带的OracleClient的参数类型里面没有RefCursor类型,无法实现调用返回游标的存储过程 我们在程序的引用处右键选择管理NuGet的程序包。

    2.8K10
    领券