>>Hi,
>>
[quoted text clipped - 18 lines]
> --
> Sybrand Bakker, Senior Oracle DBA
Thank you for your response. By logical variable, I mean a field with 'true'
and 'false' contents. Our existing programs use logical variables and my
efforts are to translate these programs to be used with Oracle without
having to re-write the whole system due to the bulk volume of programs.
Please advise.
Sybrand Bakker - 29 Jan 2006 05:59 GMT
>Thank you for your response. By logical variable, I mean a field with 'true'
>and 'false' contents. Our existing programs use logical variables and my
>efforts are to translate these programs to be used with Oracle without
>having to re-write the whole system due to the bulk volume of programs.
>Please advise.
They don't exist in SQL, but do exist in PL/SQL.
The convention is to use VARCHAR2(1) columns which are either 'Y' or
'N'.
--
Sybrand Bakker, Senior Oracle DBA
tarbster@yahoo.com - 31 Jan 2006 11:14 GMT
Hi Michael,
I don't understand why you're asking these questions. If you're
migrating a Progress application to Oracle then you use Progress's
Oracle Dataserver utilities to produce an Oracle schema and a schema
holder database from your Progress schema. The fact that Oracle doesn't
have logical variables and arrays (in the sense that you and I, as
Progress people, understand them) isn't an issue. The Dataserver will
take a Progress array named mycol[10] and it will create individual
columns named mycol##1, mycol##2 etc in the Oracle DB. Likewise, your
logical columns will be migrated to number columns where your logical
values are stored as 0s and 1s.
The whole idea of Progress's Oracle Dataserver is that it allows
Progress 4GL code to run against an Oracle database with little or no
modification. The Dataserver handles the differences between Progress
datatypes and Oracle datatypes; you don't have to stop using arrays and
logical variables just because Oracle implements them differently than
Progress. The theory is that your code will compile and run without
modification... but it's just a theory. From my experience, the biggest
issues you will face in the migration are:
1) Data that is longer than its display format. In Progress, you can
store 400 chars of data in an x(8) column because x(8) is only a
display mask. Not so in Oracle: 8 really means 8 and it won't let you
store anything longer in that column if that's what you've defined.
2) Transaction behaviour. When a Progress 4GL program creates a record,
it can "see" that record straight away. Not so when you run a Progress
program on Oracle; you'll have to whizz round your whole application,
adding VALIDATE statements after all your key columns have been
assigned, to force a database write.
There are others, and they're all well documented. Good luck!
Cheers,
Tarby