http://qs321.pair.com?node_id=388138


in reply to Accessing flat files on the mainframe

My question is how do I access these flat files using a perl script to run these queries?

Depends on the file, but one common approach is:

open FILE, '<', $filename; while (<FILE>) { # ... do something here ... }
Can I use DBD and DBI to hit these flat files using the access I have available?

Possibly. It's tough to give any specific help without knowing what your queries look like, and what the files look like. If you were to post samples both, the value of the responses here will increase substantially.


_______________
DamnDirtyApe
Those who know that they are profound strive for clarity. Those who
would like to seem profound to the crowd strive for obscurity.
            --Friedrich Nietzsche

Replies are listed 'Best First'.
Re^2: Accessing flat files on the mainframe
by Fuism (Beadle) on Sep 02, 2004 at 23:02 UTC
    OK guys, heres the information. Some of the data is packed so it doesnt look like a CSV file or anything like that. Supposely some of the packed information are read vertically rather than horizontally. An example of what the file looks like :
      WHEEEE!

      If you have a SAS proc to access your data, then change the Proc Print statements to put the packed-decimal fields out in zoned-decimal (printable character) format. That solves one of your biggest issues right off the top -- If you have a MainFrame format problem, use MainFrame re-formatting tools before you grab the file. Now use your favorite FTP to get the file over from the Big Iron World into the small iron world.

      Procede to read the resultant file as the normal string-of-characters that Unix expects. You will have to use substr or something simular to break up the string into records (unless you remembered to have the SAS code write the new lines for you...) and then attack each record with substr and crow-bar to get the fields pulled out of the record correctly.

      Wheee what fun. (And don't even think about trying to create a MainFrame readable record on your Unix system. Send SAS a flat file and have it rebuild the pack-decimal for you.)

      (Personally, I do the whole problem over on the MF using PL/1. But.)

      ----
      I Go Back to Sleep, Now.

      OGB