Oracle - Sintaxis nombres tablas y columnas

 
Vista:

Sintaxis nombres tablas y columnas

Publicado por Menfis (2 intervenciones) el 05/07/2007 10:54:38
Hola:

Necesito una ayuda. Me han pedido migrar una base de datos access a Oracle pero he visto que los nombre de las tablas y las columnas van con blancos y con acentos. Mi pregunta es ¿oracle acepta eso? ¿hay alguna version de oracle que lo aguante?.

Saludos y gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Sintaxis nombres tablas y columnas

Publicado por Rodolfo Reyes (445 intervenciones) el 05/07/2007 18:07:02
El manejador de la base de datos como tal si te deja crear nombres de tablas y campos con espacios en blanco y tildes. Pero no te lo recomiendo para nada, porque por experiencia propia te puede decir que da muhcos problemas con los lenguajes de programación, sobre todo la parte de nombres de campos con espacios en blanco.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sintaxis nombres tablas y columnas

Publicado por Menfis (2 intervenciones) el 05/07/2007 19:22:02
Gracias Rodolfo, pero no me queda otra ya que parto de un aplicación que se hizo atando a access y ahora tiene que valer para oracle y sqlserver.

Lo que pasa es que probé con el personal Oracle 8 que lo tenía por ahí tirado desde hace años y no me dejaba. Miraré con el 9i a ver si puedo.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sintaxis nombres tablas y columnas

Publicado por Rodolfo Reyes (445 intervenciones) el 06/07/2007 17:14:01
Pues yo recuerdo que en mi trabajo alguien una vez creo una tabla en donde el nombre llevaba una tilde, y lo dejo hacerlo. Y otra vez, yo mismo cree un tabla con un nombre de campo que tenia un espacio en blanco, y tambien me dejo hacerlo, pero al tratar de hacer un select sobre esta tabla desde un lenguaje de programación, daba errores. En esa epoca utilizabamos Oracle 9i standar.

Yo te oconsejaria que crearas un par de tablas, con estas caracteristicas y las tratares de consultar desde tu aplicación, para ver si no te da problemas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sintaxis nombres tablas y columnas

Publicado por mad (88 intervenciones) el 07/07/2007 08:39:09
Yo me cargaria la tabla tal cual, posteriormente y en un procedimiento recorreria todos los registros y reemplazaria los acentos y los caracteres que no quieras preguntando por su codigo ascii y cambiandolos por el codigo ascii sin acento.

El siguiente ejemplo seria para reemplazar los acentos en mayusculas y minusculas y el simbolo ª, a estos le puedes añadir todos los codigos ascii que quieras cambiar.

Una vez cargada la(s) tabla(s):

CREATE OR REPLACE PROCEDURE REEMPLAZA_ACENTOS AS
LONGI_TEXTO NUMBER;
CADENA VARCHAR2(32000);
NUEVA_CADENA VARCHAR2(32000);
CURSOR C1 IS
SELECT *
FROM MI_NUEVA_TABLA_1
ORDER BY ID_PLANTILLA;
BEGIN
FOR Z IN C1 LOOP
NUEVA_CADENA := '';
LONGI_TEXTO := LENGTH(Z.CAMPO);
IF LONGI_TEXTO >= 1 THEN
FOR X IN 1..LONGI_TEXTO LOOP
CASE ASCII(SUBSTR(Z.CAMPO,X,1))
WHEN 231 THEN --Ó--
NUEVA_CADENA := NUEVA_CADENA||CHR(211);
WHEN 229 THEN --Í--
NUEVA_CADENA := NUEVA_CADENA||CHR(205);
WHEN 198 THEN --ó--
NUEVA_CADENA := NUEVA_CADENA||CHR(243);
WHEN 183 THEN --ñ--
NUEVA_CADENA := NUEVA_CADENA||CHR(241);
WHEN 216 THEN --í--
NUEVA_CADENA := NUEVA_CADENA||CHR(237);
WHEN 249 THEN --ª--
NUEVA_CADENA := NUEVA_CADENA||CHR(170);
WHEN 197 THEN --ª--
NUEVA_CADENA := NUEVA_CADENA||CHR(233);
WHEN 196 THEN --á--
NUEVA_CADENA := NUEVA_CADENA||CHR(225);
WHEN 213 THEN --í--
NUEVA_CADENA := NUEVA_CADENA||CHR(237);
WHEN 182 THEN --Ñ--
NUEVA_CADENA := NUEVA_CADENA||CHR(209);
WHEN 224 THEN --Á--
NUEVA_CADENA := NUEVA_CADENA||CHR(193);
WHEN 92 THEN
NUEVA_CADENA := NUEVA_CADENA||CHR(209);
ELSE
NUEVA_CADENA := NUEVA_CADENA||SUBSTR(Z.CAMPO,X,1);
END CASE;
END LOOP;
UPDATE MI_NUEVA_TABLA SET CAMPO= NUEVA_CADENA
WHERE MI_ID = Z.ID_ID;
END IF;
END LOOP;
END;
/

Espero que sea esto lo que buscas.
Salu2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

RE:Sintaxis nombres tablas y columnas

Publicado por mad (88 intervenciones) el 07/07/2007 08:46:10
Para los nombres de la tablas que llevan espacios, reemplaza el espacio por guion bajo

DECLARE

TABLA VARCHAR2(100);
BEGIN

EXECUTE IMMEDIATE ('select REPLACE(''mi tabla'','' '',''_'') FROM dual') INTO TABLA;
EXECUTE IMMEDIATE ('CREATE TABLE tabla (ID_PLANTILLA VARCHAR2 (4))');

END;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar