找到关于数据库的6705 篇文章

如何在 ORDERS DB2 表上创建一个新的触发器?给出触发器的语法。

Mandalika
更新于 2020年12月1日 04:44:50

401 次查看

触发器是数据库程序,由数据库自动触发。触发器使用 CREATE TRIGGER 语句创建。例如,我们想要创建一个触发器,在每次向 ORDERS 表插入新记录后,将 ORDERS 表的 ORDER_COMMISION 列更新为 ORDER_TOTAL 值的 5%。示例 CREATE TRIGGER ORDERCOMMUPD AFTER INSERT ON ORDERS FOR EACH ROW MODE DB2SQL BEGIN ATOMIC UPDATE ORDERS SET ORDER_COMMISION=(5*ORDER_TOTAL)/100; 使用上述语句,我们创建了一个 AFTER 触发器,它将在向 ORDERS 表插入任何新行后自动触发。类似地,我们可以有 BEFORE ... 阅读更多

DB2 中的触发器是什么?触发器和存储过程的区别是什么?

Mandalika
更新于 2020年12月1日 04:43:41

1K+ 次查看

触发器是数据库程序,由 DBMS 自动触发,以响应对指定表所做的任何修改。触发器只能与单个表关联,如果发生所需事件,则不能跳过它们。触发器类似于存储过程,两者都是由 DB2 直接管理的代码片段。但是,触发器是事件驱动的,一旦在指定表上发生所需事件(INSERT/UPDATE/DELETE),就会自动执行。另一方面,存储过程需要在应用程序程序中显式调用。它们之间的另一个区别是,触发器是 ... 阅读更多

COBOL-DB2 程序如何调用存储过程?举个例子。

Mandalika
更新于 2020年12月1日 04:41:51

4K+ 次查看

存储过程通常包含在一个或多个程序中经常使用的 SQL 语句。存储过程的主要优点是它减少了 COBOL 和 DB2 之间的流量,因为存储过程驻留在 DB2 中。COBOL-DB2 程序可以使用 CALL 语句调用存储过程,并且我们可以将嵌套存储过程嵌套多达 16 个级别。例如,如果我们有一个名为 ORDERSTAT 的存储过程,那么我们可以在我们的 COBOL-DB2 程序中使用以下命令调用它:示例 EXEC SQL    CALL ORDERSTAT (:WS-ORDER-ID, :WS-ORDER-STATUS) END-EXEC 为了创建 DB2 过程,我们 ... 阅读更多

数据库停机对 COBOL-DB2 程序的影响

Mandalika
更新于 2020年12月1日 04:40:37

896 次查看

问题:如果 COBOL-DB2 程序尝试查询 DB2 表,但表所在的数据库已关闭,结果会怎样?解决方案 当我们尝试使用 COBOL-DB2 程序访问任何表并且该表所在的 DB2 数据库已关闭时,COBOL-DB2 程序将异常终止。在这种情况下,SQLCA 字段的 SQLCODE 将具有值为 -904 的值。根据 IBM 文档,SQLCODE -904 指示。“资源不可用。数据库或表空间不可用” 有几种方法可以用来查找当前状态... 阅读更多

编写 SQL 查询以计算 ORDERS DB2 表中重复 TRANSACTION_ID 的数量

Mandalika
更新于 2020年12月1日 04:39:32

2K+ 次查看

我们可以使用以下查询在 ORDERS DB2 表中找到重复的 TRANSACTION_ID:示例 SELECT TRANSACTION_ID, COUNT(*) AS TRANSACTION_COUNT FROM ORDER GROUP BY TRANSACTION_ID HAVING COUNT(*) > 1 COUNT(*) 的目的是计算行数。我们将使用 GROUP BY 函数根据 TRANSACTION_ID 对结果进行分组,并为了显示重复的事务 ID,我们将使用 HAVING 语句为 COUNT(*) 大于 1 设置谓词。例如,考虑以下 TRANSACTIONS DB2 表:TRANSACTION_IDTRANSACTION_STATUSIRN22345PAIDIRN22345PAIDIRN22345PAIDIRN56902PAIDIRN99781UNPAIDIRN56902PAID 查询将给出以下结果:TRANSACTION_IDTRANSACTION_COUNTIRN223453IRN569022IRN997811阅读更多

