Gracias por tu visita y participar en este curso, si te gusta por favor subscríbete, dame tu like y comparte para seguir creciendo y publicando mas lecciones, esto me ayudaría mucho. Tambien para recibir las notificaciones de las nuevas lecciones que iré subiendo paulatinamente CONTACTO: informaticonfig@gmail.com COLABORACION: paypal.me/informaticonfig patreon.com/informaticonfig
Hola a todos Para solucionar el error de quienes intentan cargar los datos desde archivos ".csv" les dejo la solución que me ha funcionado, en vez de usar "with (firstrow = 2);" usen en siguiente comando: with (format = 'csv', firstrow = 2, fieldterminator = ',', rowterminator = '0x0a'); Saludos maestro @informaticonfig333 y muchas gracias por su contenido !!!
Hola, a mi no me salio con eso, me seguia saliendo "(0 rows affected)" 😧. pero pude encontrar una solución que me funciono. Por si alguno también le sigue fallando aun asi conviertiendo el xlxs a csv, me ayudo el siguiente comando: WITH (FORMAT = 'CSV', FIRSTROW=2, FIELDQUOTE = '\', FIELDTERMINATOR = ';', ROWTERMINATOR = '0x0a') bueno a mi solo me faltaba el FIELDQUOTE, aun asi tu respuesta me guio y ayudo. 😅
Hola a todos!!! para los que tengan el problema de no poder cargar desde el xlsx, necesitan abrir su archivo xlsx (libro de excel) y luego: Archivo > Guardar como > CSV (delimitado por comas) (*.csv) > guardar Y ahora si, intentan el bulk insert. Yo usé esta query y si funcionó: bulk insert #basepedidos from 'C:\... tu ruta de archivo...\basepedidos.csv' with (format = 'csv', firstrow = 2, fieldterminator=',', - - significa que cada campo en una fila está separado por una coma. rowterminator='0x0a') - - significa que cada fila termina con un salto de línea. ( ) Tiene que funcionar!! Saludos! PD GRANDE informaticonfig333 🙌🏽
Acá dejo parte de la respuesta de la IA Copilot la cual me parece muy acertada: "SQL Server no puede leer directamente archivos .xlsx para un bulk insert. Primero necesitarás convertir tu archivo Excel a un formato de texto plano como .csv o .txt" Coincide con el error que me esta ocurriendo a mi y a muchos otros compañeros.
Buenas a todos, saludos profesor, el problema que todos están teniendo radica en el tipo de archivo xlsx, dado que al hacer un BULK INSERT no soporta archivos Excel (.xlsx), solo soporta archivos de texto (.csv) o (txt) de esa forma es que pude hacer el volcado de datos a mi tabla temporal y seguir trabajando, un método alternativo de inserción de datos para hacerlo un poco mas interesante seria utilizar el proveedor OPENROWSET para tener acceso a las tablas de un servidor vinculado. Saludos.
Hola profesor, tengo el mismo problema que han tenido los otros compañeros de los comentarios, al momento de volcar los datos de la tabla de excel me dice 0 filas afectadas, pero con el archivo txt si funciona todo perfecto. voy a tratar de buscar yo por mi parte a ver que puede estar pasando
Profe tengo el mismo problema de los demás, cuando intento subir el archivo excel. Probé cambiando todos los formatos , de todas las formas, pero no me funciona. solo me funciona si paso al archivo en formato txt.
hola User, he estado intentando verificar el problema y aún no doy con la causa, a mi no me falla asi que asumo que el problema es del archivo que compartí , por el momento sigo viendo que puede estar pasando para corregir el problema con ese archivo. Disculpen los inconvenientes.
Abre Power BI Desktop. Ve a la pestaña Inicio y selecciona Obtener datos > Más.... En la ventana emergente, selecciona Carpeta y haz clic en Conectar. En la siguiente ventana, selecciona la carpeta donde se encuentran los archivos TXT y haz clic en Aceptar.
Hola equipo se me presenta una duda, si creo una tabla temporal, como se ve en la explicacion, esta queda fijada en esa hoja de consulta, es decir si creo una nueva hoja, me va permitir realizar consultas sobre esa tabla temporal ? o debo crear en cada hoja de consulta la tabla temporar para trabajar sobre la tabla..? Saludos.
He intentado cambiar la extension del archivo excel de "xlsx" a "csv" y ni así se pueden descargar los registros con el BULK INSERT, he buscado mas informacion y muchos dicen q no se puede y solo con la extensión "txt", pero sino fuera por el video q estoy viendo les creeria, q alguien me explique q pasa
Hola disuclpa es que sucede que al momento de ejecutar me sale 0 filas afectadas cuando utilizo el xlsx, pero cuando utilizo el txt si funciono, me gustaría saber a que se debe este problema ya que no siempre podre tener a disposición un txt con la información
hola User, si te funciona el txt indica que los registros estan correctos y el problema es con el formato del archivo, verifica el formato de las celdas de tu excel para que coincida con el tipo de dato de cada campo de la tabla. Espero te sirva.
@@informaticonfig333 Hola, me esta pasando los mismo que el compañero user, al momento de ejecutar me sale 0 filas afectadas cuando utilizo el xlsx y ya verifique el formato de las celdas de mi excel para que coincida con el tipo de dato de cada campo de la tabla, pero no me ha funcionado, me puedes ayudar por favor.
@@richardramon7128 hola Richard aún no logro dar con la causa del problema, por favor intenta crear una tabla y crea el excel con tus propios datos y haz el bulk a ver si te da el mismo error.
Buenas! Me funcionó para el TXT, pero no así para el Excel. Por las dudas les estuve formateando bien las columnas pero aún así me indica que se agregan 0 filas. Consulta.. Lo de que haya un proceso que cargue todos los días los excels o csv, se hace desde SQL Server o desde SISS? Saludos
Amigo, y como le hago para que antes de pegar toda la info descarte filas? Problema tengo fechas donde tengo una fecha en filas, pero tengo filas que tienen dos flechas en una ej. 2023-10-03 - 2023-10-26 Quiero que omita las filas donde contenga ese "-" Es posible y como hacerlo?
Me salen estos errores cuando quiero ejecutarlo para archivos de excel (xlsx) Msg 4864, Level 16, State 1, Line 14 Bulk load data conversion error (type mismatch or invalid character for the specified codepage) for row 2, column 1 (idDt). Msg 4864, Level 16, State 1, Line 14 Bulk load data conversion error (type mismatch or invalid character for the specified codepage) for row 3, column 1 (idDt). Msg 4864, Level 16, State 1, Line 14 Bulk load data conversion error (type mismatch or invalid character for the specified codepage) for row 4, column 1 (idDt). Msg 4832, Level 16, State 1, Line 14 Bulk load: An unexpected end of file was encountered in the data file. Msg 4864, Level 16, State 1, Line 14 Bulk load data conversion error (type mismatch or invalid character for the specified codepage) for row 5, column 1 (idDt). Msg 7399, Level 16, State 1, Line 14 The OLE DB provider "BULK" for linked server "(null)" reported an error. The provider did not give any information about the error. Msg 7330, Level 16, State 2, Line 14 Cannot fetch a row from OLE DB provider "BULK" for linked server "(null)". Mas si funciona cuando hago lo propio con archivos csv
Ah, y para los que les salga este error: Msg 512, Level 16, State 1, Line 3 Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, = or when the subquery is used as an expression. Msg 2714, Level 16, State 6, Line 6 There is already an object named '#dt' in the database. Hagan este cambio en el if if exists (select name from tempdb.sys.tables where name like '%#nombreTabla%') Y lo demás está sigue tal cuál. Aunque esto lo hice para archivos csv.
Buenas tardes, disculpe una pregunta, al momento de ejecutar toda la instruccion de la tabla temporal , me dice que tengo 0 filas afectadas, ya revise que el nombre y la ruta del archivo sean los correctos y no entiendo porque no me ejecuta correctamente la sentencia, espero y me pueda ayudar porfavor: Mi codigo lo puse de esta manera: if (select name from tempdb.sys.tables) like '%#basepedidos%' drop table #basepedidos create table #basepedidos( CodigoPedido varchar(100) not null, DocumentoCliente varchar(100) not null, CodigoCiudad int null, CodigoProducto varchar(100) null, CantidadProducto int, FechaPedido date, HoraPedido time ); bulk insert #basepedidos from 'C:\Users\1GR11LLA_RS4\Downloads\basepedidos.xlsx' with (firstrow = 2)
@@informaticonfig333 hola, es que de echo estoy teniendo difiultad en las tablas temporales, me salen errores en el codigo , no me funciona el de excel, ni tampoco el archivo txt espero me pueda apoyar de favor, de echo copie el codigo tal cual y puse las ubicaciones de los archivos tal cual y no me funciono :(
Hola profe. no me sirvio est if (select name from tempdb.sys.tables) like '%#basepedidos%' drop table #basepedidos me salta este error;: Msg 512, Level 16, State 1, Line 1 Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, = or when the subquery is used as an expression.
Hola, quizás es porque tenías más de una tabla temporal activa al momento de ejecutar el código, me pasó igual cuando estaba haciendo pruebas en éste ejercicio. Si eliminas las tablas temporales tal que solo esté la de éste ejercicio, se resuelve el problema.
Gracias por tu visita y participar en este curso, si te gusta por favor subscríbete, dame tu like y comparte
para seguir creciendo y publicando mas lecciones, esto me ayudaría mucho.
Tambien para recibir las notificaciones de las nuevas lecciones que iré subiendo paulatinamente
CONTACTO: informaticonfig@gmail.com
COLABORACION: paypal.me/informaticonfig
patreon.com/informaticonfig
Hola a todos
Para solucionar el error de quienes intentan cargar los datos desde archivos ".csv" les dejo la solución que me ha funcionado, en vez de usar "with (firstrow = 2);"
usen en siguiente comando:
with (format = 'csv',
firstrow = 2,
fieldterminator = ',',
rowterminator = '0x0a');
Saludos maestro @informaticonfig333 y muchas gracias por su contenido !!!
Hola, a mi no me salio con eso, me seguia saliendo "(0 rows affected)" 😧. pero pude encontrar una solución que me funciono. Por si alguno también le sigue fallando aun asi conviertiendo el xlxs a csv, me ayudo el siguiente comando:
WITH (FORMAT = 'CSV', FIRSTROW=2, FIELDQUOTE = '\', FIELDTERMINATOR = ';', ROWTERMINATOR = '0x0a')
bueno a mi solo me faltaba el FIELDQUOTE, aun asi tu respuesta me guio y ayudo. 😅
Gracias! Solo como nota, me seguía marcando error hasta que quite la parte " rowterminator = '0x0a' ".
Hola a todos!!! para los que tengan el problema de no poder cargar desde el xlsx, necesitan abrir su archivo xlsx (libro de excel) y luego: Archivo > Guardar como > CSV (delimitado por comas) (*.csv) > guardar
Y ahora si, intentan el bulk insert.
Yo usé esta query y si funcionó:
bulk insert #basepedidos
from 'C:\... tu ruta de archivo...\basepedidos.csv'
with (format = 'csv',
firstrow = 2,
fieldterminator=',', - - significa que cada campo en una fila está separado por una coma.
rowterminator='0x0a') - - significa que cada fila termina con un salto de línea. (
)
Tiene que funcionar!! Saludos!
PD
GRANDE informaticonfig333 🙌🏽
Acá dejo parte de la respuesta de la IA Copilot la cual me parece muy acertada:
"SQL Server no puede leer directamente archivos .xlsx para un bulk insert. Primero necesitarás convertir tu archivo Excel a un formato de texto plano como .csv o .txt"
Coincide con el error que me esta ocurriendo a mi y a muchos otros compañeros.
si es así, esta norma debió actualizarse recientemente.
Buenas a todos, saludos profesor, el problema que todos están teniendo radica en el tipo de archivo xlsx, dado que al hacer un BULK INSERT no soporta archivos Excel (.xlsx), solo soporta archivos de texto (.csv) o (txt) de esa forma es que pude hacer el volcado de datos a mi tabla temporal y seguir trabajando, un método alternativo de inserción de datos para hacerlo un poco mas interesante seria utilizar el proveedor OPENROWSET para tener acceso a las tablas de un servidor vinculado. Saludos.
gracias Alfonso
Gracias por tu conocimiento
siempre
Hola y si quisiera que omitiera la carga de la última fila de la tabla en lugar de la primera como sería en mysql
hola Angel, para eso se requiere una consulta mas avanzada que mas adelante veremos.
Hola profesor, tengo el mismo problema que han tenido los otros compañeros de los comentarios, al momento de volcar los datos de la tabla de excel me dice 0 filas afectadas, pero con el archivo txt si funciona todo perfecto.
voy a tratar de buscar yo por mi parte a ver que puede estar pasando
Profe tengo el mismo problema de los demás, cuando intento subir el archivo excel. Probé cambiando todos los formatos , de todas las formas, pero no me funciona. solo me funciona si paso al archivo en formato txt.
hola User, he estado intentando verificar el problema y aún no doy con la causa, a mi no me falla asi que asumo que el problema es del archivo que compartí , por el momento sigo viendo que puede estar pasando para corregir el problema con ese archivo.
Disculpen los inconvenientes.
Amigo, y si tengo como 20 archivos txt en la carpeta y quiero que los cargue todos, cómo realizarlo?, ojala puedas ayudarme
Abre Power BI Desktop.
Ve a la pestaña Inicio y selecciona Obtener datos > Más....
En la ventana emergente, selecciona Carpeta y haz clic en Conectar.
En la siguiente ventana, selecciona la carpeta donde se encuentran los archivos TXT y haz clic en Aceptar.
Hola equipo se me presenta una duda, si creo una tabla temporal, como se ve en la explicacion, esta queda fijada en esa hoja de consulta, es decir si creo una nueva hoja, me va permitir realizar consultas sobre esa tabla temporal ?
o debo crear en cada hoja de consulta la tabla temporar para trabajar sobre la tabla..?
Saludos.
la tabla temporal que crees, solo estará disponibloe mientras tengas tu sesion de usuario activa, cuando te desconectes, la tabla desaparece.
Buen dia, al ingresar el comando BULK me aparece como invalido, como lo puedo solucionar?
hola Juan, verifica si estas colocando la sintaxis correctamente.
He intentado cambiar la extension del archivo excel de "xlsx" a "csv" y ni así se pueden descargar los registros con el BULK INSERT, he buscado mas informacion y muchos dicen q no se puede y solo con la extensión "txt", pero sino fuera por el video q estoy viendo les creeria, q alguien me explique q pasa
hola Erik, estoy investigando en foros si tal vez es por la version de Excel, has probado con otra hoja de calculo como LIbre Office u Open Office?
@@informaticonfig333 No he probado con otras hojas de cálculo, intentaré probarlo. Gracias por el video
Hola disuclpa es que sucede que al momento de ejecutar me sale 0 filas afectadas cuando utilizo el xlsx, pero cuando utilizo el txt si funciono, me gustaría saber a que se debe este problema ya que no siempre podre tener a disposición un txt con la información
hola User, si te funciona el txt indica que los registros estan correctos y el problema es con el formato del archivo, verifica el formato de las celdas de tu excel para que coincida con el tipo de dato de cada campo de la tabla. Espero te sirva.
@@informaticonfig333 Hola, me esta pasando los mismo que el compañero user, al momento de ejecutar me sale 0 filas afectadas cuando utilizo el xlsx y ya verifique el formato de las celdas de mi excel para que coincida con el tipo de dato de cada campo de la tabla, pero no me ha funcionado, me puedes ayudar por favor.
@@richardramon7128 hola Richard aún no logro dar con la causa del problema, por favor intenta crear una tabla y crea el excel con tus propios datos y haz el bulk a ver si te da el mismo error.
@@informaticonfig333 Hola @informaticonfig333 , Si ,aunque cree otra tabla de diferentes valores con el formato excel(xlsx) :,v
Buenas! Me funcionó para el TXT, pero no así para el Excel. Por las dudas les estuve formateando bien las columnas pero aún así me indica que se agregan 0 filas. Consulta.. Lo de que haya un proceso que cargue todos los días los excels o csv, se hace desde SQL Server o desde SISS? Saludos
hola Gonza, me explicas que es SISS? gracias
@@informaticonfig333 Me confundí, es SSIS.. SQL SERVER INEGRATION SERVICES
Amigo, y como le hago para que antes de pegar toda la info descarte filas?
Problema tengo fechas donde tengo una fecha en filas, pero tengo filas que tienen dos flechas en una ej. 2023-10-03 - 2023-10-26
Quiero que omita las filas donde contenga ese "-"
Es posible y como hacerlo?
Saludos Oscar, pronto venimos con la seccion avanzada del curso donde aprenderemos a formatear archivos para esa función
@@informaticonfig333 estaré a la espera amigazo!
Me salen estos errores cuando quiero ejecutarlo para archivos de excel (xlsx)
Msg 4864, Level 16, State 1, Line 14
Bulk load data conversion error (type mismatch or invalid character for the specified codepage) for row 2, column 1 (idDt).
Msg 4864, Level 16, State 1, Line 14
Bulk load data conversion error (type mismatch or invalid character for the specified codepage) for row 3, column 1 (idDt).
Msg 4864, Level 16, State 1, Line 14
Bulk load data conversion error (type mismatch or invalid character for the specified codepage) for row 4, column 1 (idDt).
Msg 4832, Level 16, State 1, Line 14
Bulk load: An unexpected end of file was encountered in the data file.
Msg 4864, Level 16, State 1, Line 14
Bulk load data conversion error (type mismatch or invalid character for the specified codepage) for row 5, column 1 (idDt).
Msg 7399, Level 16, State 1, Line 14
The OLE DB provider "BULK" for linked server "(null)" reported an error. The provider did not give any information about the error.
Msg 7330, Level 16, State 2, Line 14
Cannot fetch a row from OLE DB provider "BULK" for linked server "(null)".
Mas si funciona cuando hago lo propio con archivos csv
si al parecer el problema debe ser de mi archivo, a varios les ha pasado, por favor usa uno personal, disculpa los inconvenientes.
Ah, y para los que les salga este error:
Msg 512, Level 16, State 1, Line 3
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, = or when the subquery is used as an expression.
Msg 2714, Level 16, State 6, Line 6
There is already an object named '#dt' in the database.
Hagan este cambio en el if
if exists (select name from tempdb.sys.tables where name like '%#nombreTabla%')
Y lo demás está sigue tal cuál. Aunque esto lo hice para archivos csv.
Buenas tardes, disculpe una pregunta, al momento de ejecutar toda la instruccion de la tabla temporal , me dice que tengo 0 filas afectadas, ya revise que el nombre y la ruta del archivo sean los correctos y no entiendo porque no me ejecuta correctamente la sentencia, espero y me pueda ayudar porfavor: Mi codigo lo puse de esta manera:
if (select name from tempdb.sys.tables) like '%#basepedidos%'
drop table #basepedidos
create table #basepedidos(
CodigoPedido varchar(100) not null,
DocumentoCliente varchar(100) not null,
CodigoCiudad int null,
CodigoProducto varchar(100) null,
CantidadProducto int,
FechaPedido date,
HoraPedido time
);
bulk insert #basepedidos
from 'C:\Users\1GR11LLA_RS4\Downloads\basepedidos.xlsx'
with (firstrow = 2)
hola. dime si te funcionó el bulk insert con el archivo .txt?
@@informaticonfig333 hola, es que de echo estoy teniendo difiultad en las tablas temporales, me salen errores en el codigo , no me funciona el de excel, ni tampoco el archivo txt espero me pueda apoyar de favor, de echo copie el codigo tal cual y puse las ubicaciones de los archivos tal cual y no me funciono :(
@@lalitocf me puedes mandar tus capturas de tu error a informaticonfig@gmail.com
@@informaticonfig333 gracias, listo ya le mandé mensaje a su correo con capturas de pantalla
Hola profe. no me sirvio est if (select name from tempdb.sys.tables) like '%#basepedidos%'
drop table #basepedidos
me salta este error;:
Msg 512, Level 16, State 1, Line 1
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, = or when the subquery is used as an expression.
Hola, quizás es porque tenías más de una tabla temporal activa al momento de ejecutar el código, me pasó igual cuando estaba haciendo pruebas en éste ejercicio. Si eliminas las tablas temporales tal que solo esté la de éste ejercicio, se resuelve el problema.