Foros del Web » Programación para mayores de 30 ;) » Java »

inicializar variables tipo int

Estas en el tema de inicializar variables tipo int en el foro de Java en Foros del Web. Hola a todos, mi pregunta es como envio una variable tipo int vacia en un store procedure? Lo que sucede es que en un store ...
  #1 (permalink)  
Antiguo 11/04/2007, 07:09
 
Fecha de Ingreso: marzo-2007
Mensajes: 8
Antigüedad: 17 años, 2 meses
Puntos: 0
inicializar variables tipo int

Hola a todos, mi pregunta es como envio una variable tipo int vacia en un store procedure? Lo que sucede es que en un store procedure debo mandar una variable IN que es de tipo int vacia o null pero si la igualo a null da error, si la igualo a nada, da error si no la igualo a nada y solo la creo digamos poniendo int cuenta; tambien da error, como debería mandarla entonces?

int cuenta; --- en esta parte, como deberia inicializarla si quiero q la envie vacio

CallableStatement ct = conn.prepareCall("{call fon.pck_mt3.db_mt3_deptran(?,?,?,?,?,?,?,?,?,?,?)} ");

ct.setInt(1,cuenta); // 1 CUENTA IN NUMBER, -- (15)

Gracias, hasta luego
  #2 (permalink)  
Antiguo 11/04/2007, 07:28
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 7 meses
Puntos: 51
Re: inicializar variables tipo int

Sin saber la declaracion del procedimiento y los diferentes tipos de errores se hace dificil adivinar que está pasando. Haría falta algo más de información.

S!
  #3 (permalink)  
Antiguo 11/04/2007, 08:00
 
Fecha de Ingreso: marzo-2007
Mensajes: 8
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: inicializar variables tipo int

