存储过程中的原子插入
ATOMIC INSERT in STORED PROCEDURE
我对存储过程还很陌生。我必须为原子插入(批量插入)设计一个存储过程。我正在使用 COBOL 程序调用 DB2 中的存储过程。我会将值存储在数组中,并且必须一次插入所有值。下面是我们在 COBOL 程序中使用的查询,我必须将其转换为存储过程。
INSERT INTO TABLE_NAME
(COLUMN1
,COLUMN2
,COLUMN3
,COLUMN4
,COLUMN5)
VALUES
(VALUE1
,VALUE2
,VALUE3
,VALUE4
,VALUE5)
FOR WS-SUB ROWS
ATOMIC
VALUE1,VALUE2,VALUE3,VALUE4,VALUE5为数组元素,WS-SUB为出现次数。
我想知道,如果我可以在存储过程中处理数组,或者想知道是否可以在 DB2 存储过程中执行 ATOMIC 插入。
提前致谢。
遵循 z/OS 12.0.0 上的 DB2 文档:
DB2 存储过程可以配置为使用数组作为参数类型,请参阅 Example of using arrays in an SQL procedure。
但是,如果您打算从 COBOL 调用它,您可能 运行 会遇到问题,如 Supported SQL data types in COBOL embedded SQL applications 的文档所示:
Arrays are not supported by the COBOL precompiler
另一种方法是将您的数据作为由字符分隔的 CLOB 或 VARCHAR 之类的东西传递,然后在您的存储过程中对其进行解析。
默认情况下,DB2 存储过程不会在 return 上提交,因此另一种选择是迭代 COBOL 表并重复调用存储过程。
我对存储过程还很陌生。我必须为原子插入(批量插入)设计一个存储过程。我正在使用 COBOL 程序调用 DB2 中的存储过程。我会将值存储在数组中,并且必须一次插入所有值。下面是我们在 COBOL 程序中使用的查询,我必须将其转换为存储过程。
INSERT INTO TABLE_NAME
(COLUMN1
,COLUMN2
,COLUMN3
,COLUMN4
,COLUMN5)
VALUES
(VALUE1
,VALUE2
,VALUE3
,VALUE4
,VALUE5)
FOR WS-SUB ROWS
ATOMIC
VALUE1,VALUE2,VALUE3,VALUE4,VALUE5为数组元素,WS-SUB为出现次数。
我想知道,如果我可以在存储过程中处理数组,或者想知道是否可以在 DB2 存储过程中执行 ATOMIC 插入。
提前致谢。
遵循 z/OS 12.0.0 上的 DB2 文档:
DB2 存储过程可以配置为使用数组作为参数类型,请参阅 Example of using arrays in an SQL procedure。
但是,如果您打算从 COBOL 调用它,您可能 运行 会遇到问题,如 Supported SQL data types in COBOL embedded SQL applications 的文档所示:
Arrays are not supported by the COBOL precompiler
另一种方法是将您的数据作为由字符分隔的 CLOB 或 VARCHAR 之类的东西传递,然后在您的存储过程中对其进行解析。
默认情况下,DB2 存储过程不会在 return 上提交,因此另一种选择是迭代 COBOL 表并重复调用存储过程。