Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
Discussion Groups
Database Servers
DB2InformixIngresMS SQLOraclePervasive.SQLPostgreSQLProgressSybase
Desktop Databases
FileMakerFoxProMS AccessParadox
General
General DB TopicsDatabase Theory
Related Topics
Java Development.NET DevelopmentVB DevelopmentMore Topics ...

Database Forum / Oracle / Oracle Server / January 2006

Tip: Looking for answers? Try searching our database.

Lack of support for logical variables

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Michael Cello - 28 Jan 2006 10:32 GMT
Hi,

While in the process of migrating a Progress database to Oracle 8 database,
I noticed that Oracle does not support logical variables and array data
structure. It does not seem to be right. So please let me know if I am right
in my findings or I am missing something.

Your help is the most appreciated.

Mike
Sybrand Bakker - 28 Jan 2006 11:06 GMT
>Hi,
>
[quoted text clipped - 6 lines]
>
>Mike

First of all: You shouldn't migrate to a desupported version of
Oracle: both Oracle 8.0 and Oracle 8.1 aka 8i have been desupported
prior to 2005.
Secondly: the term 'logical variables' is ambiguous in the context of
an RDBMS. Do you plan to use O/S logical variables in your database?
Thirdly: Oracle has nested tables and a concept called VARRAY.

--
Sybrand Bakker, Senior Oracle DBA
Michael Cello - 29 Jan 2006 04:16 GMT
>>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
DA Morgan - 29 Jan 2006 19:10 GMT
> Hi,
>
[quoted text clipped - 6 lines]
>
> Mike

In agreement with Sybrand migrating to obsolete software is just plain
brain-dead.

Oracle has Boolean variables ... it does not have Boolean storage and
neither does any other database. They all just take TRUE/FALSE and
translate them into some combination of +1, 0, -1: Do the same using
DECODE.

Oracle does support arrays but not in such antique software and you've
not provided sufficient information from which to help you ... not even
what you mean by Oracle 8? (8.0.3, 8.0.4, 8.0.5, 8.0.6, 8.1.5, 8.1.6,
8.1.7)?
Signature

Daniel A. Morgan
http://www.psoug.org
damorgan@x.washington.edu
(replace x with u to respond)

 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2010 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.