Как сделать сообщения об ошибках Oracle более подробными?

Вместо логического, я использовал это:

        @Override
          public int getItemViewType(int position) {

        if(mUsersList.get(position).getStatus() ==null){

                return CLASSE;

        }else {

               return USER;
        }

    }

}

Так что теперь его работа.

8
задан massko 23 November 2016 в 10:46
поделиться

2 ответа

Я не знаю ни о каком способе заставить Oracle совершать более конкретную ошибку. Возможно, некоторая будущая версия улучшит это сообщение об ошибке.

Вместо того, чтобы просто уставиться на него, тем не менее, существуют другие вещи, которые можно попробовать. Например, преобразуйте каждую переменную в SQL-операторе к литералу по одному, пока ошибка не уйдет. Если возможно, генерируйте список имен переменной вместо того, чтобы ввести их вручную.

1
ответ дан 6 December 2019 в 01:41
поделиться

В целом Oracle обеспечивает номер строки и номер столбца любых ошибок, но это до конкретного API, который Вы используете (если Вы, оказывается, не пишете приложение OCI, которое, вероятно, маловероятно), относительно того, ли и как те API называют. Так как ответ, вероятно, закончит тем, что был определенным для API, что API Вы, используют и на что похож Ваш код, когда ошибка происходит (т.е. JDBC, ODBC, OLE DB, и т.д.)?

Как пример, если я пишу МН блок / блок 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

Самый МН / SQL IDE (ЖАБА, Разработчик SQL, и т.д.) сделает что-то подобное путем опроса соответствующих API OCI под покрытиями. Точно то, как это сделано, однако, будет зависеть от API.

1
ответ дан 6 December 2019 в 01:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: