Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с параметрической командой INSERT 
:(
    Опции темы
erslgoeirjh
Дата 10.5.2012, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 16.12.2005

Репутация: нет
Всего: нет



Есть таблица MYTABLE, состоящая из шести полей (СУБД--Oracle):
FIRST--тип NUMBER(8);
SECOND--тип VARCHAR2(80);
THIRD--тип VARCHAR2(80);
FOURTH--тип VARCHAR2(80);
FIFTH--тип VARCHAR2(80);
SIXTH--тип VARCHAR2(80) .

При этом поле FIRST является ключевым и его значение создаётся автоматически в таблице (это порядковый номер записи в таблице). Поля FIFTH и SIXTH также создаются автоматически в таблице, хотя и не являются ключевыми.

Есть код по занесению строки (записи) в таблицу:

Код

try {
    try {
        java.sql.DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
    } catch (Exception e1) {
        System.out.println(e1.toString());
        return;
    }
    try {
        connection = DriverManager.getConnection(path, uid, pw); // path--путь, uid--логин, pw--пароль для соединения с базой данных
    } catch (Exception e1) {
        System.out.println(e1.toString());
        return;
    }
    // ...
    sqlString = "INSERT INTO MYTABLE (SECOND, THIRD, FOURTH) VALUES (?, ?, ?)";
    try {
        prepStmt = connection.prepareStatement(sqlString);
    } catch (Exception ex) {
        System.out.println(ex.toString());
        return;
    }
    try {
        prepStmt.setString(2, s2); // занесение информации в поле SECOND
    } catch (Exception ex) {
        System.out.println(ex.toString());
    }
    try {
        prepStmt.setString(3, s3); // занесение информации в поле THIRD
    } catch (Exception ex) {
        System.out.println(ex.toString());
    }
    try {
        prepStmt.setString(4, s4); // занесение информации в поле FOURTH
    } catch (Exception ex) {
        System.out.println(ex.toString());
    }
    prepStmt.executeUpdate();
} catch (Exception ex2) {
    System.out.println(ex2.toString);
    return;
}
 


В результате чего на экран выводятся следующие сообщения об ошибках:

1) 

Цитата

java.sql.SQLException: Недопустимый индекс столбца

-- после prepSTMT.setString(4, s4);

2) 
Цитата

java.sql.SQLException: В индексе отсутствует параметр IN или OUT:: 1

-- после prepStmt.executeUpdate();

Как мне исправить ошибку? Как правильно занести информацию в таблицу MYTABLE--в поля SECOND, THIRD и FOURTH? С учётом того, что в поле FIRST никакие значения заносить не надо--значение этого поля формируется автоматически.

PM MAIL   Вверх
LSD
Дата 10.5.2012, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 18
Всего: 538



Ораклу совершенно все равно как называется поле SECOND или THIRTY_THREE. Параметры считаются начиная с единицы.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Oracle"
Zloxa
LSD

Данный раздел предназначен для обсуждения проблем с Oracle Database, другие продукты Oracle здесь не обсуждаются. Просьба при создании темы, придерживаться следующих правил:

  • при создании темы давайте ей осмысленное название, описывающее суть проблемы
  • указывайте используемую версию базы, способ соединения и язык программирования
  • при ошибках обязательно приводите код ошибки и сообщение сервера
  • приводите код в котором возникла ошибка, по возможности дайте тестовый пример демонстрирующий ошибку
  • при вставке кода используйте соответсвующие теги: [code=sql] [/code] для подсветки SQL и PL/SQL кода, [code=java] [/code] - для Java, и т.д.

  • документация по Oracle: 9i, 10g, 11g
  • книги по Oracle можно поискать здесь
  • действия модераторов можно обсудить здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, LSD.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Oracle | Следующая тема »


 




[ Время генерации скрипта: 0.0464 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.