

 Amazon Redshift dejará de admitir la creación de nuevas UDF de Python a partir del parche 198. Las UDF de Python existentes seguirán funcionando hasta el 30 de junio de 2026. Para obtener más información, consulte la [publicación del blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# Diferencias entre las versiones 2.x y 1.x del controlador ODBC
<a name="odbc20-odbc10-driver-differences"></a>

En esta sección se describen las diferencias entre el [controlador ODBC 1.x](configure-odbc-connection.md) y el [controlador ODBC 2.x](odbc20-install.md), y se proporciona orientación sobre cómo migrar al controlador 2.x. En ella se describen los cambios que pueden afectar a la aplicación y cómo abordarlos.

## Diferencias clave que abordar
<a name="odbc20-migrate-key-differences"></a>

Las siguientes acciones resuelven los problemas de migración más comunes. La mayoría de las aplicaciones solo necesitan un subconjunto de estas.

### DSN y cadena de conexión
<a name="odbc20-migrate-dsn"></a>
+ **Revise el DSN para ver las opciones de controlador que podrían haberse eliminado o cambiado de nombre.** Algunas opciones del controlador ODBC 1.x no son compatibles con el controlador ODBC 2.x. Se ha cambiado el nombre de otras. Para obtener más información, consulte [Opciones de cadena de conexión y DSN](#odbc20-migrate-connection-options).
+ **Configure `UseUnicode=true` si la aplicación depende de códigos de tipos de caracteres anchos (`SQL_WVARCHAR`, `SQL_WCHAR`).** En el controlador ODBC 2.x, el valor `UseUnicode` predeterminado es `false`, que indica tipos de caracteres restringidos.
+ **Mueva la configuración de registro a la sección `[ODBC]`.** En Linux y macOS, `LogLevel` y `LogPath` se deben configurar en la sección `[ODBC]` global de `odbc.ini`, no en una sección individual de DSN.

### Consulta y esquema
<a name="odbc20-migrate-query-schema"></a>
+ **Incluya `EXTERNAL TABLE` en los filtros de tipo `SQLTables`.** En ODBC 2.x, tanto las tablas de Amazon Redshift Spectrum como las tablas de recurso compartido de datos se presentan como `EXTERNAL TABLE`. Si filtra `SQLTables` por tipo, agregue `EXTERNAL TABLE` para seguir viendo estos objetos.
+ **Convierta `INTERVAL` en `VARCHAR` para aplicaciones que no admiten el tipo de datos de intervalo.** Algunos clientes no admiten los tipos de intervalos ODBC. Para esos clientes, convierta la columna en la consulta: `SELECT col::VARCHAR FROM ...`

### Código de la aplicación
<a name="odbc20-migrate-application-code"></a>
+ **Verifique la configuración del tiempo de espera de la consulta.** ODBC 2.x aplica correctamente `SQL_ATTR_QUERY_TIMEOUT` según la especificación de ODBC. ODBC 1.x ignoró silenciosamente esta configuración. Las consultas de larga duración que antes se realizaban correctamente ahora pueden producir un error y provocar un error de tiempo de espera. Revise y ajuste los valores de tiempo de espera según sea necesario.
+ **Proporcione la longitud de los datos para los parámetros de los datos en el momento de la ejecución.** 2.x informa de `SQL_NEED_LONG_DATA_LEN` como `Y` (1.x ha informado de `N`). Las aplicaciones que enlazan parámetros `SQL_DATA_AT_EXEC` ahora deben proporcionar la longitud total de los datos por adelantado en `StrLen_or_IndPtr`.

## Opciones de cadena de conexión y DSN
<a name="odbc20-migrate-connection-options"></a>

La siguiente tabla muestra las opciones del controlador ODBC 1.x a las que se ha cambiado el nombre o que tienen equivalentes directos en el controlador ODBC 2.x.


| Opción 1.x | Equivalente en 2.x | Notas | 
| --- | --- | --- | 
| MaxLongVarChar | MaxLongVarcharSize | Se ha cambiado de forma predeterminada de 8190 a 65535. | 
| ConnectionTimeout | LoginTimeout | El mismo tiempo de espera de conexión, pero se ha cambiado el nombre. El valor predeterminado es 0 (sin tiempo de espera). | 
| VpcEndpointUrl | vpc\_endpoint\_url |  | 
| SSLCertPath | TrustStore o CaFile | Ruta a un certificado CA utilizado para verificar el servidor. En Windows, establezca esto en el campo Almacén de confianza del cuadro de diálogo de configuración de DSN; el cuadro de diálogo no tiene ningún campo CaFile. Si ambos están configurados, TrustStore tiene prioridad. | 

El controlador 2.x actual no admite las siguientes opciones de 1.x. El controlador 2.x las ignora, por lo que no afectan a la conexión. Eliminarlos del DSN es opcional, pero se recomienda eliminarlos para evitar confusiones.
+ `SingleRowMode`: para limitar la memoria del cliente, utilice `StreamingCursorRows` en su lugar.
+ `UseSystemTrustStore`: no compatible. En Windows, el controlador 1.x podía validar el certificado del servidor con el almacén de certificados del sistema de Windows. El controlador 2.x se valida con un archivo de certificado CA: utiliza el certificado raíz de Amazon Redshift agrupado de forma predeterminada o el archivo que especifique en `TrustStore` o `CaFile`.
+ `BoolsAsChar`: si la aplicación se basaba en que las columnas BOOLEANAS se devolvían como cadenas `"0"` y `"1"` (`SQL_VARCHAR`), convierta la columna en `VARCHAR` en la consulta, por ejemplo `SELECT col::VARCHAR FROM ...`.
+ `TextAsLongVarchar`, `CheckCertRevocation`, `EnableAwsSdkLogs`, `UseLogPrefix`, `Locale`, `UseDeclareFetch`, `UseMultipleStatements`, `EnforceSingleStatement`, `EnableTableTypes`: no hay equivalente en la versión actual. El equipo de Amazon Redshift está evaluando equivalentes o alternativas para estas opciones en futuras versiones.

Para obtener una lista completa de opciones de 2.x admitidas, consulte [Opciones del controlador ODBC](odbc20-configuration-options.md).

## Cambios del tipo de datos
<a name="odbc20-migrate-data-types"></a>

La siguiente tabla muestra las asignaciones de tipos de datos de Amazon Redshift que se modificaron en ODBC 2.x para cumplir con la especificación de ODBC. La mayoría de las aplicaciones no se ven afectadas porque enlazan las columnas por índice o nombre en lugar de por código de tipo.


| Tipos de datos de Amazon Redshift | ODBC 1.x | ODBC 2.x | 
| --- | --- | --- | 
| DOUBLE PRECISION | SQL\_FLOAT (6) | SQL\_DOUBLE (8) | 
| INTERVAL YEAR TO MONTH | SQL\_VARCHAR (12), texto | SQL\_INTERVAL\_YEAR\_TO\_MONTH (107), estructura de intervalos | 
| INTERVAL DAY TO SECOND | SQL\_VARCHAR (12), texto | SQL\_INTERVAL\_DAY\_TO\_SECOND (110), estructura de intervalos | 
| VARCHAR / CHAR / TEXT | Tipos anchos (SQL\_WVARCHAR, SQL\_WCHAR, SQL\_WLONGVARCHAR); de forma predeterminada UseUnicode=true | Tipos estrechos (SQL\_VARCHAR, SQL\_CHAR, SQL\_LONGVARCHAR). Se configura UseUnicode=true para restaurar tipos anchos. | 
| GEOMETRY / GEOGRAPHY (como SQL\_C\_BINARY) | Cadena ASCII codificada en hexadecimal | Bytes binarios sin procesar | 

Los valores `COLUMN_SIZE` devueltos por `SQLColumns` también cambiaron para los tipos de datos `GEOMETRY`, `GEOGRAPHY` y `SUPER`, que ahora devuelven NULL para indicar columnas sin tamaño según la especificación de ODBC. Las aplicaciones que asignan búferes en función de `COLUMN_SIZE` deben gestionar NULL con un tamaño de búfer predeterminado.

## Solución de problemas posteriores a la migración
<a name="odbc20-migrate-troubleshooting"></a>

En la siguiente tabla se describen los problemas comunes que puede encontrar después de la migración y cómo resolverlos.


| Síntoma | Causa | Solución | 
| --- | --- | --- | 
| Las tablas externas no están visibles en el navegador de esquemas | Las tablas de Spectrum y recurso compartido de datos se presentan como EXTERNAL TABLE | Incluya EXTERNAL TABLE en el tipo de filtro SQLTables. | 
| Errores de pyodbc en las columnas de intervalos | pyodbc no admite los tipos de intervalos ODBC | Convierta intervalos en VARCHAR en consultas. | 
| Los datos de los caracteres se muestran como caracteres inesperados (mojibake) | UseUnicode predeterminado cambiado a false. Las aplicaciones que esperan datos de caracteres anchos (UTF-16) pueden malinterpretar los bytes de caracteres estrechos como pares anchos y producir resultados confusos. Los datos en sí no han cambiado. | Configure UseUnicode=true en el DSN o actualice la aplicación para que enlace columnas como SQL\_C\_CHAR en lugar de SQL\_C\_WCHAR. | 
| Las consultas de larga duración devuelven errores de tiempo de espera | SQL\_ATTR\_QUERY\_TIMEOUT ahora se aplica. ODBC 1.x ignoró silenciosamente esta configuración. | Aumente o elimine QueryTimeout del DSN, o establezca SQL\_ATTR\_QUERY\_TIMEOUT en 0 en la aplicación. | 
| La configuración de SQL\_ATTR\_CURRENT\_CATALOG devuelve HY011 | El atributo no se puede establecer en una conexión abierta. No se admite el cambio de bases de datos en una conexión abierta. | Establezca el atributo antes de conectarse o cierre y vuelva a abrir la conexión en la base de datos de destino. | 
| La conexión se bloquea en entornos de doble pila | Limitación en las versiones <=2.1.16 | Actualice a 2.1.17 o versiones posteriores. | 
| El análisis de los mensajes de error arroja resultados inesperados | El formato del mensaje ha cambiado; los códigos SQLSTATE no han cambiado | Analice los códigos SQLSTATE en lugar del texto del mensaje. | 
| El enlace de parámetros de datos en el momento de la ejecución se comporta de forma diferente | SQL\_NEED\_LONG\_DATA\_LEN cambió de FALSE a TRUE; las aplicaciones que utilizan ahora SQL\_DATA\_AT\_EXEC deben proporcionar la longitud total de los datos por adelantado | Establezca el valor de longitud en StrLen\_or\_IndPtr al vincular los parámetros SQL\_DATA\_AT\_EXEC. | 
| No se han generado los registros de los controladores | LogLevel y LogPath deben estar en la sección global de [ODBC] de odbc.ini, no en las secciones de DSN individuales | Mueva la configuración de registro del DSN a la sección de [ODBC]. | 

## Actualización desde una versión anterior de ODBC 2.x
<a name="odbc20-migrate-upgrade-2x"></a>

Si ya utiliza una versión anterior de ODBC 2.x, actualice a la versión más reciente. Para obtener una lista completa de mejoras y correcciones de errores en todas las versiones, consulte el [registro de cambios del controlador ODBC de Amazon Redshift](https://github.com/aws/amazon-redshift-odbc-driver/blob/main/CHANGELOG.md) en GitHub.

## Más información
<a name="odbc20-migrate-more-info"></a>
+ [Configuración de una conexión del controlador ODBC versión 2.x para Amazon Redshift](odbc20-install.md)
+ [Opciones del controlador ODBC](odbc20-configuration-options.md)
+ [Registro de cambios del controlador de ODBC de Amazon Redshift](https://github.com/aws/amazon-redshift-odbc-driver/blob/main/CHANGELOG.md)