Как правило, Oracle предоставляет номер строки и столбца любых ошибок, но это зависит от конкретного используемого вами API (если только вы не пишете приложение OCI, что, вероятно, маловероятно) в отношении того, как и как API называются. Поскольку ответ, скорее всего, в конечном итоге будет зависеть от API, какой API вы используете и как выглядит ваш код при возникновении ошибки (например, JDBC, ODBC, OLE DB и т. Д.)?
Например, если я напишу блок PL / SQL с именем переменной с ошибкой, SQL * Plus сообщит номер строки и столбца ошибки в дополнение к сообщению об ошибке. С другой стороны, многие API просто сообщают об ошибке PLS-00201 по умолчанию.
SQL> declare
2 i integer;
3 begin
4 j := 1;
5 end;
6 /
j := 1;
*
ERROR at line 4:
ORA-06550: line 4, column 3:
PLS-00201: identifier 'J' must be declared
ORA-06550: line 4, column 3:
PL/SQL: Statement ignored
Аналогичным образом, если вы выполняете оператор SQL с недопустимым именем переменной, SQL * Plus получит позицию столбца и строки и поставит * под символом сбоя, то есть
SQL> create table a( col1 number );
Table created.
SQL> insert into a( colN ) values ( 1 );
insert into a( colN ) values ( 1 )
*
ERROR at line 1:
ORA-00904: "COLN": invalid identifier
Большинство PL / SQL IDE (TOAD, SQL Developer и т. Д.) Будут делать нечто подобное, опрашивая соответствующие API OCI под прикрытием. Однако, как именно это будет сделано, будет зависеть от API.