找到关于大数据分析的1660篇文章

在DB2表列中使用“NOT NULL WITH DEFAULT”子句的目的是什么?

Mandalika
更新于2020年9月14日15:02:16

1K+浏览量

当我们定义DB2表时,可以将任何列声明为“NOT NULL”,这意味着无论如何此列都不能存储NULL值。如果我们尝试在我们的COBOL-DB2程序中使用-1值作为NULL指示器将NULL值存储在此列中,则我们的查询将失败。在这种情况下,SQLCA的SQLCODE字段将给出错误代码-407。根据IBM文档,-407错误代码表示:“更新、插入或设置值为NULL,但对象列不能包含NULL值”。

如何使用COBOL-DB2程序在DB2表的特定列中存储NULL值?

Mandalika
更新于2020年9月14日15:00:58

5K+浏览量

我们将使用NULL指示器来在DB2表的任何列中存储NULL值。首先,我们应该在我们的COBOL-DB2程序中将值-1移到NULL指示器中。之后,我们执行UPDATE或INSERT查询来存储NULL值。例如,如果我们必须更新ORDER表中ORDER_ID为3345612.A020-UPDATE-ORDERS的ORDER_DESCRIPTION列中的NULL值。    MOVE -1 TO ORDER-DESCRIPTION-N    MOVE SPACES TO ORDER-DESCRIPTION-DATA    EXEC SQL       UPDATE ORDERS          SET ORDER_DESCRIPTION =           ... 阅读更多

如果DB2表中存在NULL值,则COUNT函数的结果是什么?

Mandalika
更新于2020年9月14日14:57:50

373浏览量

DB2中的COUNT函数用于返回满足给定条件的行数。GROUP BY用于根据查询中给定的条件将行划分为组。如果我们对INVOICE_ID执行GROUP BY,并且有一些行在INVOICE_ID中具有NULL值,则NULL值将形成一个单独的组。例如,如果我们有下表。ORDER_IDINVOICE_IDA112343214A556113214A99867NULLA556713214A88907NULLA560126701在执行对INVOICE_ID执行GROUP BY并计算行数的查询时,我们将得到以下结果。SELECT INVOICE_ID, COUNT(*) AS INVOICE COUNT FROM ORDERS GROUP BY ... 阅读更多

如果在COBOL-DB2程序中的SQL语句中检测到NULL值且未使用NULL指示器,会发生什么?

Mandalika
更新于2020年9月14日14:54:26

2K+浏览量

COBOL语言中没有NULL的概念。因此,如果DB2表中的任何列可以保存NULL值,则需要在SELECT查询中给出NULL指示器以检测NULL值。但是,如果我们在SELECT查询中遗漏了NULL指示器,并且任何列包含NULL值,则查询将失败,并且我们将在SQLCA的SQLCODE字段中得到-305的值。根据IBM文档,-305值表示。“NULL值不能分配给输出主机变量编号position-number,因为... 阅读更多

如何使用COBOL段落验证DB2列数据中的NULL值?

Mandalika
更新于2020年9月14日14:52:20

2K+浏览量

为了实现这一点,我们将在ORDERS表的INVOICE_ID上的SELECT查询之后使用NULL指示器。如果NULL指示器的值为-1,则我们可以得出结论,INVOIVE_ID具有NULL值。以下是为此的COBOL段落:A010-CHECK-ORDER.    EXEC SQL    SELECT INVOICE_ID INTO :INVOICE_ID_DATA :INVOICE_ID_N    FROM ORDERS       WHERE ORDER_ID = ‘678542112’    END-EXEC    IF INVOICE-ID-N = -1    MOVE SPACES TO INVOICE-ID-DATA END-IFINVOICE-ID-N是一个NULL指示器,它由DCLGEN实用程序自动生成。

当主机变量与SELECT语句中的列数不匹配时,COBOL-DB2程序的行为如何?

Mandalika
更新于2020年9月14日14:44:03

575浏览量

如果列数和主机变量数不匹配,则查询将失败。我们可以通过两种方法检测此条件。如果存在不匹配,则SQLCA的SQLWARN3字段将获得值“W”。在某些安装中,当存在不匹配时,SQLCA的SQLCODE字段将获得错误代码-804。我们可以使用IF条件检查SQLWARN3或SQLCODE中的值,并相应地引导程序处理。

DCLGEN实用程序如何为VARCHAR(n)数据类型适应NULL主机变量?

Mandalika
更新于2020年9月14日14:39:55

1K+浏览量

如果未明确使用“NOT NULL”选项定义,则DB2列可以存储NULL值。但是,COBOL没有任何NULL概念。为了处理这些NULL值,COBOL程序对具有NULL值的字符列使用空格,对整数列使用零。但是,主要挑战是如何检测特定列是否具有NULL值以及如何将空格/零移入相应的主机变量。为了克服这个问题,DCLGEN实用程序为每个可以保存NULL值的DB2列生成一个NULL指示器。NULL指示器是一个2字节的... 阅读更多

将DECIMAL(7,3)转换为等效的COBOL主机变量PIC形式。

Mandalika
更新于2020年9月14日14:30:09

1K+浏览量

将DECIMAL DB2数据类型转换为COBOL等效类型的公式为:DECIMAL(p,q) = PIC S9(p-q)V(q)。其中V表示隐式小数。DECIMAL(7,3)可以取一个示例值,例如7861.237,这可以转换为COBOL等效类型为PIC S9(7-3)V(3) = PIC S9(4)V(3)。

各种DB2数据类型的COBOL主机变量等效类型是什么?

Mandalika
更新于2020年9月14日14:28:07

724浏览量

主机变量用于将数据从DB2传输到程序,反之亦然。对于每个DB2表列,我们都有一个定义的COBOL等效主机变量。可以使用DCLGEN实用程序自动生成主机变量,或者我们可以在COBOL-DB2程序的工作存储区部分显式给出主机变量。下表列出了各种DB2数据类型的COBOL等效类型。DB2数据类型COBOL等效类型SMALLINT - 2字节PIC S9(4) COMPINTEGER - 4字节PIC S9(9) COMPTIMESTAMP - 10字节PIC X(26)CHAR - 5字节PIC X(5)

DB2对各种数据类型使用哪些默认值?

Mandalika
更新于2020年9月14日14:21:06

969浏览量

DB2提供了一种在用户未为列提供任何值的情况下插入默认值的功能。对于每个DB2数据类型,都存在一个固定的默认值,如果在插入时未提供该值,则该值将被分配给该列(在创建表期间使用“DEFAULT”参数定义)。下表给出了CHAR、VARCHAR、TIMESTAMP和INTEGER的DB2默认值。数据类型DB2默认值CHAR空格Varchar长度为0的空字符串TIMESTAMP当前时间戳INTEGER零

广告