Ir al contenido principal

Comparación de campos tipo NCHAR

Normalmente cuando se compara cadenas con campos del tipo NCHAR, se muestra el error:
ORA-12704: character set mismatch
O en español:
ORA-12704: no coincide el juego de caracteres

Para evitar este error se puede usar la función CSCONVERT cuya sintaxis es:
CSCONVERT(cadena,'NCHAR_CS')

Donde cadena es el valor que se quiere pasar a NCHAR. Veamos un ejemplo:

Tenemos la tabla TABLA_NCHAR que tiene un solo campo tipo NCHAR:

create table TABLA_NCHAR
(
CAMPO_NCHAR NCHAR(25)
)

Si intentamos hacer el siguiente query:

select campo_nchar from tabla_nchar
UNION
SELECT 'TODOS LOS VALORES' FROM DUAL;

select campo_nchar from tabla_nchar
UNION
SELECT 'TODOS LOS VALORES' FROM DUAL

ORA-12704: character set mismatch


Se mostrará el error indicado al inicio de este blog, pero si se usa la funcion el query funcionará correctamente:

SQL> select campo_nchar from tabla_nchar
2 UNION
3 SELECT CSCONVERT('TODOS LOS VALORES','NCHAR_CS') FROM DUAL;

CAMPO_NCHAR
--------------------------------------------------
TODOS LOS VALORES
VALOR 001
VALOR 002

Comentarios

  1. Genial!!!
    Gracias, me sirvió, jajajaja, aún 4 años después de esta publicación

    ResponderEliminar
  2. Un acierto la solución, me ayudó un montón ahora, en Oracle 10g, Julio 2014.

    Saludos

    ResponderEliminar
  3. Gracias por la solución, sigue siendo muy últil en Mayo de 2015

    ResponderEliminar
  4. Lo mismo digo, muchas gracias.

    ResponderEliminar
  5. perfecto.. mil gracias por tu aporte..

    ResponderEliminar
  6. bueno es 2019 y gracias me sirvio!!

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

REST Client para Visual Studio Code

Extensión para usar request HTTP y CURL desde VSC Si deseas probar las invocaciones a api rest, sin usar herramientas como postman, desde Visual Studio Code, puedes instalar la extension REST Client Para poder usarlo, puedes crear un archivo con extensión rest o http, y con esto, de manera automática se va a tener el resaltado de sintaxis, tanto para el Request como para el Response , autocompletado de palabras clave y se van a mostrar el link "Send Request" sobre el request, en mi caso, probé con formato HTTP y CURL para HTTP, ejemplos con GET y POST GET https://petstore.swagger.io/v2/store/inventory POST https://petstore.swagger.io/v2/pet/1 Content-Type: application/x-www-form-urlencoded { "name":"Candy", "status":"active" } Para incluir varios request se debe usar una línea con la cadena siguiente: ###, como separador : Adicionalmente se puede definir variables con la siguiente sintaxis...

Leer Ñ en archivos desde Java

Siempre se me ha presentado este problema, cada vez que leo un archivo desde java, y este contiene caracteres como la Ñ, estos son tomado como símbolos raros: Voy a mostrar el código que ocasiona esta distorsión, el archivo "D:\temporal\prueba.txt", cuyo contenido es: PAÑALES DESCARTABLES ÚTILES DE LIMPIEZA VINO AÑEJO Y el código es el siguiente: import java.io.*; /** * * @author mzavaleta */ public class TestÑ { /** * @param args the command line arguments */ public static void main(String[] args) throws FileNotFoundException, IOException { // TODO code application logic here FileInputStream fis = new FileInputStream("D:/temporal/prueba.txt"); InputStreamReader is = new InputStreamReader(fis); BufferedReader bf = new BufferedReader(is); String linea; while ((linea = bf.readLine()) != null) { System.out.println(linea); } bf.close(); ...