Este es el codigo que tengo, ahi explico el problema
public static void main(String args[]){
try{
fonPck_mt3Db_mt3_deptran oc = new fonPck_mt3Db_mt3_deptran();
Connection conn = oc.getConnection();

//Declarar variables IN OUT

String CODIGO_SUCURSAL = "LPZ";
int codigo_oficina = 15;
int cuenta = null; -- deseo enviar esta variable vacia, cuando igualo a null
da error si igualo a nada (int cuenta = ;) también da error, si pongo (int cuenta;) luego en en el setInt me sale que no inicializé la variable con ningún dato.

CallableStatement ct = conn.prepareCall("{call fon.pck_mt3.db_mt3_deptran(?,?,?,?)}");

ct.registerOutParameter(1, Types.VARCHAR);
ct.setString(1, CODIGO_SUCURSAL);
ct.registerOutParameter(2, Types.INTEGER);
ct.setInt(2,codigo_oficina);
ct.registerOutParameter(3, Types.INTEGER);
ct.setInt(3,cuenta);
ct.registerOutParameter(4, Types.INTEGER);

ct.execute();

System.out.println("Código: "+ct.getString(1));
System.out.println("Oficina: "+ct.getInt(2));
System.out.println("Cuenta: "+ct.getInt(2));
System.out.println("respuesta: "+ct.getInt(4));

conn.commit();
ct.close();
conn.close();

} catch (Exception e){
System.out.println("Error:"+e.getMessage());
e.printStackTrace();
}

Muchas gracias
  #4 (permalink)  
Antiguo 11/04/2007, 09:10
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 7 meses
Puntos: 51
Re: inicializar variables tipo int

Hola, faltaría saber la declaración del procedimiento "fon.pck_mt3.db_mt3_deptran", para saber si permite valores nulos, si tiene asignado un valor por defecto, etc.

S!

PD: De todas formas, si tienes que poder pasar null como parametro, entonces en vez de con int, que son primitivas y por tanto no pueden ser null, quiza te convenga trabajar con java.math.BigDecimal y hacer uso de callableStatement.setBigDecimal(x,y)
  #5 (permalink)  
Antiguo 11/04/2007, 10:08
 
Fecha de Ingreso: marzo-2007
Mensajes: 8
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: inicializar variables tipo int

PROCEDURE DB_MT3_DEPREV(
CODIGO_UNICO_BME_DEP_REV IN OUT VARCHAR2, (20)
CODIGO_UNICO_BME_DEP IN OUT VARCHAR2, -- (20)
CODIGO_BANCO IN VARCHAR2, -- (3)
CODIGO_SUCURSAL IN VARCHAR2, -- (3)
CODIGO_OFICINA IN NUMBER, -- (3)
CODIGO_CAJERO IN VARCHAR2, -- (7)
CODIGO_TERMINAL IN VARCHAR2, -- (25)
TIPO_FONDO IN OUT VARCHAR2, -- (3)
CUENTA IN OUT NUMBER, -- (15)
SUBCTA IN OUT NUMBER, -- (3)
COD_UNICO_SAFI_DEP IN NUMBER, -- (8)
FECHA_PROCESO IN DATE,
FECHAHORA_PROCESO IN OUT DATE,
CODIGO_RESPUESTA OUT NUMBER, -- (3)
MENSAJE OUT VARCHAR2, -- (120)
FECHAHORA_TRX OUT DATE,
NOMBRE_CLIENTE OUT VARCHAR2, -- (150)
CODIGO_ERROR OUT VARCHAR2, -- (3)
MENSAJE_ERROR OUT VARCHAR2, -- (200)
CODIGO_VALIDADOR IN VARCHAR2 -- (20)
);
eso es lo que tengo del sp, creo q no tiene ningun valor preestablecido, solo tengo acceso a la cabecera de sp.
Por que en oracle si me permite mandar como vacio en java no? que ma spuedo hacer?
Gracias
  #6 (permalink)  
Antiguo 11/04/2007, 10:59
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 7 meses
Puntos: 51
Re: inicializar variables tipo int

Ummm, estas llamando al procedimiento "fon.pck_mt3.db_mt3_deptran" y la cabecera que muestras es del procedimiento "DB_MT3_DEPREV".... .

PD: Y repito, para mandar un numero como "vacio" en Java has de usar setBigDecimal, no setInt.
  #7 (permalink)  
Antiguo 11/04/2007, 12:54
 
Fecha de Ingreso: marzo-2007
Mensajes: 8
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: inicializar variables tipo int

Gracias si era con BigDecimal como dijiste, aqui pongo el codigo a disposición del q le sirva:

public static void main(String args[]){
try{
fonPck_mt3Db_mt3_deprev oc = new fonPck_mt3Db_mt3_deprev();
Connection conn = oc.getConnection();

String codigo_unico_bme_dep_rev = "";
String codigo_unico_bme_dep="";
String codigo_banco="";
String codigo_cajero="9999";
String codigo_terminal="";
int subcta = 1;
String codigo_validador="";
String codigo_sucursal="LPZ";
String tipo_fondo = "BSP";
int cuenta =84188;
int codigo_unico_safi_dep =392618;

CallableStatement ct = conn.prepareCall("{call fon.pck_mt3.DB_MT3_DEPREV(?,?,?,?,?)}");

ct.registerOutParameter(1, Types.VARCHAR);
ct.setString(1, codigo_unico_bme_dep_rev);
ct.registerOutParameter(2, Types.VARCHAR);
ct.setString(2, codigo_unico_bme_dep);
ct.setString(3, codigo_banco);
ct.setString(4, codigo_sucursal);
ct.setBigDecimal(5, null);

ct.execute();

System.out.println("Código único de transaccion: "+ct.getString(1));
System.out.println("Código de transaccion que identifica el deposito a reversar: "+ct.getString(2));


conn.commit();
ct.close();
conn.close();

}
  #8 (permalink)  
Antiguo 11/04/2007, 14:26
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 7 meses
Puntos: 51
Re: inicializar variables tipo int

Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 21:15.