ABAP游标的使用】的更多相关文章

在Oracle,SQLServer中游标的使用是经常的,所以在ABAP不懂是不行的......     1.声明游标 OPEN CURSOR [WITH HOLD] <c> FOR SELECT      <result> FROM      <source> [WHERE    <condition>] [GROUP BY <fields>] [HAVING   <cond>] [ORDER BY <fields>].…
DATA: BEGIN OF count_line, carrid TYPE spfli-carrid, count TYPE i, END OF count_line, spfli_tab TYPE TABLE OF spfli. DATA: dbcur1 TYPE cursor, dbcur2 TYPE cursor. OPEN CURSOR @dbcur1 FOR SELECT carrid, count(*) AS count FROM spfli GROUP BY carrid ORD…
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将追究法律责任!原文链接:http://www.cnblogs.com/jiangzhengjun/p/4260224.html   该文档是根据我过去多年学习与工作经验总结而成,项目开发过程中我都会参考此文档,主要ABAP很多细节上的东西还是还多,不可能你记得很牢固,或者你记得一时,但过不了几天就会…
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将追究法律责任!原文链接:http://www.cnblogs.com/jiangzhengjun/p/4264698.html OPEN SQL也是ABAP开发人员必备的知识,虽然可以使用原生的SQL来写,但不建议,就像JDBC与Hibernate的关系,性能与跨数据库的选择.但为了开发的简便与可移…
  SAP ——ABAP/4 技术总结 V3.0 2014-10-14 --江正军 1. 1.1. 1.1.1. 1.2. 1.3. 1.4. 1.5. 1.6. 1.7. 1.7.1. 1.7.2. 1.7.3. 1.7.4. 1.7.4.1. 1.7.4.2. 1.7.4.3. 1.7.4.4. 1.7.4.5. 1.7.4.6. 1.8. 1.9. 1.10. 1.10.1. 1.10.2. 1.10.2.1. 1.10.2.2. 1.11. 1.11.1. 1.11.2. 1.11.3.…
