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

Respaldar base de datos

Estas en el tema de Respaldar base de datos en el foro de .NET en Foros del Web. Que tal foreros, gusto en saludarlos por primera vez, estoy iniciandome en .net y llendo al grano mi problema es el siguiente: Tengo una web ...
  #1 (permalink)  
Antiguo 18/05/2005, 11:13
 
Fecha de Ingreso: mayo-2005
Mensajes: 3
Antigüedad: 19 años
Puntos: 0
Respaldar base de datos

Que tal foreros, gusto en saludarlos por primera vez, estoy iniciandome en .net y llendo al grano mi problema es el siguiente:
Tengo una web form, el cual consulta una base de datos que está en oracle, la consulta consiste en saber el contenido de la base de datos(es decir, las tablas que la conforman), hasta ahi todo bien. Después de saber cuales son las tablas realizar una operación que me permita tener como resultado un script en sql que me describa el esquema de la tabla, con el motivo de realizar un respaldo de la tabla.
Por ejemplo:
Si tengo una tabla llamada Clientes con los campos CveCliente, Nombre, ApePat, ApeMat y CveCliente es la llave primaria.
A partir de esta información generar un script parecido al siguiente:
"CREATE TABLE CLIENTE (
CveCliente char(6) not null,
Nombre char(15),
ApePat char(15),
ApeMat char(15),
constraint CveCliente_PK primary key(CveCliente)"

Espero y me haya explicado, alguna sugerencia??
Saludos
  #2 (permalink)  
Antiguo 19/05/2005, 10:19
 
Fecha de Ingreso: mayo-2005
Mensajes: 3
Antigüedad: 19 años
Puntos: 0
Manipulación de tablas de usuarios

Ya logré una solución, sin saber que sea la más óptima.
Les menciono brevemente lo que hice para los que se puedan encontrar en esta situación.
Como dije en el mensaje anterior la bd está en oracle, así que me puse a investigar sobre la estructura en como guarda la información el manejador, existen tablas como "USER_CONS_COLUMNS" en esta tabla se guarda las columnas que existen en la bd así como a que tabla pertenece dicha columna, para saber las restricciones como llaves primarias o foráneas, existe otra tabla "USER_CONSTRAINTS" en donde se especifican las llaves que tiene toda la tabla y hacia cual hace referencia (si es el caso).

Así que de ahi tomé toda la información necesaria para conocer los campos y las llaves, y realicé un proceso que me insertara los comandos necesarios [p.e. CREATE TABLE "NOMBRE_TABLA"( "CAMPO1" "TIPO_DE_DATO" ("LONDITUD"))].

Sé que es más conocimiento sobre bd, pero no está de más saberlo.
Saludos
  #3 (permalink)  
Antiguo 19/05/2005, 10:21
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Cita:
Iniciado por paisa
así que me puse a investigar sobre la estructura en como guarda la información el manejador, existen tablas como "USER_CONS_COLUMNS" en esta tabla se guarda las columnas que existen en la bd así como a que tabla pertenece dicha columna
Cool
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #4 (permalink)  
Antiguo 19/05/2005, 14:07
 
Fecha de Ingreso: mayo-2005
Mensajes: 16
Antigüedad: 19 años
Puntos: 0
El package dbms_metadata trae funciones que te permiten extraer la definicion de los objetos de un esquema.
Por ejemplo, si quieres ver la definicion de la tabla empleado del esquema scott:

SELECT dbms_metadata.get_ddl('TABLE','EMPLEADO', 'SCOTT') FROM dual;

Si quieres ver la definicion de todas las tablas del usuario scott:

SELECT dbms_metadata.get_ddl('TABLE', table_name)
FROM dba_tables
WHERE owner = 'SCOTT';

dbms_get_xml te da la estructura en xml

Saludos.
  #5 (permalink)  
Antiguo 19/05/2005, 17:19
 
Fecha de Ingreso: mayo-2005
Mensajes: 3
Antigüedad: 19 años
Puntos: 0
Perfect!!!

mil gracias trazom.
Acabo de probar el package dbms_metada y funcionó a la perfección , ahorra mucho código .
Thanks friend, saludos
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




La zona horaria es GMT -6. Ahora son las 13:25.