游标

Oracle面试题(基础篇)(转)

大城市里の小女人 提交于 2019-12-03 14:37:39
1. Oracle跟SQL Server 2005的区别? 宏观上: 1). 最大的区别在于平台,oracle可以运行在不同的平台上,sql server只能运行在windows平台上,由于windows平台的稳定性和安全性影响了sql server的稳定性和安全性 2). oracle使用的脚本语言为PL-SQL,而sql server使用的脚本为T-SQL 微观上: 从数据类型, 数据库 的结构等等回答 2. 如何使用Oracle的游标? 1). oracle中的游标分为显示游标和隐式游标 2). 显示游标是用cursor...is命令定义的游标,它可以对查询语句(select)返回的多条记录进行处理;隐式游标是在执行插入 (insert)、删除(delete)、修改(update)和返回单条记录的查询(select)语句时由PL/SQL自动定义的。 3). 显式游标的操作:打开游标、操作游标、关闭游标;PL/SQL隐式地打开SQL游标,并在它内部处理SQL语句,然后关闭它 3. Oracle中function和procedure的区别? 1). 可以理解函数是存储过程的一种 2). 函数可以没有参数,但是一定需要一个返回值,存储过程可以没有参数,不需要返回值 3). 函数return返回值没有返回参数模式,存储过程通过out参数返回值, 如果需要返回多个参数则建议使用存储过程

数据库整理(五)数据库编程 触发器 事务 过程

白昼怎懂夜的黑 提交于 2019-12-03 08:07:05
数据库整理(五)数据库编程 嵌入式SQL 交互式SQL和嵌入式SQL是SQL的两种使用方法。将SQL语言嵌入到宿主语言程序中, 将SQL语言访问数据库的功能和宿主语言的数据处理功能相结合 ,这种使用SQL的方法称为嵌入式SQL。 SQL查询数据库的能力强,高级语言对复杂应用和复杂逻辑处理能力强 类似断言、触发器等操作需要对数据进行处理,原生SQL能力不强 数据库服务器只识别SQL语句,用SQL可以提高效率 如何实现嵌入式SQL? 宿主语言(简称 主语言 )的编译器不能识别SQL,如何将嵌有SQL语句的宿主语言编译成可执行代码? 宿主语言与DBMS之间如何传递数据和信息? 如何解决元组集合数据对宿主语言变量的赋值? 识别与处理SQL 数据库管理系统一般采用预编译方法处理,即由数据库管理系统的预处理程序对源程序进行扫描,识别出嵌入式SQL语句,把它们转换成主语言调用语句,以使主语言编译程序能识别它们,然后由主语言的编译程序将纯的主语言程序编译成目标码 为了调用,将SQL语言转变为函数调用 用EXEC SQL前缀来标识SQL语句 ,以区分宿主语言与SQL语言。 EXEC SQL <SQL语句>; 嵌入式SQL语句与主语言的通信 SQL负责操纵数据库,高级语言语句负责控制逻辑流程 数据库工作单元与源程序工作单元之间的通信主要包括: (1) 向主语言传递SOL语句的执行状态信息

一次使用存储过程游标遇到的坑

耗尽温柔 提交于 2019-12-03 07:18:12
一次使用存储过程游标遇到的坑   有这样一个需求:统计某省某市某区前6个月的数据,直接sql查询效率很低,于是打算做定时任务,用定时器执行存储过程的方式在每月初统计上月的相关数据。   使用存储过程就要用到游标了,之前很少写存储过程,对游标也不是熟悉,咋办呢,现学现用啦。 创建存储过程 1 CREATE 2 [DEFINER = { user | CURRENT_USER }] 3  PROCEDURE sp_name ([proc_parameter[,...]]) 4 [characteristic ...] routine_body 5 6 proc_parameter: 7 [ IN | OUT | INOUT ] param_name type 8 9 characteristic: 10 COMMENT 'string' 11 | LANGUAGE SQL 12 | [NOT] DETERMINISTIC 13 | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA } 14 | SQL SECURITY { DEFINER | INVOKER } 15 16 routine_body: 17   Valid SQL routine statement 18 19 [begin_label:]

python操作数据库

戏子无情 提交于 2019-12-03 02:15:02
一、python操作mysql数据库 python3中操作mysql数据需要安装一个第三方模块,pymysql,使用pip install pymysql安装即可,在python2中是MySQLdb模块 import pymysql # 定义数据库的ip地址,账号、密码、端口号、要操作的数据库、字符集 ip = '111.11.1.11' user = 'xxx' password = '123456' db = 'xxx' port = 3306#默认端口号为3306,操作数据库端口号为默认值可以不传 charset = 'utf8' #数据库的字符集是utf8而不是utf-8 # 创建连接,指定数据库的ip地址,账号、密码、端口号、要操作的数据库、字符集 conn= pymysql.connect(host = ip,user = user,password = password,db = db,port = port ,charset = charset,autocommit=True) #增加autocommit=True参数,执行sql语句后自动提交 #创建游标 # cur= conn.cursor() cur= conn.cursor(pymysql.cursors.DictCursor) #pymysql.cursors.DictCursor指定游标类型为字典类型

iOS 实现金融选金额的游标尺