转载自SAP师太技术博客,原文链接:http://www.cnblogs.com/jiangzhengjun/p/4260224.html 在原文上增加了链接,此文及此文的链接版权都归SAP师太所有. 1.      基础 1.1.           基本数据类型 1.1.1.        P类型(压缩型)数据 1.2.           TYPE.LIKE 1.3.           DESCRIBE 1.4.           字符串表达式 1.5.           Data…
declare @name varchar(100) DECLARE My_Cursor CURSOR --定义游标 FOR (SELECT Name FROM Master..SysDatabases where name NOT IN ('master','model','msdb','tempdb') ) --查出需要的集合放到游标中 OPEN My_Cursor; --打开游标 FETCH NEXT FROM My_Cursor INTO @name WHILE @@FETCH_STAT…
平时工作的时候,经常会遇到这种事情,从一个大表A中,抽取字段a在一个相对较小B的表的数据,比如,从一个详单表中,抽取几万个用户号码的话单出来.这种时候,一般来说, 做关联查询: create table A1 as select A.* from 详单表 A,号码表 B wherea.号码 = b.号码 当然这个语句根据情况不一样有很多中写法,但是,不管是哪种写法,这个语句最大的问题是,如果数据量大,你非常纠结他到底能不能跑完,有时候一个事情,要求2个小时干完,现在跑了1个小时,你说到底要不要结…
本文包含了我在开发项目中经历过的实用的ABAP单元测试指导方针.我把它们安排成为问答的风格,欢迎任何人添加更多的Q&A's,以完成这个列表. 在我的项目中,只使用传统的ABAP report.所以很不幸我不能使用ABAP单元测试了,是吗?有个好消息:无论你正在使用哪一种ABAP代码对象进行开发,都可以通过添加单元测试使得它更加稳定和更易于扩展.对于reports,模块池(module pools)和函数组(function groups),可以通过添加手写本地类的方式添加单元测试.假设一个简单的…
ABAP开发工程中,有时候需要让跳转出的屏幕自动实现跳转和刷新的功能,该功能的实现需要在屏幕PBO 里面调用相应的事件执行. 关键代码为: SET TITLEBAR ' 屏幕自动程序'. IF g_contine_no IS INITIAL. CREATE OBJECT gr_timer. CREATE OBJECT gr_app_timer. SET HANDLER gr_app_timer->handle_get_brgew FOR gr_timer. "0.5S 刷新一次 gr_ti…
游标这个在我目前的项目里面用的还不多, 但是其功能还是很强大的. 动态sql以前都没用过, 是跟着富士康(不是张全蛋的富土康哦)过来的同事学的. 还是挺好用的. 我的数据库方面, 跟他学了不少. 在此, 感谢他一下, 建华锅锅. 事务在前面的篇章中其实已经出现过了, 这个东西好像还是程序中用的比较多一点. 由于之前的工作中碰到过一个场景, 正好将游标,动态sql,事务都用上了, 那么我也弄一个例子好了, 想了一个别的场景, 与工作的那个场景不相干, 并没有泄露公司业务机密之类的啊. 先看例子吧,…
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 游标模板(Cursor Template) 鼠标轨迹字符串分割SQL脚本实现(SQL Codes) 补充说明(Addon) 二.背景(Contexts) 我们的系统中记录了用户的鼠标行为轨迹字符串,这些字符串的格式是:PosSet:[573,1103,2010-09-03 22:32:35],[864,110,2010-09-03 22:32:57],这个字段表示用户点击页面的X坐标,Y坐标…
21.1 游标 结果集(result set),SQL查询说检出的结果. 游标(cusror),是一个存储在DBMS服务器上的数据库查询. 游标不是一条SELECT语句,而是被该句检索出来的结果集. 存储了游标之后.应用程序可以根据需要滚动或浏览其中的数据. 不同的DBMS支持不同的游标选项和特性. 游标主要用于交互式应用,滚动屏幕上的数据,并对数据进行浏览或更改. 21.2 使用游标 21.2.1 创建游标 创建游标的语句在不同的DBMS中有所不同.一般使用DECLARE语句创建游标. 21.…
declare @temp_temp uniqueidentifier--临时变量 DECLARE aaa CURSOR for select Id from A -------------------打开游标 open aaa --先查询一次再循环,防止有多个游标时@@FETCH_STATUS=-1不能进入下个游标循环的情况 fetch next from aaa into @temp_temp -------------------循环取数据 while @@FETCH_STATUS=0 b…
通过(准备语句+视图+静态游标)实现 -- 建立测试表和数据 create table webuser (username varchar(10)); insert into webuser values ('a1'),('a2'),('a3'),('b1'),('b2'),('b3'); commit; -- 建立存储过程 drop procedure if exists dynamic_cursor; delimiter // CREATE PROCEDURE dynamic_cursor…
清晰地介绍了SQL游标,很好的学习资料. 转自 http://www.cnblogs.com/knowledgesea/p/3699851.html 什么是游标 结果集,结果集就是select查询之后返回的所有行数据的集合. 游标则是处理结果集的一种机制吧,它可以定位到结果集中的某一行,多数据进行读写,也可以移动游标定位到你所需要的行中进行操作数据. 一般复杂的存储过程,都会有游标的出现,他的用处主要有: 定位到结果集中的某一行. 对当前位置的数据进行读写. 可以对结果集中的数据单独操作,而不是…
在一步步实现ABAP后台导入EXCEL到数据库[2]里,我们已经实现计划后台作业将数据导入数据库的功能.但是,这只是针对一个简单的自定义结构的导入程序.在实践应用中,面对不同的表.不同的导入文件,我们将不得不重写程序,以适应它们的结构的不同.其实多数需要上传的EXCEL文件都是行结构的数据,无非字段不同,为什么不把这个功能做成一个具有通用性的函数,以减少工作量呢? 实际上我已经完成了这个函数的大部分内容. 导入的参数: 异常: 代码就不贴了,其实和之前在[1][2]两篇文中完成的程序是很相似的,…
前文:http://www.cnblogs.com/hhelibeb/p/5912330.html 既然后台作业只能在应用服务器运行,那么,我们可以先将要上传的数据保存在应用服务器中,之后再以后台作业的形式导入数据库.这里需要使用的关键字是OPEN DATASET. 1. OPEN DATASET Syntax OPEN DATASET dset   FOR { INPUT | OUTPUT | APPENDING | UPDATE }   IN { { BINARY MODE }      |…
引言 ABAP是一种和当代编程语言在许多方面有着相当不同的编程语言.ABAP的某些方面可能会让我们奇怪,为什么它会如此复杂?而它的某些方面又是那么杰出,给予了ABAP开发者们比其它任何语言更多的便利. 我发现有两样东西太cool了: 朴实的IDE(ABAP Editor)以及 酷炫的调试 尽管SAP的IDE不支持某些更加有名的IDE(比如Eclipse)的一些特点,我依然发现在ABAP Editor中写代码要比其它IDE舒服太多.原因在于以下的快捷键以及它的可定制性.我会列出一些我常用的功能清单…
在SAP的应用当中,导入.导出EXCEL文件的情况是一个常见的需求,有时候用户需要将大量数据定期导入到SAP的数据库中.这种情况下,使用导入程序在前台导入可能要花费不少的时间,如果能安排导入程序为后台作业,既可以节约用户的时间,也可以有效利用闲时的服务器资源,最重要的是可以避开程序超时.下面来介绍一下相关的知识和具体实践办法. 本文链接:http://www.cnblogs.com/hhelibeb/p/5912330.html 原创内容,转载请注明 1,定义结构 首先,新建程序ztest_up…
网上有关SUBMIT实现程序调用的例子稍显复杂,而相关的参考和解释则不是很完善.本文给出一个SUBMIT的小示例程序(代码见文末),实现了最简单的程序间调用及返回值,以及SAP官方文档中相关内容的翻译.解释. 本文链接:http://www.cnblogs.com/hhelibeb/p/5802398.html 转载请注明 SUBMIT - 参考 语法 SUBMIT {rep|(name)} [USING SELECTION-SCREEN dynnr] [VIA SELECTION-SCREEN…
本章将介绍如何在Sybase下使用游标 因业务需要,要批量处理一些数据,sql需要用到循环,所以要使用游标,我写了一个简单的游标,sql如下 DECLARE my_Cursor CURSOR FOR SELECT c_name,n_age FROM T_USER --声明游标 OPEN my_Cursor--打开游标 ), @age INT --声明两个变量,用来接收游标的值 FETCH my_Cursor INTO @name,@age --把游标中的值赋给变量 BEGIN INSERT IN…
游标的简介 游标的概念 游标是从数据表中提取出来的数据,以临时表的形式存放在内存中,在游标中有一个数据指针,在初始状态下指向的是首记录,利用fetch语句可以移动该指针,从而对游标中的数据进行各种操作,然后将操作结果写回数据表中.…
视图的创建: create or replace view dmv_mat_contract_stock_in_bill as select csib.*, sib.STOCK_IO_, sib.CONFIRM_DATE_ from DM_MAT_CONTRACT_STOCK_IN_BILL csib left outer join DM_MAT_STOCK_IO_BILL sib on csib.BILL_CODE_ = sib.BILL_CODE_; Oracle 游标使用:http://w…
在ABAP 编程的时候会遇到查询单条语句的时候数能取对  但是条目数多了的话 会出现数不准确的问题   原因可能出现在查询使用了二分法查询方式  二分法查询下必须按排序的字段排序  还得按照排序的字段进行二分法查询…
存储过程在小公司用的不多,但是如果业务比较复杂或者性能要求比较苛刻的时候存储过程就派上用场了,ibatis的前期的一些版本貌似不支持存储过程因此我选择了mybatis来做实验. 1.无输入和输出参数的存储过程,我写了一个比较简单的,需要注意的是Oracle无参存储过程不能写括号 CREATE OR REPLACE Procedure cascadeoperation As Begin Delete From teacher Where id=1; Update studentdetail Set…
-- 因为定义游标所用的表名是变量,所以采用EXEC(定义语句) 的方式来声明游标set @StrSql='DECLARE Ba_Cursor CURSOR FOR (SELECT a.PhoneId from '+@TABLE+' a left JOIN tj_machine_log b on a.PhoneId=b.PhoneId where a.CreateTime BETWEEN '''+CONVERT(varchar(100), @STARTTIME, 20)+''' AND '''+…
实际上,这个错误的原因,主要还是代码问题引起的.  ora-01000: maximum open cursors exceeded.  表示已经达到一个进程打开的最大游标数.  这样的错误很容易出现在Java代码中的主要原因是:Java代码在执行conn.createStatement()和conn.prepareStatement()的时候,实际上都是相当与在数据库中打开了一个cursor.尤其是,如果你的createStatement和prepareStatement是在一个循环里面的话,…
  PL/SQL PL/SQL 简介 每一种数据库都有这样的一种语言,PL/SQL 是在Oracle里面的一种编程语言,在Oracle内部使用的编程语言.我们知道SQL语言是没有分支和循环的,而PL语言是为了补充SQL语言的,是带有了分支和循环的语言. PL/SQL 语法 基本数据类型声明 declare v_name varchar2(20); v_temp number(1); v_count binary_integer := 0; v_sal number(7,2) := 4000.00…
if exists(select * from sys.objects where name='info_one') drop table info_one go create table info_one ( id int , iName varchar() ) insert into info_one values(,'小明') insert into info_one values(,'小红') insert into info_one values(,'小白') declare @id…