Almacenar XML en BD

28/08/2003 - 12:55 por luis | Informe spam
Hola a todos,

necesito almacenar un archivo XML en un campo de una
tabla de mi BD. La idea inicial es almacenarlo como un
string, pero el problema es que la cadena es enorme y
supera el tipo nVarchar con mucho.
¿Qué se suele hacer en estos casos?
Imagino que se utiliza el text y nText, pero ¿cómo se
trabaja con estos tipos, que diferencia hay entre ambos?.

Tras almacenarlo en la BD he de recuperarlo de alguna
forma como "cadena" y cargarlo en un objeto DOMDocument.

Muchas gracias.
Saludos.

Preguntas similare

Leer las respuestas

#1 luis
28/08/2003 - 13:08 | Informe spam
Hola de nuevo,

tengo SQL Server 7.0, aunque el sistema final donde
correrá es un SQL Server 2000. Lo digo porque al aprecer
SQLServer 2000 soporta un tipo de datos XML, pero
preferiría ser capaz de hacerlo con "cadenas" y poder
desarrollarlo en SQL Server 7.0

Muchisimas gracias y perdón por el olvido.
Saludos.

Hola a todos,

necesito almacenar un archivo XML en un campo de una
tabla de mi BD. La idea inicial es almacenarlo como un
string, pero el problema es que la cadena es enorme y
supera el tipo nVarchar con mucho.
¿Qué se suele hacer en estos casos?
Imagino que se utiliza el text y nText, pero ¿cómo se
trabaja con estos tipos, que diferencia hay entre ambos?.

Tras almacenarlo en la BD he de recuperarlo de alguna
forma como "cadena" y cargarlo en un objeto DOMDocument.

Muchas gracias.
Saludos.
.

Respuesta Responder a este mensaje
#2 Carlos Sacristan
28/08/2003 - 13:12 | Informe spam
ntext

Datos Unicode de longitud variable con una longitud máxima de 230 - 1
(1.073.741.823) caracteres. El tamaño del almacenamiento, en bytes, es dos
veces el número de caracteres especificado. El sinónimo en SQL-92 para ntext
es national text.

text

Datos no Unicode de longitud variable, de la página de códigos del servidor
y con una longitud máxima de 231-1 (2.147.483.647) caracteres. Cuando la
página de códigos del servidor utiliza caracteres de doble byte, el
almacenamiento sigue siendo de 2.147.483.647 bytes. Dependiendo de la cadena
de caracteres, el espacio de almacenamiento puede ser inferior a
2.147.483.647 bytes.


Creo que con ese tamaño de almacenamiento deberías tener suficiente,
¿no?. Para trabajar con este tipo de datos, como lo que vas a almacenar es
texto, no deberías tener problemas para tratarlos. Otra cosa es para crear
ese objeto, si tienes alguna forma de instanciarlo a partir de una cadena de
caracteres, problema solucionado



Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro

Se agradece la inclusión de sentencias DDL

Archivo de respuestas anteriores en:
http://groups.google.com/groups?hl=....public.es
.sqlserver

(Guía de netiquette del foro)
http://www.helpdna.net/bosqlfaq00.htm
http://perso.wanadoo.es/rubenvigon/foro