解释 SQL 中描述 COUNT 聚合函数和 CURRENT DATE 函数的概念

Mandalika
更新于 2020年12月1日 04:38:41

346 次查看

问题:编写一个 SQL 查询,以计算今天从 ORDERS DB2 表中下达的订单数量。(日期不应硬编码)解决方案 我们可以使用以下 DB2 查询找到今天下达的订单数量:示例 SELECT COUNT(ORDER_ID) AS ORDER_COUNT FROM ORDERS WHERE ORDER_DATE = CURRENT DATE 在此查询中,我们使用了 COUNT COLUMN 函数,它将计算 ORDER_ID(主键)的总数。在 WHERE 子句中,我们将对 ORDER_DATE 列使用谓词。CURRENT DATE 是 DB2 内置函数,它将返回当前系统日期。例如,如果 ... 阅读更多

描述条件处理的 SQL 查询示例

Mandalika
更新于 2020年11月30日 09:42:48

202 次查看

问题:编写一个 SQL 查询以显示 2 列。第一列应包含 ORDER_ID,第二列应根据 ORDER_TOTAL > 500 为免费送货提供 YES/NO 值。解决方案 显示 ORDER_ID 和基于 ORDER_TOTAL 条件的免费送货结果的查询可以写成如下。示例 SELECT ORDER_ID,    CASE WHEN ORDER_TOTAL > 500 THEN ‘YES’       ELSE ‘NO’ AS FREE_SHIPPING    END FROM ORDERS 我们将使用 CASE 表达式,通过它我们可以实现一个逻辑来检查 ORDER_TOTAL。如果 ORDER_TOTAL 大于 500,那么我们将获得免费送货的“YES”... 阅读更多

调查 DB2 死锁的根本原因和负责的资源

Mandalika
更新于 2020年11月30日 09:41:18

1K+ 次查看

问题:COBOL-DB2 程序由于死锁而失败。您将如何查找导致程序失败的资源?解决方案 当两个或多个应用程序卡住,等待彼此释放它们所需的资源上的锁时,就会发生死锁情况。可以在 DB2 系统作业 DSNZMSTR 作业中找到详细的信息和日志。DSNZ 是已安装的 DB2 子系统的名称,它因安装而异。此作业的 SYSOUT 继续显示 DB2 级系统日志。与死锁相关的日志也可用在 ... 阅读更多

借助示例解释锁升级的概念

Mandalika
更新于 2020年11月30日 09:40:03

529 次查看

DB2 锁升级定义为在特定资源上获取更严格锁的过程。DB2 使用锁升级来处理试图访问相同 DB2 资源的并发进程。基本上,有三种类型的锁。共享锁 (S) 并发进程可以在资源(DB2 表、行、页等)上放置共享锁,但不能更新数据。为了更新数据,并发进程必须将其锁升级为更新锁。更新锁 (U) 并发进程可以读取数据,但不能更新数据。更新锁表示该进程已准备好更新 ... 阅读更多

直接索引查找的实现和目的

Mandalika
更新于 2020年11月30日 09:38:27

134 次查看

当WHERE子句谓词中使用的所有列都属于索引的一部分时,DB2优化器会选择直接索引查找。例如,如果我们有如下所示的ORDERS DB2表:ORDER_ID,ORDER_DATE,ORDER_TOTAL Z22345,30-10-2020,342 Z33412,14-08-2020,543 Z56990,19-10-2020,431 Z56902,21-09-2020,674 3Z9978,10-11-2020,443 Z56112,29-08-2020,889在这个表中,有一个索引,其列名为ORDER_ID和ORDER_DATE。对于下面的查询,DB2优化器将选择直接索引查找,因为SELECT语句中使用的列也是索引的一部分。示例SELECT ORDER_ID, ORDER_DATE, INVOICE_ID FROM ORDERS WHERE ORDER_ID = ‘Z33412’ AND ORDER_DATE = ‘14-08-2020’上述查询的结果如下:ORDER_ID,ORDER_DATE Z33412,14-08-2020在……阅读更多

广告