oracle - 将记录从 Oracle 数组移动到 Cobol

标签 oracle cobol embedded-sql procobol

如何将记录从 oracle 移动到 Cobol 数组? 当我移动一个字段时,一切都会按预期进行。 当我尝试移动 Oracle VARRAY 中的记录时,我不能 让它发挥作用。 PRO*COBOL 预编译器给出以下错误消息:

Error at line 137, column 12 in file ESF3.ordbso07.PCO
            EXEC SQL EXECUTE      
 ...........1
 PCB-S-00576, PLS-382: expression is of wrong type
 Error at line 137, column 12 in file ESF3.ordbso07.PCO
            EXEC SQL EXECUTE      
 ...........1
 PCB-S-00576, PLS-0: Statement ignored

预言机类型:

TYPE QDELSSRD_arr IS VARRAY(30) OF QDELSSRD_typ;

TYPE SODLSSRD_typ IS RECORD ( -- DBSO07 SOK
    QDELSSRD             QDELSSRD_arr -- 30 x QDELSSRD_typ

OC is SODLSSRD_typ;
TYPE QDELSSRD_typ IS RECORD (
    ENAMN                arbetssokande.efternamn%type, -- VARCHAR2(30 CHAR)
    FNAMN                arbetssokande.fornamn%type, -- VARCHAR2(20 CHAR)
);

COBOL ESQL 匿名 PL/SQL block 的片段:

FOR LV IN 1..:RC-ZHITS
LOOP
    :QDELSSRD(LV) :=  OC.QDELSSRD(LV);
 END LOOP;

COBOL 变量声明:

     15     QSODLSSRD.
            18     QDELSSRD                      OCCURS 30.
                   21     ENAMN                         PIC X(030).
                   21     FNAMN                         PIC X(020).

最佳答案

我认为你需要使用 VARYING...例如:

18     QDELSSRD                      VARYING OCCURS 20 TIMES. 
 21     ENAMN                         PIC X(030).    
 21     FNAMN                         PIC X(020). 

http://www.pitt.edu/~hoffman/oradoc/server.804/a58232/ch04.htm

关于oracle - 将记录从 Oracle 数组移动到 Cobol,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8209408/

相关文章:

sql - 在 postgresql 中插入错误的顺序(使用 pro c)

sql - 如何在sql中引用一对属性?

oracle - Oracle 最好的 IDE 是什么?

if-statement - Cobol - 检查 IF 子句中的余数

antlr - 将 COBOL AST 转换为 Java 源文件

sql - 有谁知道为什么我的立即执行不能在 PRO*C 中编译?

c# - 如何确定连接的数据库是否区分大小写

sql - 内连接和等连接一样吗?

java - 从 Cobol 移植到 Java

c - 尝试在 Linux 中编译 Pro*C 程序时出错