martes, 18 de diciembre de 2007

PFC: nombres, "entre comillas"

Uso pgAdminIII para administrar la base de datos de mi proyecto. Y la gestión que hago de los datos almacenados en ella esta programada en código JAVA.

En alguna ocasión tengo que recurrir al uso de alguna función o procedimiento para la gestión de estos datos. Así que usando pgAdminIII y su asistente para la creación de funciones o procedimientos es bastante sencillo crearlas.
¿Cómo accedo a la creación de éstas? Lee con atención: de la jerarquía de objetos que cuelgan de una base de datos, en el marco dónde cuelgan las base de datos que administrar, encuentra los objetos Funciones o Procedimientos (o Functions o Procedures). Al clicar con el botón derecho encima de estas... llamémoslas entradas, seleccionar la opción Nueva Función o Nuevo Procedimiento - la diferencia entre estas dos es que la primera devuelve un valor o conjunto de valores con parámetros de entrada, mientras que la segunda no devuelve nada pero trabaja con parámetros de entrada i salida -.

Al clicar sobre el nombre de la función o procedimiento, en el marco de abajo se puede ver la instrucción SQL que las crea. Observa que el nombre se halla entre comillas dobles; e aquí el problema. Porque desde JAVA no hay manera de crear un String con comillas dobles en su interior, ya que un String se delimita por comillas dobles (lector, si hay una manera de hacerlo, ¡dímelo!). Entonces ¿no se puede llamar a un procedimiento/función desde JAVA? Si se puede. Ese código SQL se puede editar, basta con copiarlo en el editor SQL (el icono de una hoja con un lápiz) de pgAdminIII y ejecutarlo desde el mismo editor - se puede crear una Función o Procedimiento sin necesidad de asistente -. En el editor le quitamos las comillas dobles al nombre y tenemos creada la función con un nombre accesible desde JAVA.

1 comentario:

Francesc dijo...

Claro que se puede introducir las " en un string dentro de java. Para ello únicamente debes introducir \" donde se deba situar las comillars. El uso de \ en strings (tanto en java com en c#) permite introducir los carácteres reservados.