powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / ORA-01008: not all variables bound
6 сообщений из 6, страница 1 из 1
ORA-01008: not all variables bound
    #34115220
L0n3R4ng3r
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
знаю что тема неоднократно поднималась но можно более популярно обьяснить из-за чего выскакует ошибка
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
StringBuffer sql =  new  StringBuffer("{? = call sa.KP_GETCARDINFOADMINBYID(?");
             for  ( int  i =  2 ; i <=  6 ; i++) {
                sql.append(",?");
            }
            sql.append(") }");
            CallableStatement cst = conn.prepareCall(sql.toString());

            cst.registerOutParameter( 2 , Types.VARCHAR);
            cst.registerOutParameter( 3 , Types.VARCHAR);
            cst.registerOutParameter( 4 , Types.VARCHAR);
            cst.registerOutParameter( 5 , Types.TIMESTAMP);
            cst.registerOutParameter( 6 , Types.VARCHAR);
  try {

             for  (Iterator iterator = ids.iterator(); iterator.hasNext();) {

                String id = (String) iterator.next();
                cst.setString( 1 , id);
                cst.execute();
                total++;

                String family = cst.getString( 2 );
                String fname = cst.getString( 3 );
                String sec_name = cst.getString( 4 );
                Date born = cst.getDate( 5 );
                String office = cst.getString( 6 );
   Element row = rows.addElement("row").addAttribute("card_id", id);
                Element jsRow = jsdata.addElement(jrXMLDataSource.QNAME_ROW);

                addElement(row, "family", family);
                addElement(row, "fname", fname);
                addElement(row, "sec_name", sec_name);
                addElement(row, "born", born,  new  		SimpleDateFormat("dd.MM.yyyy"));
                addElement(row, "office", office);

jrXMLDataSource.addField(jsRow, "family", family);
                jrXMLDataSource.addField(jsRow, "fname", fname);
                jrXMLDataSource.addField(jsRow, "sec_name", sec_name);
                jrXMLDataSource.addField(jsRow, "born", String.valueOf(born));
                jrXMLDataSource.addField(jsRow, "office", office);
  }
            cst.close();
}
Описание процедуры в Oracle:
Код: plaintext
1.
2.
3.
4.
5.
6.
CARD_ID_STR_ IN VARCHAR2, 
 FAMILY_ OUT VARCHAR2, 
 FNAME_ OUT VARCHAR2, 
 SEC_NAME_ OUT VARCHAR2, 
 BORN_ OUT DATE, 
 OFFICE_ OUT VARCHAR2

при вызове Оракл ругаеться
ORA-01008: not all variables bound


что не правильно или что ему не хватает???
Заранее спасибо.
...
Рейтинг: 0 / 0
ORA-01008: not all variables bound
    #34115312
MBasil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Символов вопроса в строке получается 7, 5 OUT переменных и одна строкаовая IN для входной переменной (первый знак вопроса).
6+1 =6 - То есть я не нашел еще одного знака вопроса с заданным значением.
...
Рейтинг: 0 / 0
ORA-01008: not all variables bound
    #34115316
Фотография Timm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L0n3R4ng3r...

при вызове Оракл ругаеться
ORA-01008: not all variables bound


что не правильно или что ему не хватает???
Заранее спасибо.
Он четко ответил.
http://saturn.uab.es/java.920/a96654/basic.htm#1002489
...
Рейтинг: 0 / 0
ORA-01008: not all variables bound
    #34115321
dremmmmm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Распечатай StringBuffer sql, сразу поймеш
...
Рейтинг: 0 / 0
ORA-01008: not all variables bound
    #34115767
L0n3R4ng3r
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
при смене синтаксиса с
CallableStatement cs2 = conn.prepareCall
( "{? = call func (?,?)}" ) ;
CallableStatement cs4 = conn.prepareCall
( "begin ? := func(?,?); end;" ) ;
жить проще не стало ошибка таже.

2MBasil:
чесно говоря не понял что ты имеешь ввиду... В ф-ции 1 IN значение и 5 OUT тоесть 6, и готовимся принять 5 и одно отсылаем в итоге 6. Можно поподробней если с примером то вообще....
...
Рейтинг: 0 / 0
ORA-01008: not all variables bound
    #34117154
MBasil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
StringBuffer sql = new StringBuffer("{? = call sa.KP_GETCARDINFOADMINBYID(?");
//------------------------------------1-----------------------------------2---
// определили первые 2

for (int i = 2; i <= 6; i++) {
sql.append(",?"); //добавили еше 6
}
sql.append(") }");
CallableStatement cst = conn.prepareCall(sql.toString());

cst.registerOutParameter(2, Types.VARCHAR);
cst.registerOutParameter(3, Types.VARCHAR);
cst.registerOutParameter(4, Types.VARCHAR);
cst.registerOutParameter(5, Types.TIMESTAMP);
cst.registerOutParameter(6, Types.VARCHAR);
//---------------- определили 5 ------------
. . .
cst.setString(1, id); // сунули первому значение
// А где последний седьмой ?
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / ORA-01008: not all variables bound
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]