The Oracle-specific section of the Native SQL documentation deals with combinations of ABAP data types and column types of an Oracle table. It describes in detail the type conversions used for each type combination. The abbreviations introduced in the general description, such as [rtrunc] are used.
The list is divided roughly into the two data transfer directions:
Each description assumes that the starting value is a permitted value for the corresponding type. It does not take account of cases where invalid bit patterns are created in an ABAP field due, for example, to field symbol operations.
The following index supports direct entry using the type of the starting value.
This description is valid for Oracle 8.0.4 and R/3 Release 4.5A.
Insert / ABAP Data Type:
Select / Database Column Type
(A) The following applies to the database column type number(x,y), including the case y < 0:
ABAP Data Type: Character C(n)
Data value width: String length without trailing spaces
Database column type |
Case (notes) |
Result |
varchar2 (z) |
ABAP data value width > 4000 |
1461 |
ABAP field width (n) > database column width (z) ABAP data value width > database column width ABAP data value width <= database column width |
1401 OK | |
ABAP field width (n) <= database column width (z) |
OK | |
char (z) |
ABAP data value width > 4000 |
1461 |
ABAP field width (n) > database column width (z) ABAP data value width > database column width ABAP data value width >= database column width |
1401 OK | |
ABAP field width (n) <= database column width (z) |
OK | |
long |
|
OK |
number (z) |
ABAP data value is non-numeric |
1722 |
Loss of figures before decimal point in conversion |
1438 | |
ABAP data value contains decimal places |
[ round] | |
ABAP data value width <= database column width (z) |
ok / [ round] | |
number (z,y) |
ABAP data value is non-numeric |
1722 |
Loss of significant figures (see (A)). |
1438 | |
Loss of non-significant figures (see (A)). |
[ round] | |
ABAP data value width <= database column width (z) |
ok / [ round] | |
float |
ABAP data value is non-numeric |
1722 |
ABAP data value not in interval ] -10126, 10 126 |
1426 | |
ABAP data value in interval ] -10-130, 10
-130 [
|
[ 0] | |
ABAP data value in interval ] -10126, 10
126 [
|
ok / [ 0] / [round] | |
date (9) |
ABAP data value has an invalid database date format |
1861 |
ABAP date value has a valid database date format [ 10-Jan-97 ] |
OK | |
raw (z) |
ABAP data value width > 4000 |
1461 |
The ABAP data value has an invalid hexadecimal format |
1465 | |
ABAP field width (n) > database column width (n>2z) ABAP data value width > database column width ABAP data value width <= database column width |
1401 OK | |
ABAP data value width (n) <= database column width (n<=2z) |
OK | |
long raw |
ABAP data value width > 4000 |
1461 |
The ABAP data value has an invalid hexadecimal format |
1465 | |
ABAP data value width <= 4000 |
OK |
ABAP Data Type: Numeric Text N(n)
Data value width: Number of digits without leading zeros
Database column type |
Case (notes) |
Result |
varchar2 (z) |
Data value width > 4000 |
1461 |
ABAP field width (n) > database column width (z) |
1401 | |
ABAP field width (n) <= database column width (z) |
OK | |
char (z) |
Data value width > 4000 |
1461 |
ABAP field width (n) > database column width (z) |
1401 | |
ABAP field width (n) <= database column width (z) |
OK | |
long |
|
OK |
number (z) |
ABAP field width (n) > database column width (z) ABAP data value width > database column width ABAP data value width <= database column width |
1438 ok / [ltrunc] |
ABAP field width (n) = database column width (z) ABAP data value width <= database column width |
ok / [ltrunc] | |
ABAP field width (n) < database column width (z) |
OK | |
number (x,y) |
Loss of significant figures (see (A)). |
1438 |
ABAP data value width <= database column width (z) |
ok / [ ltrunc] | |
float |
ABAP data value >= 10126 |
1426 |
ABAP data value < 10126 [
|
ok / [ round] | |
date |
|
1861 |
raw (z) |
ABAP field width (n) > database column width (n>2z) |
1401 |
ABAP data value width (n) <= database column width (n<=2z) |
OK | |
long raw |
Data value width > 4000 |
1461 |
Data value width <= 4000 |
OK |
ABAP Data Type: Packed Number P(m,d)
m= bytes, d = decimal places
Data value width (n): Number of digits without leading zeros, n<=2m-1; n is increased by one for each of decimal point and minus sign.
Database column type |
Case (notes) |
Result |
varchar2 (z) |
ABAP data value width (n) < database column width (z) |
1401 |
ABAP data value width (n) <= database column width (z) |
OK | |
char (z) |
ABAP data value width (n) < database column width (z) |
1401 |
ABAP data value width (n) <= database column width (z) |
OK | |
long |
|
OK |
number (z) |
Loss of figures before decimal point in conversion |
1438 |
ABAP data value contains decimal places |
[ round] | |
ABAP data value width (n) <= database column width (z) |
ok / [ round] | |
number (x,y) |
Loss of significant figures (see (A)). |
1438 |
Loss of non-significant figures (see (A)). |
[ round] | |
ABAP data value width <= database column width (z) |
ok / [ round] | |
float |
|
OK |
date |
|
932 |
raw |
|
932 |
long raw |
|
932 |
Data value width: Number of digits without leading zeros; data value width is increased by one if there is a minus sign.
Database column type |
Case (notes) |
Result |
varchar2 (z) |
ABAP data value width > database column width (z) |
1401 |
ABAP data value width <= database column width (z) |
OK | |
char (z) |
ABAP data value width > database column width (z) |
1401 |
ABAP data value width <= database column width (z) |
OK | |
long |
|
OK |
number (z) |
ABAP data value width > database column width (z) |
1438 |
ABAP data value width <= database column width (z) |
OK | |
number (x,y) |
Loss of significant figures (see (A)). |
1438 |
Loss of non-significant figures (see (A)). |
[ round] | |
ABAP data value width <= database column width (z) |
ok / [ round] | |
float |
|
OK |
date |
|
932 |
raw |
|
932 |
long raw |
|
932 |
Inaccuracies can occur with any conversions involving floating point numbers.
Data value width: Number of digits without leading zeros; data value width is increased by one for each of decimal point and minus sign.
Database column type |
Case (notes) |
Result |
varchar2 (z) |
ABAP data value width > database column width (z) |
1401 |
ABAP data value width <= database column width (z) |
OK | |
char (z) |
ABAP data value width > database column width (z) |
1401 |
ABAP data value width <= database column width (z) |
OK | |
long |
|
OK |
number (z) |
ABAP data value width > database column width (z) |
1438 |
ABAP data value contains decimal places |
[ round] | |
ABAP data value width <= database column width (z) |
ok / [ round] | |
number (x,y) |
Loss of significant figures (see (A)). |
1438 |
Loss of non-significant figures (see (A)). |
[ round] | |
ABAP data value width <= database column width (z) |
ok / [ round] | |
float |
ABAP data value not in interval ] -10126, 10 126 |
1426 |
ABAP data value in interval ] -10-130, 10
-130 [
|
[ 0] | |
ABAP data value not in interval ] -10126, 10 126 [ |
ok / [ 0] | |
date |
|
932 |
raw |
|
932 |
long raw |
|
932 |
Data value width = 8 (fixed)
Database column type |
Case (notes) |
Result |
varchar2 (z) |
ABAP data value width (8) > database column width (z) |
1401 |
ABAP data value width (8) <= database column width (z) |
OK | |
char (z) |
ABAP data value width (8) > database column width (z) |
1401 |
ABAP data value width (8) <= database column width (z) |
OK | |
long |
|
OK |
number (z) |
ABAP data value is non-numeric |
1722 |
ABAP data value width (8) > database column width (z) |
1438 | |
ABAP data value width (8) <= database column width (z) |
OK | |
number (x,y) |
ABAP data value is non-numeric |
1722 |
ABAP data value width (8) > database column width (z) |
1438 | |
ABAP data value width (8) <= database column width (z) |
OK | |
float |
ABAP data value is non-numeric |
1722 |
ABAP data value is numeric |
OK | |
date |
|
1861 |
raw (z) |
The ABAP data value has an invalid hexadecimal format |
1465 |
ABAP data value width (8) > database column width (4>z) |
1401 | |
ABAP data value width (8) <= database column width (4<=z) |
OK | |
long raw |
The ABAP data value has an invalid hexadecimal format |
1465 |
ABAP data value has a valid hexadecimal format |
OK |
Data value width = 6 (fixed)
Database column type |
Case (notes) |
Result |
varchar2 (z) |
ABAP data value width (6) > database column width (z) |
1401 |
ABAP data value width (6) <= database column width (z) |
OK | |
char (z) |
ABAP data value width (6) > database column width (z) |
1401 |
ABAP data value width (6) <= database column width (z) |
OK | |
long |
|
OK |
number (z) |
ABAP data value is non-numeric |
1722 |
ABAP data value width (6) > database column width (z) |
1438 | |
ABAP data value width (6) <= database column width (z) |
OK | |
number (x,y) |
ABAP data value is non-numeric |
1722 |
ABAP data value width (6) > database column width (z) |
1438 | |
ABAP data value width (6) <= database column width (z) |
OK | |
float |
ABAP data value is non-numeric |
1722 |
ABAP data value is numeric |
OK | |
date |
|
1861 |
raw (z) |
The ABAP data value has an invalid database raw format |
1465 |
ABAP data value width (6) > database column width (3>z) |
1401 | |
ABAP data value width (6) <= database column width (3<=z) |
OK | |
long raw |
The ABAP data value has an invalid database raw format |
1465 |
ABAP data value has a valid hexadecimal format |
OK |
ABAP Data Type: Hexadecimal X(n)
Data value width: Number of hexadecimal digits without trailing zeros
Database column type |
Case (notes) |
Result |
varchar2 (z) |
n > 4000 |
1461 |
ABAP field width (2n) > database column width (z), (2n > z) |
1401 | |
ABAP field width 2n = 8000, database column width = 4000 |
[ rtrunc ½] | |
ABAP field width (2n) <= database column width (z), (2n <= z) |
OK | |
char (z) |
ABAP field width (2n) > database column width (z), (2n > z) |
1401 |
ABAP field width (2n) <= database column width (z), (2n <= z) |
OK | |
long |
n > 4000 |
1461 |
n <= 4000 |
[ rtrunc ½] | |
number (z) |
|
932 |
number (z,y) |
|
932 |
float |
|
932 |
date |
|
932 |
raw (z) |
n > 4000 |
1461 |
ABAP field width (n) > database column width (z), (n>z) |
1401 | |
ABAP field width (n)<= database column width (z), (n<=z) |
OK | |
long raw |
n > 4000 |
[ rtrunc] |
n < 4000 |
OK |
(B) ABAP data types: Date, Time
Converting a database value into an ABAP date or time field is like converting it into an ABAP character field with length 8 or 6 respectively. It is technically possible to convert an invalid format, but this returns an ABAP field value with an invalid format, which you cannot usefully use. Conversions of this kind are indicated in the table with [ok].
Conversion of database data values to
(C) ABAP data type: Numeric text
Conversions into the ABAP type numeric text N(n) behave like conversions into an ABAP character field C(n), that is, the field contents are left-justified and filled with trailing spaces.
This is contrary to the numeric text definition, according to which a numeric text field may only contain digits, and is filled with leading zeros. The numeric text field may contain a string with an invalid numeric text format following the conversion. Conversions of this kind are indicated in the table with [ok].
(D) ABAP data type: Hexadecimal
If the data value width is less than the field width, a result string is transferred (if the data value contains an odd number of characters, a leading zero is added). The rest of the field length is not filled with trailing zeros, but with undefined values.
Database column type: varchar2 (z)
Data value width: String length (trailing spaces are not saved)
ABAP Data Type |
Case (notes) |
Result |
Character C(n) |
Database column width (z) > ABAP field width (n) Database data value width > ABAP field width Database data value width <= ABAP field width |
[rtrunc] OK |
Database column width (z) <= ABAP field width (n) |
OK | |
Numeric text N(n), (see (C)) |
[ Conversion as for character fields |
[ ok] |
Packed |
Database data value is non-numeric |
1722 |
Loss of figures before decimal point in conversion |
[ null] | |
Loss of decimal places in conversion |
[ rtrunc] | |
Database data value width <= ABAP field width (n-d) |
ok / [ rtrunc] | |
Integer I |
Database data value is non-numeric |
1722 |
ABAP data value not in interval ] -231, 2 31 [ |
1455 | |
Database data value contains decimal places |
[ rtrunc] | |
Database data value in interval ] -231, 231 [ |
ok / [ rtrunc] | |
Float F |
Database data value is non-numeric |
1722 |
Database data value >= 10126
|
[ undef] | |
Database data value <= -10126
|
[ undef] | |
Database data value in interval ] -10-130, 10
-130 [
|
[ 0] | |
Truncation in conversion |
[ round] | |
Database data value in interval ] -10126, 10
126 [
|
ok / [ 0] / [round] | |
Date D(8) |
Database column width (z) > ABAP field width (8) Database data value width > ABAP field width Database data value width <= ABAP field width |
[rtrunc] [ok] |
Database column width (z) <= ABAP field width (8) |
[ ok] | |
Time T(6) |
Database column width (z) > ABAP field width (6) Database data value width > ABAP field width Database data value width <= ABAP field width |
[rtrunc] [ok] |
Database column width (z) <= ABAP field width (6) |
[ ok] | |
Hexadecimal X(n) (see (D)) |
The database data value has an invalid hexadecimal format |
1465 |
Database data value width (x) > ABAP field width, (x <= z, x > 2n) Database data value width (x) = ABAP field width, (x <= z, x = 2n) Database data value width (x) < ABAP field width, (x <= z, x < 2n) |
[ rtrunc] OK [undef] |
Data value width: String length (trailing spaces are not saved)
ABAP Data Type |
Case (notes) |
Result |
Character C(n) |
Database column width (z) > ABAP field width (n) Database data value width > ABAP field width Database data value width <= ABAP field width |
[rtrunc] OK |
Database column width (z) <= ABAP field width (n) |
OK | |
Numeric text N(n), (see (C)) |
[ Conversion as for character fields |
[ ok] |
Packed |
Database data value is non-numeric |
1722 |
Loss of figures before decimal point in conversion |
[null] | |
Loss of decimal places in conversion |
[ rtrunc] | |
Database data value width <= ABAP field width (n-d) |
ok / [ rtrunc] | |
Integer I |
Database data value is non-numeric |
1722 |
ABAP data value not in interval ] -231, 2 31 [ |
1455 | |
Database data value contains decimal places |
[ rtrunc] | |
Database data value in interval ] -231, 231 [ |
ok / [ rtrunc] | |
Float F |
Database data value is non-numeric |
1722 |
Database data value >= 10126
|
[ undef] | |
Database data value <= -10126
|
[ undef] | |
Database data value in interval ] -10-130, 10
-130 [
|
[ 0] | |
Truncation in conversion |
[ round] | |
Database data value in interval ] -10126, 10
126 [
|
ok / [ 0] / [round] | |
Date D(8) |
Database column width (z) > ABAP field width (8) Database data value width > ABAP field width Database data value width <= ABAP field width |
[rtrunc] [ok] |
Database column width (z) <= ABAP field width (8) |
[ ok] | |
Time T(6) |
Database column width (z) > ABAP field width (6) Database data value width > ABAP field width Database data value width <= ABAP field width |
[rtrunc] [ok] |
Database column width (z) <= ABAP field width (6) |
[ ok] | |
Hexadecimal X(n) (see (D)) |
The database data value has an invalid hexadecimal format |
1465 |
Database column width (z) > ABAP field width (n), (z>2n) Database data value width (x) > ABAP field width, (x <= z, x > 2n) Database data value width (x) <= ABAP field width, (x <= z, x <= 2n) |
[rtrunc] 1465 | |
Database column width (z) = ABAP field width(n), (z=2n) Database data value width (x) = ABAP field width, (x <= z, x = 2n) Database data value width (x) < ABAP field width, (x <= z, x < 2n) |
OK 1465 | |
Database column width (z) < ABAP field width (n), (z <= 2n) |
[ undef] |
Data value width: String length (trailing spaces are not saved)
ABAP Data Type |
Case (notes) |
Result |
Character C(n) |
Database data value width > ABAP field width |
[ rtrunc] |
Database data value width <= ABAP field width |
OK | |
Numeric text N(n), (see (C)) |
[ Conversion as for character fields |
[ ok] |
Packed |
Data value is non-numeric |
1722 |
Loss of digits before the decimal point |
[ null] | |
Loss of digits after the decimal point |
[ rtrunc] | |
Database data value width <= database column width (z) |
ok / [ rtrunc] | |
Integer I |
|
[ undef] |
Float F |
|
[ undef] |
Date D(8) |
Database data value width > ABAP field width (8) |
[ rtrunc] |
Database data value width <= ABAP field width (8) |
[ ok] | |
Time T(6) |
Database data value width > ABAP field width (6) |
[ rtrunc] |
Database data value width <= ABAP field width (6) |
[ ok] | |
Hexadecimal X(n) (see (D)) |
|
[ undef] |
Database Column Type: number (z)
Data value width: Number of digits without leading zeros; data value width is increased by one if there is a minus sign.
ABAP Data Type |
Case (notes) |
Result |
Character C(n) |
Database data value width > ABAP field width (n) |
[ rtrunc] |
Database data value width <= ABAP field width (n) |
OK | |
Numeric text N(n), (see (C)) |
[ Conversion as for character fields |
[ ok] |
Packed |
Loss of figures before decimal point in conversion |
[ null] |
Database data value width <= ABAP field width (n-d) |
ok | |
Integer I |
Database data value not in interval ] -231, 2 31 [ |
1455 |
Database data value in interval ] -231, 231 [ |
OK | |
Float F |
Truncation in conversion |
[ round] |
Database data value Î ] -10
126, 10
126 [
|
ok / [ round] | |
Date D(8) |
Database column width (z) > ABAP field width (8) Database data value width > ABAP field width Database data value width <= ABAP field width |
[rtrunc] [ok] |
Database column width (z) <= ABAP field width (8) |
[ ok] | |
Time T(6) |
Database column width (z) > ABAP field width (6) Database data value width > ABAP field width Database data value width <= ABAP field width |
[rtrunc] [ok] |
Database column width (z) <= ABAP field width (6) |
[ ok] | |
Hexadecimal X(n) (see (D)) |
|
932 |
Database Column Type: number (z,y)
Data value width: Number of digits (z) without leading zeros; Data value width is increased by one for decimal point or minus sign or both.
ABAP Data Type |
Case (notes) |
Result |
Character C(n) |
Database data value width > ABAP field width (n) |
[ rtrunc] |
Database data value width <= ABAP field width (n) |
OK | |
Numeric text N(n), (see (C)) |
[ Conversion as for character fields |
[ ok] |
Packed |
Loss of significant figures (see (A)). |
[ null] |
Loss of non-significant figures (see (A)). |
[ rtrunc] | |
Database data value width <= ABAP field width (n-d) |
ok / [ rtrunc] | |
Integer I |
Database data value not in interval ] -231, 2 31 [ |
1455 |
Database data value contains decimal places |
[ rtrunc] | |
Database data value in interval ] -231, 2 31 [ |
ok / [ rtrunc] | |
Float F |
Truncation in conversion |
[ round] |
Database data value in interval ] -10126, 10
126 [
|
ok / [ round] | |
Date D(8) |
Database column width (z) > ABAP field width (8), (z>=8) Database data value width > ABAP field width Database data value width <= ABAP field width |
[rtrunc] [ok] |
Database column width (z) <= ABAP field width (8), (z<8) |
[ ok] | |
Time T(6) |
Database column width (z) > ABAP field width (6), (z>=6) Database data value width > ABAP field width Database data value width <= ABAP field width |
[rtrunc] [ok] |
Database column width (z) <= ABAP field width (6), (z<6) |
[ ok] | |
Hexadecimal X(n) (see (D)) |
|
932 |
Data value width: Number of digits without leading zeros; data value width is increased by one for each of decimal point and minus sign.
ABAP Data Type |
Case (notes) |
Result |
Character C(n) |
Database data value width > ABAP field width (n) |
[ rtrunc] |
Database data value width <= ABAP field width (n) |
OK | |
Numeric text N(n), (see (C)) |
[ Conversion as for character fields |
[ ok] |
Packed |
Loss of figures before decimal point in conversion |
[ null] |
Loss of decimal places in conversion |
[ rtrunc] | |
Database data value width <= database column width (z) |
ok / [ rtrunc] | |
Integer I |
Database data value not in interval ] -231, 2 31 [ |
1455 |
Database data value contains decimal places |
[ rtrunc] | |
Database data value in interval ] -231, 231 [ |
ok / [ rtrunc] | |
Float F |
Truncation in conversion |
[ round] |
Database data value in interval ] -10126, 10
126 [
|
ok / [ round] | |
Date D(8) |
Database data value width > ABAP field width (8) |
[ rtrunc] |
Database data value width <= ABAP field width (8) |
[ ok] | |
Time T(6) |
Database data value width > ABAP field width (6) |
[ rtrunc] |
Database data value width <= ABAP field width (6) |
[ ok] | |
Hexadecimal X(n) (see (D)) |
|
932 |
Data value width = 9 (fixed)
ABAP Data Type |
Case (notes) |
Result |
Character C(n) |
Database data value width (9) > ABAP field width (n), (n<9) |
[ rtrunc] |
Database data value width (9) <= ABAP field width (n), (n>=9) |
OK | |
Numeric text N(n), (see (C)) |
[ Conversion as for character fields |
[ ok] |
Packed P |
|
932 |
Integer I |
|
932 |
Float F |
|
932 |
Date D(8) |
|
ok / [ rtrunc] |
Time T(6) |
|
ok / [ rtrunc] |
Hexadecimal X(n) (see (D)) |
|
932 |
Column width: z = 2x
Data value width: Number of hexadecimal digits without trailing zeros
ABAP Data Type |
Case (notes) |
Result |
Character C(n) |
Database column width (z) > ABAP field width (n), (z>n) Database data value width > ABAP field width Database data value width <= ABAP field width |
[rtrunc] OK |
Database column width (z) <= ABAP field width (n), (z<=n) |
OK | |
Numeric text N(n), (see (C)) |
[ Conversion as for character fields |
[ ok] |
Packed P |
|
932 |
Integer I |
|
932 |
Float F |
|
932 |
Date D(8) |
Database column width (z) > ABAP field width (8), (z>8) Database data value width > ABAP field width Database data value width <= ABAP field width |
[rtrunc] [ok] |
Database column width (z) <= ABAP field width (8), (z<=8) |
[ ok] | |
Time T(6) |
Database column width (z) > ABAP field width (6), (z<6) Database data value width > ABAP field width Database data value width <= ABAP field width |
[rtrunc] [ok] |
Database column width (z) <= ABAP field width (6), (z<=6) |
[ ok] | |
Hexadezimal |
Database data value width > ABAP field width Database data value width = ABAP field width Database column width < ABAP field width |
[ rtrunc] OK [undef] |
Database Column Type: long raw
Data value width: Number of hexadecimal digits without trailing zeros
ABAP Data Type |
Case (notes) |
Result |
Character C(n) |
Database data value width <= ABAP field width |
OK |
Database data value width > ABAP field width |
[ rtrunc] | |
Numeric text N(n), (see (C)) |
[ Conversion as for character fields |
[ ok] |
Packed P |
|
932 |
Integer I |
|
932 |
Float F |
|
932 |
Date D(8) |
Database data value width > ABAP field width (8) |
[ rtrunc] |
Database data value width <= ABAP field width (8) |
[ ok] | |
Time T(6) |
Database data value width > ABAP field width (6) |
[ rtrunc] |
Database data value width <= ABAP field width (6) |
[ ok] | |
Hexadezimal |
Database data value width > ABAP field width (2n) |
[ rtrunc] |
Database data value width = ABAP field width (2n) |
OK | |
Database column width < ABAP field width (2n) |
[ undef] |
Database Column Type: rowid(18)
Data value width = 18 (fixed)
ABAP Data Type |
Case (notes) |
Result |
Character C(n) |
Database data value width (18) > ABAP field width (n), (18 > 9) |
[ rtrunc] |
Database data value width (18) <= ABAP field width (n), (18 <= 9) |
OK | |
Numeric text N(n), (see (C)) |
[ Conversion as for character fields |
[ ok] |
Packed P |
|
932 |
Integer I |
|
932 |
Float F |
|
932 |
Date D(8) |
|
[ undef] |
Time T(6) |
|
[ undef] |
Hexadecimal X(n) (see (D)) |
|
932 |