资源预览内容
第1页 / 共90页
第2页 / 共90页
第3页 / 共90页
第4页 / 共90页
第5页 / 共90页
第6页 / 共90页
第7页 / 共90页
第8页 / 共90页
第9页 / 共90页
第10页 / 共90页
亲,该文档总共90页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
读取并处理 数据库表概览内容数据库表和 SSQL 概念念从数据库表 读读取数据定义选择的 结结果指 定将读取的的 数据库表为选定数据 指指定目标区选择即将读 取取的行给行分组指定行的顺 序序更改数据库 表表的内容向数据库表 添添加行在数据库表 中中更改行添加或更改 行行从数据库表 中中删除行使用光标从 数数据库表中 读取行打开光标用光标读取 数数据如果 FETCCH 语句没没有读 取任何行, SY-SUUBRC 就就设置为 44,否则设 置为 0。关闭光光标使用光标读 取取数据的示 例确认或取消 对对数据库表 的更改为数据库表 处处理指定集 团在 ABAP/4 程序中中使用 本地的SQLL 语句在 ABAP/4 程序的的执行 过程中锁定定 数据库对象象检查 ABAPP/4 程序序用户的 权限本节讲述下 列列主题:ABAP/4 中的 SQLL 概念ABAP/4 的开放式 SSQLABAP/4 自身的 SQQL锁定和授权在处理来自 数数据库表的 大量数据时时 ,程序的运运 行时间就成成 了影响性能能 的重要因素素 。有关如何何 达到最优性性 能的示例, 请选择 ABBAP/4 开发工作台台 中的“测试 实时分析” (或使用事事 务 SE300) ,并选定“ 提示和策略略 ”。在“SQL 界面”下, 将可找到关关 于本节的适适 当示例。数据库表表和 SQLL 概念在 R/3 系统中,需需 长期保存的的 数据都存储储 在关系数据据 库表中。关关 于各种类型型 的数据库表表 以及如何创创 建和维护它它 们的信息, 参见文档 ABAP/4 词典 (页 Errorr! Nott a vaalid llink.) 。结构化查询 语语言 (SQQL) 是为为访问关 系数据库创创 建的。SQLL 有两个语语句 类型:数据据 定义语言 (DDL) 语句和数据据 操作语言 (DML) 语句。现在,SQL 还没有完全全 标准化。要要 访问指定的的 数据库系统统 ,必须查阅阅 该系统的文文 档,以获取取 可用的 SQQL 语句及及其正 确的语法的的 列表。要在 ABAPP/4 程序序中包含 这些 SQLL 语句,请请使 用自身的 SSQL(参 见 在 ABAPP/4 程序序中使用 本地的SQLL 语句 (页 ) )。为了避免不 同同的数据库 表之间的不不 兼容性,并并 使 ABAPP/4 程序序能在应 用中独立于于 数据库系统统 ,SAP 创建建了一套 叫作开放式式 SQL 的独立 SQQL 语句。开开放 式 SQL 包含了一套套 标准的 SSQL 语句句以及一 些专用于 SSAP 的增增强语句 。使用开放放 式 SQL,可可 以访问对 SSAP 系统统有效的 任何数据库库 表,而不用用 考虑它的创创 建者。下图显示了 开开放式 SQQL 与自身身的 SQLL 之间的区区别 :数据库界面 可可将 SAPP 的开放式式 SQL 语句翻译成成 专用于现正正 使用的数据据 库的 SQLL 命令。自自身 的 SQL 直接访问数数 据库。开放式 SQLL 关键字关键字用途SELECT从数据库表 读读取数据 (页 ) INSERT向数据库表 添添加行 (页 ) UPDATE在数据库表 中中更改行 (页 ) MODIFY添加或更改 行行 (页 ) DELETE从数据库表 中中删除行 (页 ) OPEN CUURSOR,FETCHH, CLOOSE CUURSOR使用光标从 数数据库表中 读取行 (页 ) COMMIT WORK, ROLLLBACK WORK确认或取消 对对数据库表 的更改 (页 ) 在 ABAP/4 程序中中使用 开放式 SQQL 语句时时,必 须保证:1) 被定址的的数 据库系统必必 须是 SAPP 支持的。2) 必须已经经在 ABAAP/4 词词典中定义 了被定址的的 数据库表。下列系统字 段段在开放式 SQL 操操作中起着 重要的作用用 :_ SY-SSUBRC和使用其它 AABAP/44 语句一样样, 系统字段 SSY-SUBBRC 中的的返回代 码值表示在在 每个开放式式 SQL 操作之后该该 操作是否成成 功。如果操操 作是成功的的 ,SY-SUUBRC 的的值就等于 0;如果操 作是失败的的 ,SY-SUUBRC 的的值就不等 于 0。_ SY-DDBCNTSY-DBCNNT 字段中中的值 表明受该操操 作影响的行行 数,或已被被 处理的行数数 。可以使用 SSQL 跟踪踪实用 程序监视 SSQL 或 ABAPP/4 功能能的性能 。为此,请请 选择“系统 实用程序SQL跟 踪”。详细 信息,参见见 文档 ABAP/4 工作台台工具 (页 Errorr! Nott a vaalid llink.) 。从数据库库表 读取数据要从数据库库 表读取数据据 ,请使用 SSELECTT 语句。语法SELECT FFROM IINTO WHEREE GGROUP BY OORDER BY .该语句有几 个个基本子句 。下表中列列 出了每一个个 子句。子句说明SELECT SELECT 子句定义选选 择的结果是是 单行还是一一 个表、选择择 的是哪些列列 、以及是否否 将排除相同同 的行。定义选择的 结结果 (页 ) FROM FROM 子句句指定即 将从中选取取 数据的数据据 库表或视图图 。指 定将读取的的 数据库表 (页 ) INTO INTO 子句句确定即 将读入选定定 数据的目标标 区 。 该子句也可可 以放在FROOM 子句之之前。 如果没有指指 定 INTOO 子句,系系统 将使用表工工 作区。表工工 作区是由 TTANLESS 语句自动动创 建的表头行行 。为选定数据 指指定目标区 (页 ) WHERE WHERE 子子句指定将 按照指定的的 条件读取哪哪 些行来作为为 选择。选择即将读 取取的行 (页 ) GROUP BBY GROUP-BBY 子句从从几行 组成的组中中 产生了作为为 结果的单行行 。一个组是是 在 中列出的列列 中有相同值值 的行的集合合 。给行分组 (页页 ) ORDER BBY ORDER-BBY 子句为为选定 的行定义顺顺 序 。指定行的顺 序序 (页 ) 关于 SELEECT 语句句及其子 句性能的重重 要信息,参 见关键字文文 档。定义选择择的 结果SELECCT 子句定定义是 选择单行还还 是选择多行行 、是否去掉掉 重复行以及及 将选择哪些些 列。图中显示了 可可能的选择 :有关叙述 SEELECT 子句的三个个 变式的主题题 ,参见选择多行行中 的所有数据据要从数据库库 表中读取所所 有列和多行行 ,请按如下下 方式在循环环 中使用 SEELECT 语句。语法SELECT DISTTINCT * . .ENDSSELECTT.必须用 ENDDSELECCT 语句结结束该 循环。该循环依次 读读取所选行 ,并为每个个 读取的行执执 行循环中的的 ABAPP/4 语句句。SELEECT 循环环的结果 是与被读取取 的数据库表表 的格式完全全 相同的表。DISTINCCT 选项将将自动 的去掉重复复 的行。如果至少读 取取了一行, 系统字段 SSY-SUBBRC 就返返回 0。如果没没 有读取,系系 统字段 SYY-SUBRRC 就返回回 4。系统字字 段 SY-DDBCNT 给读取的行行 计数。每执执 行一次 SEELECT 语句,SY-DBCNTT 都加 1。TABLES SPFLII.SELECT * FROOM SPFFLI WHHERE CCITYFRROM EQQ FRAANKFURRT. . WRITEE: / SSPFLI-CARRIID, SPPFLI-CCONNIDD, SPFFLI-CIITYFROOM, SPPFLI-CCITYTOO. .ENDSSELECTT.该 SELECCT 循环从从 SPFLLI-CITTYFROMM 字段中包包含 “FRANKKFURT” 的 SPFLLI 表中读读取所 有的行(由由 WHERRE 子句指指定) 。读取的每每 一行的数据据 都由循环中中 的 WRITTE 语句写写入输 出列表中。输出列表如 下下所示:选择单行行中 的所有数据据要从数据库 表表中读取单 个行的所有有 列,请按如如 下方式使用用 SELEECT 语句句:语法SELECT SINGLLE FOOR UPDDATE * . WHEREE .该语句的结 果果是一个单 行。为了保保 证清楚地指指 定了一行, 就必须在 WWHERE 子句的条件件 中用用 AND 链接形成数数 据库表主码码 主码的所有有 字段。(关关 于 WHERRE 子句的的信息 ,参见 选择即将读读 取的行 (页 ) )。如果系统没 有有找到具有 指定关键字字 的行,系统统 字段 SY-SUBRCC 将设置为为 4。如果系系 统找到了一一 个完全符合合 指定条件的的 行,SY-SSUBRC 就返回 0。可以使用 FOOR UPDDATE 选选项锁定在 数据库表中中 选定的行。 程序将一直直 等到接收到到 该锁定。如如 果数据库检检 测到或怀疑疑 有一个死锁锁 定,将产生生 运行时间错错 误。FOR UPDDATE 选选项不是将 SAP 锁锁定机制与 ENQUEEUE/DEEQUEUEE 功能模块块一 起使用的替替 代品。例如如 ,显示一个个 新的屏幕时时 ,所有用 FFOR UPPDATE 锁定的行都都 将自动解锁锁 。要保证在在 显示新屏幕幕 时锁定的行行 保留锁定状状 态,就必须须 使用 SAPP 锁定机制制。 这是使锁定定 的行一直到到 事务的结束束 都保留其锁锁 定状态的唯唯 一方法。详详 细信息,参参 见 在 ABAPP/4 程序序的执行 过程中锁定定 数据库对象象 (页 ) TABLES SPFLII.SELECT SINGLLE * FFROM SSPFLI WHEREE CARRRID EQQ LH AAND COONNID EQ 22407.WRITEE: / SSPF
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号