cursor

Oracle存储过程

安稳与你 提交于 2020-02-27 21:57:00
http://blog.csdn.net/u013057786/article/details/17165623 Oracle存储过程 2013-12-06 13:11 807人阅读 评论 (0) 收藏 举报 oracle 一、 存储过程 1、定义 所谓存储过程(Stored Procedure),就是一组用于完成特定数据库功能的SQL语句集,该SQL语句集经过 编译后存储在数据库系统中。在使用时候,用户通过指定已经定义的存储过程名字并给出相应的存储过程参数 来调用并执行它,从而完成一个或一系列的数据库操作。 2、存储过程的创建 Oracle存储过程包含三部分:过程声明,执行过程部分,存储过程异常。 (1) 无参存储过程语法 Sql代码 create or replace procedure NoParPro as //声明 ; begin // 执行 ; exception//存储过程异常 ; end; (2) 带参存储过程实例 Sql代码 create or replace procedure queryempname(sfindno emp.empno%type) as sName emp.ename%type; sjob emp.job%type; begin .... exception .... end; (3) 带参数存储过程含赋值方式 Sql代码 create or

Oracle实战笔记(第六天)之PL/SQL基础

╄→гoц情女王★ 提交于 2020-02-27 12:28:27
一、PL/SQL介绍   1、概念    PL/SQL也是一种程序语言,叫做过程化SQL语言(Procedural Language/SQL)。PL/SQL是Oracle数据库对SQL语句的 扩展 。在普通SQL语句的使用上 增加了编程语言的特点 ,所以PL/SQL可以用来编写存储过程、存储函数、触发器等等。 PL/SQL是结构化SQL,就是在标准SQL中加入了IF...ELSE... For....等控制过程的SQL。   2、学习必要性 提高程序的运行性能 传统的使用程序操作数据库的方式需要获得connection,然后程序传到数据库后还需要进行编译才能执行,而且执行结果还需要回调,这些过程都需要花费时间。而PL/SQL编程可以直接进行过程编程,这就节省了数据连接、语句传送和编译的时间,同时编程结果可以被外部程序调用。 模块化的设计思想 很多复杂的过程都需要传送和执行大量的sql语句,比如分页的过程、实现订单的过程、转账的过程等等,这些过程就可以通过PL/SQL进行模块化整理进而方便管理。 减少网络传输量 提高安全性   PL/SQL的缺点在于移植性不好,如果项目不再使用Oracle来管理数据,那么需要重新编写语句。 二、开发工具   1、Oracle自带的命令行工具sql*plus    下面举一个运用PL/SQL语句的案列:编写一个存储过程,并执行。   简单说一下,

Oracle通用分页存储过程的创建与使用

匆匆过客 提交于 2020-02-27 04:32:29
1.创建Oracle包的定义。使用 REF CURSOR 数据类型来处理 Oracle 结果集。REF CURSOR 是一个指向 PL/SQL 查询所返回的结果集的指针。与普通的游标不同,REF CURSOR 是一个变量,它是对游标的引用,可以在执行时将其设置为指向不同的结果集。使用 REF CURSOR 输出参数可以将 Oracle 结构化程序的结果集传递回调用应用程序。通过在调用应用程序中定义 OracleType.Cursor 数据类型的输出参数,可以访问 REF CURSOR 所指向的结果集。 create or replace package MF_PAK_001 is type t_cursor is ref cursor; procedure GetDataByPage( p_tableName varchar2, p_fields varchar2, p_filter varchar2, p_sort varchar2, p_curPage number, p_pageSize number, p_cursor out t_cursor, p_totalRecords out number );end MF_PAK_001; 2.创建包体。在包体中实现具体的分页存储过程。 create or replace package body MF_PAK_001

How to Render a Transparent Cursor to Bitmap preserving alpha channel?