匿名 (未验证) 提交于 2019-12-03 00:37:01
最近产品看别的app有游标尺选金额,要我们也加上,好吧,开干!先看看效果: 首先我要可以设置最大值、最小值、和默认指向的值: @property ( nonatomic , assign ) double minValue; // 最小值,默认为0 @property ( nonatomic , assign ) double maxValue; // 最大值,必需设置 @property ( nonatomic , assign ) double defaultValue; // 默认值,默认为0 初始化试图: - (instancetype)initWithFrame:( CGRect )frame { self = [ super initWithFrame:frame]; if ( self ) { _scrollWidth = kScreenWidth; self .backgroundColor = [ UIColor whiteColor]; [ self addSubview: self .scrollView ]; [ self addSubview: self .textField ]; [ self addSubview: self .markLine ]; [ self addSubview: self .bottomLine ]; _minValue =

vim编辑器入门

匿名 (未验证) 提交于 2019-12-03 00:34:01
本随笔是学习vim编辑器学习笔记,原课程详见 https://www.shiyanlou.com/courses/2 vim编辑器的六种基本模式   1. 普通模式:启动后的默认模式,按 a 或者 i 等可以进入插入模式;   2. 插入模式:可以输入文本,只是写入缓冲区并不保存,按 Esc 返回普通模式;   3. 命令模式:可以输入会被解释并执行的文本;   除了上面三种模式,还有可视模式、选择模式、Ex模式等三种模式。 vim [文件名]   打开vim编辑器,并进入普通模式 移动鼠标   在普通模式下执行下面命令可以移动鼠标 按键 说明 h 左 l(小写) 右 j 下 k 上 w 移动到下一个单词 b 移动到上一个单词 普通模式下执行下面命令可以进入插入模式 命令 说明 i(小写) 在当前游标处进行编辑 I(大写) 在行首插入编辑 A 在行末插入编辑 a 在游标后插入编辑 o(小写) 在当前行后插入一行新行 O(大写) 在当前行前插入一行新行 cw 替换游标所在位置及以后到一个单词结尾的字符 保存文档   在命令模式下执行下面命令可以保存文档     :w     :w <文件名> ---- 可以另存到其他位置,另存为 退出vim编辑器   命令行模式下执行下面命令退出 命令 说明 :q! 强制退出,不保存( ! 表示强制) :q 退出 :wq! 强制退出,并保存 :w

sqlserver 动态游标

匿名 (未验证) 提交于 2019-12-03 00:34:01
--创建动态游标 set @sql = 'declare rowCursor cursor For select aimg,aname,aprice from ( select *, ROW_NUMBER() over('+ @order +') as rn from (select id,aimg,aname,aprice from F_Anli where '+ @where +') t ) a where rn>='+@start+' and rn<='+@end; EXEC(@sql) --打开游标 --ȡֵ fetch next from rowCursor into @aimg,@aname,@aprice; --循环 while(@@FETCH_STATUS=0) begin set @eachjson = @eachjson+'<row><aimg>'+@aimg+'</aimg>'+'<aname>'+@aname+'</aname>'+'<aprice>'+@aprice+'</aprice></row>'; fetch next from rowCursor into @aimg,@aname,@aprice; --关闭游标 close rowCursor; --释放游标控件 deallocate rowCursor; 文章来源: sqlserver 动态游标

【SQL开发】PLSQL游标

匿名 (未验证) 提交于 2019-12-03 00:22:01
游标提供了一种从表中检索数据并进行操作的灵活手段,游标主要用在服务器上,处理由客户端发送给服务器端的SQL语句,或是批处理、存储过程、触发器中的数据处理请求。游标的作用相当于指针,通过游标PL/SQL程序可以一次处理查询结果集中的一行,并可以对该行数据执行特定操作,从而为用户在处理数据的过程中提供了很大方便。 在Oracle中,通过游标操作数据主要使用显式游标和隐式游标,另外,还有具有引用类型的ref游标,下面将分别介绍。 一 显式游标 1 显式游标介绍 显式游标由用户自己定义和操作游标,通常所说的游标都是指显式游标。 游标的使用分成以下4个步骤: 1)声明游标 在DECLARE部分按以下格式声明游标: 参数是可选部分,所定义的参数可以出现在SELECT语句的WHERE子句中。如果定义了参数,则必须在打开游标时传递相应的实际参数。 2)打开游标 在可执行部分,按以下格式打开游标: 打开游标时,SELECT语句的查询结果就被传送到了游标工作区。 3)提取数据 在可执行部分,按以下格式将游标工作区中的数据提取到变量中。提取操作必须在打开游标之后进行。 或 游标打开后有一个指针指向数据区,FETCH语句一次返回指针所指的一样数据,要返回多行需重复执行,可以使用循环语句来实现。控制循环可以通过判断游标的属性来进行。 对以上两种格式进行说明: 第一种格式中的变量是用来从游标中接收数据的变量

Oracle游标的简单应用

匿名 (未验证) 提交于 2019-12-03 00:19:01
不带参数的游标 DECLARE cursor my_cursor is select xh from xs; v_xh xs.xh%type; begin open my_cursor; fetch my_cursor into v_xh; dbms_output.put_line(v_xh); dbms_output.put_line(my_cursor%rowcount); exception when others then dbms_output.put_line(sqlcode||sqlerrm); end; 带参数的游标 DECLARE varId NUMBER; varName VARCHAR2(50); cursor my_cursor(v_xb xs.xb%type) is select xh,xm from xs where xb=xs.xb; begin open my_cursor('男'); fetch my_cursor into varId,varName; dbms_output.put_line('学生编号:'||varId||'学生姓名:'||varName); dbms_output.put_line(my_cursor%rowcount); close my_cursor; exception when others then dbms