1 Datatypes This table summarizes the characteristics of the Oracle Rdb data types. Table 1 : Oracle Rdb Data Types Oracle Rdb Corresponding Size Range Other Data Type CPU Data Type Precision Parameters SIGNED Signed byte 8 bits -128 to n = scale BYTE integer 127 factor SIGNED Signed word 16 bits -32768 to n = scale WORD integer 32767 factor SIGNED Signed 32 bits -2**31 to n = scale LONGWORD longword (2**31)-1 factor integer SIGNED Signed 64 bits -2**63 to n = scale QUADWORD quadword (2**63)-1 factor integer) F_FLOATING F_floating 32 bits 0.29 x 10**(-38) None Single to 1.7 x 10**38 precision Approximately floating seven decimal point number digits G_FLOATING G_floating 64 bits 0.56 x 10**(-308) None Extended to 0.9 x 10**308 precision Approximately floating 15 decimal point number digits DATE Absolute date 64 bits Not None and time applicable TEXT ASCII text n bytes 0 to 32767 n = number of characters characters (unsigned integer) VARYING Varying Varies 0 to 32765 n = maximum STRING length ASCII characters number of text characters (unsigned integer) SEGMENTED None Varies 0 to 64k None STRING bytes per segment Note: For more information on SEGMENTED STRINGS, request HELP on Segment_str. 2 More When defining fields using the F_FLOATING data type and subsequently comparing a literal value (for example, 99.999) in a query with the field values, you must specify the literal value in scientific notation (for example, 99.999E0) for the query to work. In this way, Oracle Rdb can compare the F_FLOATING literal value in the query with the F_FLOATING values for the field for each record. This is a clarification of information described in the RDO documentation. For example, if you try to compare field values defined as F_ FLOATING data type with the literal 99.999, Oracle Rdb interprets the literal 99.999 as a LONGWORD scale -3, and converts both the literal and the F_FLOATING field values to G_FLOATING values for the comparison. This is required because the precision of an F_ FLOATING data type is insufficient for all LONGWORD values. The problem arises in the conversion from F_FLOATING to G_FLOATING data type values. Because the precision of the F_FLOATING data type is smaller than that of the G_FLOATING data type, the rules for the conversion do not assure that an F_FLOATING data type value of 99.999 and a LONGWORD data type value of 99.999 will be the same when both are converted to G_FLOATING data type values. If you do a comparison with the literal 99.999E0, Oracle Rdb interprets this value as an F_FLOATING data type value and the comparison works as expected. The following query returns the desired result when the field COUPON is defined as an F_FLOATING data type. FOR A IN SECURITY WITH A.COUPON = 99.999E0 PRINT A.ID END_FOR