(FAQ's de SQL Server)
http://support.microsoft.com/defaul.../70faq.asp
http://www.helpdna.net/bosqlfaq.htm

"luis" escribió en el mensaje
news:0acf01c36d52$d4f7c7a0$
Hola a todos,

necesito almacenar un archivo XML en un campo de una
tabla de mi BD. La idea inicial es almacenarlo como un
string, pero el problema es que la cadena es enorme y
supera el tipo nVarchar con mucho.
¿Qué se suele hacer en estos casos?
Imagino que se utiliza el text y nText, pero ¿cómo se
trabaja con estos tipos, que diferencia hay entre ambos?.

Tras almacenarlo en la BD he de recuperarlo de alguna
forma como "cadena" y cargarlo en un objeto DOMDocument.

Muchas gracias.
Saludos.
Respuesta Responder a este mensaje
#3 Carlos Sacristan
28/08/2003 - 13:24 | Informe spam
Pues que yo sepa, la versión 2000 no soporta ese tipo de datos... me
parece que tú te refieres a la siguiente versión (Yukon), que se rumorea que
sí que va a contar con ello. Pero aún queda tanto :(



Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro

Se agradece la inclusión de sentencias DDL

Archivo de respuestas anteriores en:
http://groups.google.com/groups?hl=....public.es
.sqlserver

(Guía de netiquette del foro)
http://www.helpdna.net/bosqlfaq00.htm
http://perso.wanadoo.es/rubenvigon/foro

(FAQ's de SQL Server)
http://support.microsoft.com/defaul.../70faq.asp
http://www.helpdna.net/bosqlfaq.htm

"luis" escribió en el mensaje
news:03ef01c36d54$b4206c10$
Hola de nuevo,

tengo SQL Server 7.0, aunque el sistema final donde
correrá es un SQL Server 2000. Lo digo porque al aprecer
SQLServer 2000 soporta un tipo de datos XML, pero
preferiría ser capaz de hacerlo con "cadenas" y poder
desarrollarlo en SQL Server 7.0

Muchisimas gracias y perdón por el olvido.
Saludos.

Hola a todos,

necesito almacenar un archivo XML en un campo de una
tabla de mi BD. La idea inicial es almacenarlo como un
string, pero el problema es que la cadena es enorme y
supera el tipo nVarchar con mucho.
¿Qué se suele hacer en estos casos?
Imagino que se utiliza el text y nText, pero ¿cómo se
trabaja con estos tipos, que diferencia hay entre ambos?.

Tras almacenarlo en la BD he de recuperarlo de alguna
forma como "cadena" y cargarlo en un objeto DOMDocument.

Muchas gracias.
Saludos.
.

Respuesta Responder a este mensaje
#4 luis
28/08/2003 - 13:56 | Informe spam
Hola Carlos,

lo del tipo XML lo he leído en una web:
http://www.windowstimag.com/sqlmag/...sep00/arti
culos/XML_1.htm

aunque es posible que haya leído muy deprisa.

Por otro lado si el nText o Text se comporta como texto
(cadena string pura y dura) no hay problema y como bien
dices, el objeto DOMDocument que permite trabajar con XML
tiene un método para cargarlo a partir de un string.

Muchas gracias.
Saludos.


ntext

Datos Unicode de longitud variable con una longitud


máxima de 230 - 1
(1.073.741.823) caracteres. El tamaño del


almacenamiento, en bytes, es dos
veces el número de caracteres especificado. El sinónimo


en SQL-92 para ntext
es national text.

text

Datos no Unicode de longitud variable, de la página de


códigos del servidor
y con una longitud máxima de 231-1 (2.147.483.647)


caracteres. Cuando la
página de códigos del servidor utiliza caracteres de


doble byte, el
almacenamiento sigue siendo de 2.147.483.647 bytes.


Dependiendo de la cadena
de caracteres, el espacio de almacenamiento puede ser


inferior a
2.147.483.647 bytes.


Creo que con ese tamaño de almacenamiento deberías


tener suficiente,
¿no?. Para trabajar con este tipo de datos, como lo que


vas a almacenar es
texto, no deberías tener problemas para tratarlos. Otra


cosa es para crear
ese objeto, si tienes alguna forma de instanciarlo a


partir de una cadena de
caracteres, problema solucionado



Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro

Se agradece la inclusión de sentencias DDL

Archivo de respuestas anteriores en:
http://groups.google.com/groups?hl=...mp;ie=UTF-


8&group=microsoft.public.es
..sqlserver

(Guía de netiquette del foro)
http://www.helpdna.net/bosqlfaq00.htm
http://perso.wanadoo.es/rubenvigon/foro

(FAQ's de SQL Server)
http://support.microsoft.com/default.aspx?


scid=/support/sql/70faq.asp
http://www.helpdna.net/bosqlfaq.htm

"luis" escribió en el mensaje
news:0acf01c36d52$d4f7c7a0$
Hola a todos,

necesito almacenar un archivo XML en un campo de una
tabla de mi BD. La idea inicial es almacenarlo como un
string, pero el problema es que la cadena es enorme y
supera el tipo nVarchar con mucho.
¿Qué se suele hacer en estos casos?
Imagino que se utiliza el text y nText, pero ¿cómo se
trabaja con estos tipos, que diferencia hay entre ambos?.

Tras almacenarlo en la BD he de recuperarlo de alguna
forma como "cadena" y cargarlo en un objeto DOMDocument.

Muchas gracias.
Saludos.


.

Respuesta Responder a este mensaje
#5 Carlos Sacristan
28/08/2003 - 14:13 | Informe spam
Lo he estado leyendo un poco por encima y es algo extraño, porque habla
de cosas que existen y otras que no (sp_xml_fetchdocument,
sp_xml_insertfromxml, xp_xml_removexml y sp_xml_fetchintoxml, tipo de datos
xml, etc). No sé por qué habrán publicado eso, pero desde luego no existe.

Lo que sí puedes hacer en SQL Server es manejar xml, pero siempre
pasados y devueltos como cadena de caracteres (luego él, mediante
procedimientos almacenados, lo convierte en una estructura en memoria)


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro

Se agradece la inclusión de sentencias DDL

Archivo de respuestas anteriores en:
http://groups.google.com/groups?hl=....public.es
.sqlserver

(Guía de netiquette del foro)
http://www.helpdna.net/bosqlfaq00.htm
http://perso.wanadoo.es/rubenvigon/foro

(FAQ's de SQL Server)
http://support.microsoft.com/defaul.../70faq.asp
http://www.helpdna.net/bosqlfaq.htm

"luis" escribió en el mensaje
news:09f501c36d5b$6aad7530$
Hola Carlos,

lo del tipo XML lo he leído en una web:
http://www.windowstimag.com/sqlmag/...sep00/arti
culos/XML_1.htm

aunque es posible que haya leído muy deprisa.

Por otro lado si el nText o Text se comporta como texto
(cadena string pura y dura) no hay problema y como bien
dices, el objeto DOMDocument que permite trabajar con XML
tiene un método para cargarlo a partir de un string.

Muchas gracias.
Saludos.


ntext

Datos Unicode de longitud variable con una longitud


máxima de 230 - 1
(1.073.741.823) caracteres. El tamaño del


almacenamiento, en bytes, es dos
veces el número de caracteres especificado. El sinónimo


en SQL-92 para ntext
es national text.

text

Datos no Unicode de longitud variable, de la página de


códigos del servidor
y con una longitud máxima de 231-1 (2.147.483.647)


caracteres. Cuando la
página de códigos del servidor utiliza caracteres de


doble byte, el
almacenamiento sigue siendo de 2.147.483.647 bytes.


Dependiendo de la cadena
de caracteres, el espacio de almacenamiento puede ser


inferior a
2.147.483.647 bytes.


Creo que con ese tamaño de almacenamiento deberías


tener suficiente,
¿no?. Para trabajar con este tipo de datos, como lo que


vas a almacenar es
texto, no deberías tener problemas para tratarlos. Otra


cosa es para crear
ese objeto, si tienes alguna forma de instanciarlo a


partir de una cadena de
caracteres, problema solucionado



Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro

Se agradece la inclusión de sentencias DDL

Archivo de respuestas anteriores en:
http://groups.google.com/groups?hl=...mp;ie=UTF-


8&group=microsoft.public.es
..sqlserver

(Guía de netiquette del foro)
http://www.helpdna.net/bosqlfaq00.htm
http://perso.wanadoo.es/rubenvigon/foro

(FAQ's de SQL Server)
http://support.microsoft.com/default.aspx?


scid=/support/sql/70faq.asp
http://www.helpdna.net/bosqlfaq.htm

"luis" escribió en el mensaje
news:0acf01c36d52$d4f7c7a0$
Hola a todos,

necesito almacenar un archivo XML en un campo de una
tabla de mi BD. La idea inicial es almacenarlo como un
string, pero el problema es que la cadena es enorme y
supera el tipo nVarchar con mucho.
¿Qué se suele hacer en estos casos?
Imagino que se utiliza el text y nText, pero ¿cómo se
trabaja con estos tipos, que diferencia hay entre ambos?.

Tras almacenarlo en la BD he de recuperarlo de alguna
forma como "cadena" y cargarlo en un objeto DOMDocument.

Muchas gracias.
Saludos.


.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida