Sql 如何在使用DB2 generate unique()函数生成的DB2表中选择唯一id?
我想从DB2表中选择信息,在一个简单的select查询中使用DB2Generate unique()函数生成的唯一id作为键 直接使用该字段给出的SQL代码为-333,在select中使用十六进制(唯一id)给出的SQL代码为+100Sql 如何在使用DB2 generate unique()函数生成的DB2表中选择唯一id?,sql,db2,cobol,Sql,Db2,Cobol,我想从DB2表中选择信息,在一个简单的select查询中使用DB2Generate unique()函数生成的唯一id作为键 直接使用该字段给出的SQL代码为-333,在select中使用十六进制(唯一id)给出的SQL代码为+100 如何从表中获取信息?这取决于参数的数据类型。 如果您知道它的十六进制表示,那么: DECLARE GLOBAL TEMPORARY TABLE SESSION.GEN_UNIQUE (U) AS (VALUES GENERATE_UNIQUE()) WITH D
如何从表中获取信息?这取决于参数的数据类型。
如果您知道它的十六进制表示,那么:
DECLARE GLOBAL TEMPORARY TABLE SESSION.GEN_UNIQUE (U) AS (VALUES GENERATE_UNIQUE())
WITH DATA WITH REPLACE ON COMMIT PRESERVE ROWS NOT LOGGED;
SELECT HEX(U) AS HEX_VAL
FROM SESSION.GEN_UNIQUE
WHERE U = HEXTORAW ('20210531172108210028000000');
|HEX_VAL |
|--------------------------|
|20210531172108210028000000|
如果将其作为位数据的CHAR(13)
,则可以像往常一样使用:
--#SET TERMINATOR @
BEGIN
DECLARE L_VAR CHAR(13) FOR BIT DATA;
DECLARE L_DUMMY INT;
DECLARE EXIT HANDLER FOR NOT FOUND
BEGIN
RESIGNAL SQLSTATE '70001' SET MESSAGE_TEXT = 'Oops!';
END;
SET L_VAR = HEXTORAW('20210531172108210028000000');
SELECT 1 INTO L_DUMMY
FROM SESSION.GEN_UNIQUE
WHERE U = L_VAR;
END
@
这是一个编程网站__显示您的代码。
Generate_Unique
返回位数据的char(13)
。查询时,主机变量的数据类型必须兼容。您的cobol预处理器应该理解01。。。SQL类型为二进制(13)
,并生成适当的结构。