【发布时间】:2018-07-19 18:37:01
【问题描述】:
目前我们正致力于将 COBOL 代码迁移到 oracle PL/SQL。在 COBOL 中有一个记录/组级别的变量概念,例如。
01 PARENT-VAR.
05 CHILD-1 PIC 9(2) VALUE 12.
05 CHILD-2 PIC 9(3) VALUE 345.
基本上这意味着,我们可以访问单个变量CHILD-1 或CHILD-2。此外,如果我们访问PARENT-VAR,我们将得到两个子变量的值自动连接为:12345。
如果我们尝试在 PL/SQL 中实现相同的概念,我们可以使用 IS RECORD 作为:
TYPE TYP_PARENT_VAR IS RECORD
( CHILD-1 NUMBER(2) := 12,
CHILD-2 NUMBER(3) := 345);
VAR TYP_PARENT_VAR;
现在我可以使用VAR.CHILD-1 或VAR.CHILD-2 访问各个子变量。但是如果我必须同时访问这两个变量,我认为没有手动连接就没有办法。
我们如何访问父项和子项?
【问题讨论】:
-
我不确定您所说的“同时访问两个变量”是什么意思。在什么意义上你不能访问它们?
-
如果我对您的理解正确,您是说 COBOL 将两个数字连接起来,就好像它们是文本一样?这很奇怪。你有一些我们可以看到的示例代码吗?这可以用对象来实现,但不会自动完成。
-
因为 COBOL != PLSQL。这些编程规则不适用,您必须忘记那些旧的代码行为方式。告诉我们你最终想要做什么,而不是问如何处理这样的变量。
-
@WilliamRobertson,正如我在上面的例子中提到的,我无法显示(或使用)变量 VAR。我必须访问 VAR.CHILD_1 或 VAR.CHILD_2。我不能直接访问 VAR(应该给出 VAR.CHILD_1 和 VAR.CHILD_2 的值)。
-
@BrianLeach,以下是相同的示例:识别部门。程序 ID。你好世界。数据部门。工作存储部分。 01 家长-VAR。 05 CHILD-1 PIC 9(2) 价值 12. 05 CHILD-2 PIC 9(3) 价值 345. 程序部分。显示'父-VAR ='父-VAR。停止运行。输出为:PARENT-VAR=12345