我想在 Select 语句中使用 SQL UDF 调用 COBOL 程序。如果您需要更多信息,请告诉我。
COBOL 数据结构:
01 WS-FOO.
03 WS-FOO-ID PIC X(16).
03 WS-FOO-NAME PIC X(16).
COBOL 代码:
PROCEDURE DIVISION USING WS-FOO.
不工作的 SQL 函数:
CREATE FUNCTION ANTHONY.FOO (CHAR(16), CHAR(16))
RETURNS CHAR(16)
EXTERNAL NAME FOO.FOO
LANGUAGE COBOL
NO SQL
PARAMETER STYLE SQL;
您需要在信息中心页面的创建函数(外部标量)上阅读有关参数样式的部分。
如果您的 UDF 有两个参数,则 COBOL 程序将需要这两个参数以及其他参数,如参数样式 SQL 中所述。 您可能更喜欢参数样式常规的更简单的参数列表。 使用 GENERAL,您可以将 COBOL 代码编译为 ILE 服务程序。 我将更改此示例中的长度。
CREATE FUNCTION ANTHONY.FOO ( BAR_ID CHAR(6), BAR_NAME CHAR(10))
RETURNS CHAR(16)
EXTERNAL NAME 'MYLIB/MYSVCPGM(MYPROC)'
LANGUAGE COBOLLE PROGRAM TYPE SUB
NO SQL
PARAMETER STYLE GENERAL;
在 COBOL 数据部门链接部分中
01 LS-BAR-ID CHAR(6).
01 LS-BAR-NAME CHAR(10).
01 LS-BAR-RESULT CHAR(16).
其次
PROCEDURE DIVISION USING LS-BAR-ID, LS-BAR-NAME
RETURNING LS-BAR-RESULT.