• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

327
Views
PostgreSQL devuelve java.sql.Types.OTHER cuando selecciono una constante con la palabra clave AS

Cuando ejecute la selección en Postgres sobre Java

 SELECT '' AS COL1, 0 AS COL2 FROM MYTABLE 1=2;

El tipo de columna es Types.OTHER tanto para COL1 como para COL2. Como es obvio, el conjunto de resultados no tiene ninguna fila.

Pero si tengo filas en el conjunto de resultados usando la consulta a continuación:

 SELECT '' AS COL1, 0 AS COL2 FROM MYTABLE;

El tipo de COL1 sigue siendo Types.OTHER pero el tipo de COL2 es Types.INTEGER . En mi caso, necesito Types.VARCHAR y Types.INTEGER incluso si el resultado está vacío o no.

¿Hay alguna configuración en la capa de base de datos o en la URL de jdbc para obtener Types.VARCHAR y Types.INTEGER para dos consultas?

over 3 years ago · Santiago Trujillo
2 answers
Answer question

0

prueba el reparto explícito:

 SELECT ''::VARCHAR AS COL1, 0::INTEGER AS COL2 FROM MYTABLE;
over 3 years ago · Santiago Trujillo Report

0

El controlador Postgres JDBC 9.4.1212 informa el tipo de constante 0 como Types.INTEGER = 4, independientemente de si hay un resultado o no (esto también puede depender de la versión del servidor; lo probé con un servidor 9.4).

La constante de cadena aún se notifica como Types.OTHER . Para dichas columnas, ResultSetMetaData.getColumnClassName(i) devuelve java.lang.String , por lo que si encuentra Types.OTHER , puede usar esta información para reconocer la columna como una columna de caracteres.

Si desea que ResultSetMetaData devuelva el tipo deseado, tome las fuentes de Github y parchee ResultSetMetaData para hacer esta traducción.

over 3 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error