Oracle - tablas temporales

   
Vista:

tablas temporales

Publicado por juarez (17 intervenciones) el 14/01/2009 02:12:42
saludos.
alguien me podria explicar un poco lo de las tablas temporales tengo entendido que hasta que no me desconecte de mi sesion puedo dejar de manipularlas
ejemplo de como lo hago pero con net
CREATE GLOBAL TEMPORARY TABLE my_temp_tabla3 ( recibo NUMBER, status NUMBER) ON COMMIT DELETE ROWS

bueno el chiste es que yo abro mi coneccion creo esta tabla leo un excel le introdusco los datos hasta aqui todo bien pero quiero visualizar mis datos en un grid y me dice que la tabla no existe alguien tiene alguna ideade como solucionar esto

saludos y gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:tablas temporales

Publicado por antonio (1 intervención) el 14/01/2009 16:04:02
usa esta sentencia para crear la tabla:
CREATE GLOBAL TEMPORARY TABLE my_temp_table (
column1 NUMBER,
column2 NUMBER
) ON COMMIT PRESERVE ROWS;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:tablas temporales

Publicado por juarez (17 intervenciones) el 14/01/2009 16:21:14
ok gracias.

pero el problema es que al momento de insertar datos si lo hace pero cuando lo consulto no me muestra nada, lo hago desde el toad y no hay problema crea la tabla puedo insertar registros y consultarlos el detalle es cuando lo hago con c#
abro mi coneccion creo la tabla inserto datos con un bucle y despues hago una consulta para mostrarloen un grid y me marca un erro ( la tabla no existe) :(

saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:tablas temporales

Publicado por Carlos (17 intervenciones) el 14/01/2009 19:05:45
Hola.
Hay una cosa que no comprendo.
¿Creas la tabla temporal desde C#?.
¿Es una TEMPORARY TABLE?.
Si lo es, no necesitas crearla desde C#, la creas en el esquema que necesites y una vez configures los permisos podrás utilizarla como cualquier otra tabla.

Con los datos que das no puedo ayudarte más.
¿Cómo te conectas a través de C#? ¿Con ADO.NET?.
¿Cómo creas la tabla?.
¿Cómo consultas la tabla una vez creada? ¿Con un DataAdapter, un DataReader...?.
¿Qué error exacto (número ORA) te da?.
Si el que comentas es el error ORA, significa que con el usuario de conexión desde C# no puede consultar la tabla, bien porque no existe, bien porque no tiene permisos para seleccionar datos de ella.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:tablas temporales

Publicado por juarez (17 intervenciones) el 15/01/2009 18:20:54
saludos.
ok antonio
me conecto con ADO
este es el error que me muestra.
ORA-00942: table or view does not exist

creo mi tabla con un command
oCmd = new OracleCommand("CREATE GLOBAL TEMPORARY TABLE my_temp_Remesa3 ( recibo NUMBER, status NUMBER) ON COMMIT DELETE ROWS", oCnn);

despues leo el excel con un datareader y lo introdusco a mit abla
while (LeeArchivo.Read())
{

oDa.InsertCommand = new OracleCommand("INSERT INTO my_temp_Remesa3 (recibo) values('" + LeeArchivo[0].ToString() + "')", oCnn);

oDa.InsertCommand.Connection = oCnn;
oDa.InsertCommand.ExecuteNonQuery();
}

y posterior mento hago mi consulta
SqlQuery = "select * from my_temp_Remesa3";
oDa = new OracleDataAdapter(SqlQuery, oCnn);
oDt = new DataTable();
oDa.Fill(oDt);
this.dataGridView1.DataSource = oDt;

en realidad como te comente es la primera vez que uso una tabla temporal e ignoro si la puedo crear desde oracle y acceder a ella desde c# y manipularla
te agradeceria si me puedes dar una explicacion.
Gracias que estes bien.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:tablas temporales

Publicado por Pedro (5 intervenciones) el 21/01/2009 09:51:10
Yo de la parte de C# no entiendo pero parece ser que ese comando no sirve para crear objetos DDL, por eso te dice que no encuentra la tabla, porque realmente no la ha creado. De todas formas no tiene sentido que crees las tablas así, tu te creas tus tablas y las tienes ahi almacenaditas, ya sean con datos o sin datos, y ya las vas usando a tu gusto desde el interfaz que tu quieras.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar