User 1791
When writing fiddles that produce an error, the error message isn't always as helpful as it could be.
Example:
```
CREATE TYPE my_sdo_geom_type AS OBJECT(
shape SDO_GEOMETRY,
MEMBER FUNCTION GetOrdinates(
self IN my_sdo_geom_type,
idx IN NUMBER
) RETURN NUMBER
)
/
CREATE TYPE BODY my_sdo_geom_type AS
MEMBER FUNCTION GetOrdinates(
self IN my_sdo_geom_type,
idx IN NUMBER
) RETURN NUMBER
IS
BEGIN
return shape.sdo_ordinates(idx_); --test error: added "_" to idx
END;
END;
/
```
Error:
```
ORA-24344: success with compilation error
```
[db<>fiddle](https://dbfiddle.uk/?rdbms=oracle_21&fiddle=ad1192e89c5bb689e28acd3ef3df99d5)
-------------
That error doesn't tell us what the underlying problem is. To get the complete picture, it seems like we need to do this:
```
SELECT * FROM USER_ERRORS;
```
> NAME | TYPE | SEQUENCE | LINE | POSITION | TEXT | ATTRIBUTE | MESSAGE_NUMBER
> :--------------- | :-------- | -------: | ---: | -------: | :-------------------------------------------- | :-------- | -------------:
> MY_SDO_GEOM_TYPE | TYPE BODY | 1 | 8 | 32 | PLS-00201: identifier 'IDX_' must be declared | ERROR | 201
> MY_SDO_GEOM_TYPE | TYPE BODY | 2 | 8 | 5 | PL/SQL: Statement ignored | ERROR | 0
Now that I can see the full error info, I can determine what the problem is.
As a novice, it seems like it would be beneficial to return the full error description from USER_ERRORS. Would it be possible to display that information by default in db<>fiddle for Oracle?
Top Answer
Jack Douglas
We only want to display what Oracle returns - querying `USER_ERRORS` is the correct way to get more detailed information.