【问题标题】:Convert Cobol to Sql query将 Cobol 转换为 Sql 查询
【发布时间】:2012-04-25 22:03:14
【问题描述】:

我从客户端收到了一个 cobol 查询,我必须将其转换为 sql。我是cobol的新手,我无法理解整个事情。非常感谢任何帮助。代码如下。

!JOB ARSRCHAA,RPT/*.IVL;OUTCLASS=LP,1
!COMMENT  {PRNT$PRINTER      ?$}
!COMMENT  {PRI $PRIORITY     ?$}
!COMMENT  {CD1 $DATE         ?$}
!COMMENT  {CD2 $AMOUNT1      ?$}
!COMMENT  {CD3 $EXCLUDE      ?$}
!FILE QSLIST=ARSRCHAA;DEV={PRNT},{PRI}
!AQ
ENTER=GENLED2,FP,FP
S=ARAP-TRN

VVF VND-NO NE {CD3} AND TPE-SHP NE VX

F CONN ARAP-TRN.VND-NO TO ARAP-TOT.VND-NO; &
ARAP-TRN.VND-NO NE 0867,0249,3163,3193,3077,3263,5402,{CD3} &
AND ARAP-TRN.TPE-SHP NE VX &
REQ ARAP-TOT.VND-NO=ARAP-TRN.VND-NO

LP

R;H1,DATE,74;H2,TIME,74;H1,PAGENO,79;H1,"ARSRCHAA",8
H1,"NON-CLAIM AR'S BEFORE {CD1} ",50
H2,"FOR AMOUNTS GREATER THAN ${CD2}",50
H3,"Excludes-0867,0249,3163,3193,3077,3263,5402,{CD3}",55
H4,"ACCT     NAME         REG#     DESCRIP",38
H4,"LAST-DT   TRN#       NET  *COLL",79
H5,"*=On hold",13;H5,"c=Claim",62;H5,"Cr Bal=+",76
E1,"ZZ-ZZ-ZZ";E2,"ZZZ,ZZZ.99-";E3,"ZZZZ,ZZZ.99-"
E4,"XXXXXXXXXXXXXXXX";E5,"ZZZZZZZZ";E6,"XXXXXXXXXXXXXXX"
S,!DBTRAN(VNDR:DATE-INFO.IVL-DATE=TRN-DT, &
VNDR:DATE-INFO.REAL-DATE)
S1,REG-NO;S2,VND-NO
S3,!DBTRAN(VNDR:VENDOR.VND-NO=VND-NO,VNDR:VENDOR.DBA-NM)
R1,L,!DBTRAN(VNDR:DATE-INFO.IVL-DATE=TRN-DT, &
VNDR:DATE-INFO.REAL-DATE)
R3,L,{CD1}
R4,A,AMT
R5,L,1,IF !DBTRAN(REMARK:REG-COLLECT.REG-NO=REG-NO,REMARK:&
REG-COLLECT.STAT-CD) EQ OP
R6,L,1,IF NET-AMT LT 0
R7,L,1,IF &
!DBTRAN(ACTRN:TRN-INFO.TRN-NO=TRN-NO,ACTRN:TRN-INFO.TPE-CD)=CI,CC
R9,L,0
R9,L,1,IF R1 LE R3 AND R4 GT {CD2}00
R9,L,0,IF &
!DBTRAN(VNDR:VENDOR.VND-NO=VND-NO,VNDR:VENDOR.POINT-LOC)=ME,MF
R9,L,0,IF R7=1
R9,L,0,IF !DBTRAN(REMARK:REG-COLLECT.REG-NO=REG-NO,REMARK:&
REG-COLLECT.STAT-CD) EQ OP
T1,VND-NO,4,PIF R9=1
T1,"*",5,PIF R9=1 AND ARAP-TOT.A-STAT=HH
T1,!DBTRAN(VNDR:VENDOR.VND-NO=VND-NO,VNDR:VENDOR.DBA-NM),20,&
E6,PIF R9=1
T1,REG-NO,28,E5,PIF R9=1
T1,DESCRP,45,E4,PIF R9=1
T1,TRN-DT,55,E1,PIF R9=1
T1,TRN-NO,64,PIF R9=1
T1,"c",56,PIF R9=1 AND R7=1
T1,R4,75,E2,PIF R9=1
T1,"*",75,PIF R9=1 AND R5=1
T1,"+",76,PIF R9=1 AND R6=1
T1,REG-NO,78,COUNT,PIF R9=1
T1,R1
T1,R4
T1,R5
T1,R6
T1,R7
TF,"******** END OF REPORT ********",55
END

EXIT
!EOJ

我只需要把这个cobol查询转换成sql查询。这里ARAP-TRN是主表,vendor-no等类似的东西是对应表的列字段比如说,这里的表是vendor

【问题讨论】:

  • 这不是 COBOL。看起来更像是某种汇编语言或宏工具。
  • 这不是 Cobol。这是某种类型的报告作者。我正在尝试找出哪个报告作者。
  • 哦..是吗..我不知道。我正在尝试找到将其转换为 sql.. 的解决方案
  • 我能确定的最好的结果是这是在 Gould/Systems Engineering Laboratories 小型计算机上运行的。
  • !JOB ARSRCHAA,RPT/*.IVL;OUTCLASS=LP,1 是作业控制语言。据我所知,SEL 是唯一使用的公司!作为作业控制语言标识符。

标签: sql cobol


【解决方案1】:

我不熟悉这位报告作者,但这是我的最佳猜测。

有3张桌子; VNDR、REMARK 和 ACTRN。

VNDR 有这些列; VND-NO、DBA-NM、IVL-DATE、REAL-DATE、POINT-LOC

REMARK 有这些列; REG-NO, STAT-CD

ACTRN 有这些列; TRN-NO, TPE-CD

ARAP-TRN 是一个包含 VND-NO 的事务文件,它是 VNDR 的关键。它还包含字段 REG-NO、DESCRP、TRN-DT 和 TRN-NO。 REG-NO 是 REMARK 的关键。 TRN-NO 是 ACTRN 的关键。

ARAP-TOT 是一个完整的文件。我假设它是在此报告之外创建的。

我猜,TPE-SHP 是 ARAP-TRN 或 ACTRN 的另一列。

如果有人知道这是什么报告作者,请写下您的答案作为对我答案的评论。我很想知道。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-14
    • 2015-10-10
    • 2015-05-08
    • 1970-01-01
    • 1970-01-01
    • 2017-04-25
    • 2017-04-07
    相关资源
    最近更新 更多