Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!rutgers!ucsd!ucsdhub!hp-sdd!ncr-sd!ncrlnk!uunet!mcvax!hp4nl!philmds!leo From: leo@philmds.UUCP (Leo de Wit) Newsgroups: comp.databases Subject: Re: Information on ORACLE Message-ID: <949@philmds.UUCP> Date: 12 Feb 89 08:26:56 GMT References: <503@astbe.UUCP> Reply-To: leo@philmds.UUCP (Leo de Wit) Organization: Philips I&E DTS Eindhoven Lines: 45 In article <503@astbe.UUCP> ber@astbe.UUCP (H.Bernau) writes: [] |There are: SQL*Forms, a window oriented designer tool for forms apllications | SQL*Menu, a window oriented designer tool for menu apllications | SQL*Report, a window oriented designer tool for reports | SQL*Calc, a spreadsheet tool similar to LOTUS123 |Views are created using SQL ! |There is no possibility to define (logical) relationships between tables or to |define constraints in version 5. I don't know the enhancements of V6. Sorry to contradict you, but it is perfectly possible to define constraints in version 5. It is only a matter of knowing how: Suppose I have a table 'oddtab', with a number field 'num' that should only contain odd numbers, a char field 'verystring' that should contain 'VERY' as a substring, and a char field 'alias' that contains only strings that also appear in the 'alias' char field of another table, called 'choices'. This can be set up the following way (modulo possible syntax errors, which I hope you'll forgive me): create table oddtab ( num number, verystring char(32), alias char(32)); create view oddview as select num, verystring, alias from oddtab where mod(num,2) = 1 and verystring like '%VERY%' and alias in ( select alias from choices) with check option; Accessing oddtab via oddview guarantees the restrictions that you wanted to impose. You can even enforce this more strongly by having oddtab and oddview owned by a separate user (something like sys), and granting select,insert etc. on oddview to the user that is going to work on the table. In this case you'll have to create some synonyms as well. Although this approach may have it's limitations (f.i.: you cannot create an updatable view on a join), it may very well suffice in most cases. Version 6 (or is it version 7?) will offer more in this respect. Leo.