Skip to content

[R-es] PROBLEMAS NOMBRES DE COLUMNAS CON ESPACIOS CONEXION R-SQL

4 messages · Ana Jimenez Rebollo, Javier Nieto, Javier Marcuzzi +1 more

#
Buenas tardes,

Estoy tratando de realizar un update en SQL desde R:
sqlUpdate(conexion1, data.frame(AUXILIAR), tablename = "AUXILIAR")

y me devuelve el siguiente error:
*Error in sqlUpdate(conexion1, data.frame(AUXILIAR), tablename =
"AUXILIAR",  : *
*  data frame column(s) Corteoptimo Cortediario not in database table*

El problema es que sí existen esas columnas en SQL pero parece que R está
almacenando internamente los nombres sin espacios ya que si ejecuto la
función names en R para el data.frame AUXILIAR (que es con el que quiero
actualizar en R):
names(AUXILIAR)
 [1] "Date"                    "Time"                    "Seasson"
       "TimeH"                   "Day"                     "Holiday"

 [7] "Corte optimo"            "Corte diario"

Y si obtengo los nombres de la tabla SQL:
sqlColumns(conexion1, "AUXILIAR")
TABLE_CAT TABLE_SCHEM TABLE_NAME COLUMN_NAME
OS MKOnline dbo AUXILIAR Date
OS MKOnline dbo AUXILIAR Time
OS MKOnline dbo AUXILIAR Seasson
OS MKOnline dbo AUXILIAR TimeH
OS MKOnline dbo AUXILIAR Day
OS MKOnline dbo AUXILIAR Holiday
OS MKOnline dbo AUXILIAR Corte optimo
OS MKOnline dbo AUXILIAR Corte diario


Los nombres son idénticos por lo que intuyo que el problema viene en el
nombre almacenado internamente. He probado a renombrar las columnas del
data.frame sustituyendo los espacios por puntos y por guiones bajos pero me
devuelve el mismo error.
PD: El data.frame con el que quiero actualizar en SQL y la tabla llevan el
mismo nombre, siento si eso lleva a algún tipo de confusión.
¿Alguna sugerencia?

Muchas gracias de antemano.

Saludos,
AJR.
#
Hola Ana

Seguramente, como dices, es problema de los nombres internos. Sucede que lo habitual y como buena pr?ctica los nombres de los campos no deben llevar espacios ni caracteres como acentos o la letra ?. Mi sugerencia es que cambies los nombres con espacios a nombres sin espacios.


Saludos
#
Estimada Ana Rebollo

Intente algo simple, str(datos) y compare los nombres de R con los de sql
en la base de datos, lo ideal es que coincidan, es mucho más simple, la
segunda alternativa es leer como se generan los códigos SQL (INSERT ?..),
esto complica un poco el trabajo pero también es posible.

Javier Rubén Marcuzzi

El mar., 16 abr. 2019 a las 11:59, Javier Nieto (<mac_javi en hotmail.com>)
escribió:

  
  
#
Hola Ana,
Lo que ocurre es que ?Corteoptimo? es diferente a ?Corte optimo?. Lo mismo
ocurre con ?Cortediairo?.  Por eso no reconoce que existen.
Saludos,
Jorge.-

El El mar, 16 de abr. de 2019 a las 8:56 a. m., Ana Jimenez Rebollo <
anajim03 en gmail.com> escribió: