JAVA Y ORACLE
Hola a todos, me encuentro en un callejon sin salida, os cuento.
Necesito sacar por pantalla el contenido de una consulta sql, hasta ahí facil, tomo el resulset y con esta función saco todo:
public String muestraResultados(ResultSet r) throws misExcepciones
{
String texto="n";
try
{
ResultSetMetaData rSMD = r.getMetaData();
int numeroCampos = rSMD.getColumnCount();
for (int i=1; i<=numeroCampos; ++i)
{
if (i<numeroCampos)
texto += rSMD.getColumnName(i) + " ----- ";
else
texto += rSMD.getColumnName(i);
}
texto += "n";
while(r.next())
{
for (int i=1; i<=numeroCampos; ++i)
{
if (i<numeroCampos)
texto += r.getString(i) + " -------------- ";
else
texto += r.getString(i);
}
texto += "n";
}
}
catch (SQLException e)
{
throw new misExcepciones("error al cambiar el resultSet: "+ e.getMessage());
}
return texto;
}
Llegados a este punto me doy cuenta de lo siguiente.
Todo esto funciona correctamente EXCEPTO cuando uso constraints. Es decir tengo la siguiente tabla:
CREATE TABLE kk
( NUMERO INTEGER NOT NULL,
CONSTRAINT CL_kk PRIMARY KEY (NUMERO)
); y la siguiente consulta
Select * from kk;
Pues por el hecho de de tener un constraint sólo me saca por pantalla el nombre de su campo, y a la hora de poner las distintas tuplas ( he hecho varios inserts) no sale nada, me devuelve resultSet vacío!!!!
Y lo más curioso (para mi) cuando lo hago directamente sobre la BD( por medio de ORACLE SQL* PLUS) me saca bien el resultado!!!
Alguna idea???
Muchas gracias aunque solo sea por leer mi parrafada.
Un saludo!!
María (Zaragoza)
Necesito sacar por pantalla el contenido de una consulta sql, hasta ahí facil, tomo el resulset y con esta función saco todo:
public String muestraResultados(ResultSet r) throws misExcepciones
{
String texto="n";
try
{
ResultSetMetaData rSMD = r.getMetaData();
int numeroCampos = rSMD.getColumnCount();
for (int i=1; i<=numeroCampos; ++i)
{
if (i<numeroCampos)
texto += rSMD.getColumnName(i) + " ----- ";
else
texto += rSMD.getColumnName(i);
}
texto += "n";
while(r.next())
{
for (int i=1; i<=numeroCampos; ++i)
{
if (i<numeroCampos)
texto += r.getString(i) + " -------------- ";
else
texto += r.getString(i);
}
texto += "n";
}
}
catch (SQLException e)
{
throw new misExcepciones("error al cambiar el resultSet: "+ e.getMessage());
}
return texto;
}
Llegados a este punto me doy cuenta de lo siguiente.
Todo esto funciona correctamente EXCEPTO cuando uso constraints. Es decir tengo la siguiente tabla:
CREATE TABLE kk
( NUMERO INTEGER NOT NULL,
CONSTRAINT CL_kk PRIMARY KEY (NUMERO)
); y la siguiente consulta
Select * from kk;
Pues por el hecho de de tener un constraint sólo me saca por pantalla el nombre de su campo, y a la hora de poner las distintas tuplas ( he hecho varios inserts) no sale nada, me devuelve resultSet vacío!!!!
Y lo más curioso (para mi) cuando lo hago directamente sobre la BD( por medio de ORACLE SQL* PLUS) me saca bien el resultado!!!
Alguna idea???
Muchas gracias aunque solo sea por leer mi parrafada.
Un saludo!!
María (Zaragoza)