前提是你 提交于 2020-02-26 09:35:19
问题 I use the code below to render a transparent icon: private void button1_Click(object sender, EventArgs e) { // using LoadCursorFromFile from user32.dll var cursor = NativeMethods.LoadCustomCursor(@"d:\Temp\Cursors\Cursors\aero_busy.ani"); // cursor -> bitmap Bitmap bitmap = new Bitmap(48, 48, PixelFormat.Format32bppArgb); Graphics gBitmap = Graphics.FromImage(bitmap); cursor.DrawStretched(gBitmap, new Rectangle(0, 0, 32, 32)); // 1. Draw bitmap on a form canvas Graphics gForm = Graphics

Python连接MySQL数据库之pymysql模块使用

妖精的绣舞 提交于 2020-02-26 06:06:10
PyMySQL介绍 PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。 Django中也可以使用PyMySQL连接MySQL数据库。 PyMySQL安装 pip install pymysql 连接数据库 注意事项 在进行本文以下内容之前需要注意: 你有一个MySQL数据库,并且已经启动。 你有可以连接该数据库的用户名和密码 你有一个有权限操作的database 基本使用 # 导入pymysql模块 import pymysql # 连接database conn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”) # 得到一个可以执行SQL语句的光标对象 cursor = conn.cursor() # 定义要执行的SQL语句 sql = """ CREATE TABLE USER1 ( id INT auto_increment PRIMARY KEY , name CHAR(10) NOT NULL UNIQUE, age TINYINT NOT NULL )ENGINE=innodb DEFAULT CHARSET=utf8; """ # 执行SQL语句 cursor

pymysql

眉间皱痕 提交于 2020-02-25 10:51:20
pymysql基本使用 # 导入pymysql模块 import pymysql # 连接database conn = pymysql.connect( host=“你的数据库地址”, user=“用户名”,password=“密码”, database=“数据库名”, charset=“utf8”) # 得到一个可以执行SQL语句的光标对象 cursor = conn.cursor() # 执行完毕返回的结果集默认以元组显示 # 得到一个可以执行SQL语句并且将结果作为字典返回的游标 #cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) # 定义要执行的SQL语句 sql = """ CREATE TABLE USER1 ( id INT auto_increment PRIMARY KEY , name CHAR(10) NOT NULL UNIQUE, age TINYINT NOT NULL )ENGINE=innodb DEFAULT CHARSET=utf8; #注意:charset='utf8' 不能写成utf-8 """ # 执行SQL语句 cursor.execute(sql) # 关闭光标对象 cursor.close() # 关闭数据库连接 conn.close() 插入单条数据 import

Android API : SimpleCursorAdapter()

我们两清 提交于 2020-02-23 11:09:14
SimpleCursorAdapter() 是 SimpleCursorAdapter 类的构造函数。 描述: SimpleCurosrAdapter 是一个将 Cursor 中的 columns 与在 XML 文件中定义的 TextViews 或 ImageViews 进行匹配的简易 adapter。你可以指定选择 Cursor 中的哪些 columns、用哪些 views 来显示这些 columns 、以及指定定义这些 views 的 xml 文件。 也就是说,SimpleCursorAdapter 允许绑定一个 Cursor 的 columns 到 ListView 上,并使用自定义的 layout 显示 List中的每个项目。 可以使用 SimpleCursorAdapter 作为中间桥梁,将从 sqlite 数据库中查询出来的数据直接显示到 ListView 中。 原型: public SimpleCursorAdapter(Context context, int layout, Cursor c, String[] from, int[] to) { super(context, layout, c); mTo = to; mOriginalFrom = from; findColumns(from); } 参数: Context context , 这个与

WHERE CURRENT OF in PL/SQL

亡梦爱人 提交于 2020-02-23 04:19:06
问题 Why we need WHERE CURRENT OF clause in Oracle PL/SQL ? We all know that FETCH retrieves only one row at a time and hence FETCH is used in LOOP to process all the rows of a cursor. Then why do we exclusively need a WHERE CURRENT OF clause? We can anyhow lock the cursor rows using FOR UPDATE or FOR UPDATE OF . Can rows be unlocked (which are locked by FOR UPDATE or FOR UPDATE OF ) once we close the cursor? Or do we need to COMMIT or ROLLBACK the transaction to unlock the rows? 回答1: Have a look

吃透Netty源码系列三十三之Recycler细节解析二

自闭症网瘾萝莉.ら 提交于 2020-02-22 23:11:22
吃透Netty源码系列三十三之Recycler细节解析二 RECYCLER.get() stack.pop() Stack有对象的情况 Stack没有对象的情况 scavenge清理 scavengeSome清理一些 WeakOrderQueue的transfer转移 Head的relink重链接到下一个 WeakOrderQueue的hasFinalData是否还有数据 WeakOrderQueue的reclaimAllSpaceAndUnlink释放所有空间,并从链表中删除 Head的reclaimAllSpaceAndUnlink释放所有空间 Stack的increaseCapacity扩容 RECYCLER.get() 上一篇讲了回收对象,有了一些概念和基础了,这次我们可以讲获取对象,看看里面是怎么样实现的,我们讨论启用缓存的情况。 public final T get ( ) { if ( maxCapacityPerThread == 0 ) { //如果不启用,就给一个空实现处理器 return newObject (( Handle < T > ) NOOP_HANDLE ) ; } Stack < T > stack = threadLocal.get ( ) ; //获取栈,不存在就初始化一个 DefaultHandle < T > handle = stack

主调用函数是 setday(this,[object])和setday(this),[object]是控件输出的控件名

旧城冷巷雨未停 提交于 2020-02-20 15:32:05
//屏蔽鼠标右键、Ctrl+N、Shift+F10、F11、F5刷新、退格键 //Author: meizz(梅花雨) 2002-6-18 function document.oncontextmenu(){event.returnValue=false;}//屏蔽鼠标右键 function window.onhelp(){return false} //屏蔽F1帮助 function document.onkeydown() { if ((window.event.altKey)&& ((window.event.keyCode==37)|| //屏蔽 Alt+ 方向键 ← (window.event.keyCode==39))) //屏蔽 Alt+ 方向键 → { alert("不准你使用ALT+方向键前进或后退网页!"); event.returnValue=false; } /* 注:这还不是真正地屏蔽 Alt+ 方向键, 因为 Alt+ 方向键弹出警告框时,按住 Alt 键不放, 用鼠标点掉警告框,这种屏蔽方法就失效了。以后若 有哪位高手有真正屏蔽 Alt 键的方法,请告知。*/ if ((event.keyCode==8) || //屏蔽退格删除键 (event.keyCode==116)|| //屏蔽 F5 刷新键 (event.ctrlKey && event