oracle游标

oracle PL/SQL的介绍

匿名 (未验证) 提交于 2019-12-02 23:06:17
转自:http://blog.sina.com.cn/s/blog_4c302f060101i4o1.html 一 PL/SQL的介绍 1 PL/SQL是什么? PL/SQL(procedural language/SQL)是Oracle在标准的sql语言上的扩展。pl/sql不仅允许嵌入sql语言,还可以定义变量和常量,允许使用条件语句和循环语句,允许使用例外处理各种错误,这样使得它的功能变的更加强大。 (1)过程,函数,触发器是PL/SQL编写的 (2)过程,函数,触发器是在Oracle中的 (3)PL/SQL是非常强大的数据库过程化语言 (4)过程,函数可以在java程序中调用 2 学习的必要性 (1)提供应用程序的运行性能 传统的操作数据库的方法是:sql语句写到java程序中,java连接Oracle,传递给数据库,Oracle翻译SQL语句,编译成自己能识别的代码,然后才执行。 PL/SQL:直接在Oracle中写过程,由java调用过程,而此过程已经编译成可执行代码。这样节省了时间。 (2)模块化的设计思想[分页的过程,订单的过程,转账的过程。。。] (3)减少网络传输量 传统的方法:数据库和java中的SQL语句不在同一机器上,要经过网络传输 过程:直接调用 (4)提高安全性 过程中封装了用户名、密码、表名、字段名等信息。 3 pl/sql的缺点 4 pl

Python操作三大主流数据库✍✍✍

让人想犯罪 __ 提交于 2019-12-02 05:49:29
Python操作三大主流数据库 Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口。 Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库: GadFly mSQL MySQL PostgreSQL Microsoft SQL Server 2000 Informix Interbase Oracle Sybase 不同的数据库你需要下载不同的 DB API模块,例如你需要访问Oracle数据库和Mysql数据,你需要下载Oracle和MySQL数据库模块。 DB-API 是一个规范. 它定义了一系列必须的对象和数据库存取方式, 以便为各种各样的底层数据库系统和多种多样的数据库接口程序提供一致的访问接口 。 Python的DB-API,为大多数的数据库实现了接口,使用它连接各数据库后,就可以用相同的方式操作各数据库。 Python DB-API使用流程: 引入 API 模块。 获取与数据库的连接。 执行 SQL语句和存储过程。 关闭数据库连接。 什么是 MySQLdb? MySQLdb 是用于Python链接Mysql数据库的接口,它实现了 Python 数据库 API 规范 V2.0,基于 MySQL C API 上建立的。 如何安装 MySQLdb? 为了用 DB-API编写MySQL脚本

sql优化问题

最后都变了- 提交于 2019-11-29 19:03:33
数据库的优化问题 一、问题的提出  在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用 系统提交实际应用后,随着数据库中数据的增加,系统的响应速度就成为目前系统需要解决的最主要的问题之一。系统优化中一个很重要的方面就是SQL语句的优 化。对于海量数据,劣质SQL语句和优质SQL语句之间的速度差别可以达到上百倍,可见对于一个系统不是简单地能实现其功能就可,而是要写出高质量的 SQL语句,提高系统的可用性。   在多数情况下,Oracle使用索引来更快地遍历表,优化器主要根据定义的索引来提高性能。但是,如果在SQL语句的where子句中写的 SQL代码不合理,就会造成优化器删去索引而使用全表扫描,一般就这种SQL语句就是所谓的劣质SQL语句。在编写SQL语句时我们应清楚优化器根据何种 原则来删除索引,这有助于写出高性能的SQL语句。  二、SQL语句编写注意问题   下面就某些SQL语句的where子句编写中需要注意的问题作详细介绍。在这些where子句中,即使某些列存在索引,但是由于编写了劣质的SQL,系统在运行该SQL语句时也不能使用该索引,而同样使用全表扫描,这就造成了响应速度的极大降低。   1. IS NULL 与 IS NOT NULL   不能用null作索引

Dapper使用Oracle游标

假如想象 提交于 2019-11-28 05:12:26
添加类: public class RefCursor { public static RefCursor Value = new RefCursor(); private RefCursor() { } } public class RefCursorHandler : SqlMapper.ITypeHandler { public void SetValue(IDbDataParameter parameter, object value) { OracleParameter oracleParameter = (OracleParameter)parameter; oracleParameter.OracleDbType = OracleDbType.RefCursor; oracleParameter.Direction = ParameterDirection.Output; parameter.Value = value; } public object Parse(Type destinationType, object value) { throw new NotImplementedException(); } } 使用之前: SqlMapper.AddTypeHandler(typeof(RefCursor), new RefCursorHandler());

SQL优化总结(转)

本秂侑毒 提交于 2019-11-27 04:17:55
转载: http://www.cnblogs.com/ziyiFly/archive/2008/12/24/1361380.html 一、问题的提出  在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用系统提交实际应用后,随着数据库中数据的增加,系统的响应速度就成为目前系统需要解决的最主要的问题之一。系统优化中一个很重要的方面就是SQL语句的优化。对于海量数据,劣质SQL语句和优质SQL语句之间的速度差别可以达到上百倍,可见对于一个系统不是简单地能实现其功能就可,而是要写出高质量的SQL语句,提高系统的可用性。   在多数情况下,Oracle使用索引来更快地遍历表,优化器主要根据定义的索引来提高性能。但是,如果在SQL语句的where子句中写的SQL代码不合理,就会造成优化器删去索引而使用全表扫描,一般就这种SQL语句就是所谓的劣质SQL语句。在编写SQL语句时我们应清楚优化器根据何种原则来删除索引,这有助于写出高性能的SQL语句。    二、SQL语句编写注意问题   下面就某些SQL语句的where子句编写中需要注意的问题作详细介绍。在这些where子句中,即使某些列存在索引,但是由于编写了劣质的SQL,系统在运行该SQL语句时也不能使用该索引,而同样使用全表扫描,这就造成了响应速度的极大降低