Что произойдет, если я всегда установлю ноль в подготовленном выражении с помощью varchar? - PullRequest
0 голосов
/ 01 августа 2009

У меня есть этот метод для вставки данных с использованием jdbc, который будет вставлять значение в соответствии с типом Java. Примерно так:

Object o = map.get( key );

if( o == null ) {
    // setNull( index );
} else  if( o instanceof String ) {
    // setString( index, (String) o );
} else if( o instanceof Timestamp ) {
    // setTimestampt( index, ( Timestamp ) o );
} else if( o instanceof Integer ) {
    // setInt( index, (Integer) o );
}
    index++;

Хотя есть проблема (кроме всего, что прокомментировано: P)

Если значение o равно нулю, мне необходимо использовать "setNull (int, int)" метод, но Я должен указать тип SQL :

... Примечание : необходимо указать тип SQL параметра.

Но ... я не знаю тип, поэтому я рассматриваю использование всегда VARCHAR (только потому, что)

setNull( index,Types.VARCHAR); .

Что произойдет, если я всегда установлю ноль в подготовленном выражении с помощью varchar?

Я использую:

Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production

С драйвером Oracle JDB:

11.1.0.7.0-Production ( ojdbc6.jar ) 

Какая альтернатива?

1 Ответ

2 голосов
/ 01 августа 2009

Не могли бы вы опросить базу данных и получить тип столбца через интерфейс ResultSetMetaData?

...