Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

[SOLUCIONADO] Nombres de campos y variables iguales en oracle

Estas en el tema de Nombres de campos y variables iguales en oracle en el foro de Oracle en Foros del Web. Soy nuevo en oracle y tengo una duda: Si tengo una tabla en la base de datos y declaro un PL/SQL ¿Puedo poner nombres de ...
  #1 (permalink)  
Antiguo 19/06/2013, 12:08
 
Fecha de Ingreso: enero-2009
Ubicación: Kandor
Mensajes: 209
Antigüedad: 15 años, 2 meses
Puntos: 11
Pregunta Nombres de campos y variables iguales en oracle

Soy nuevo en oracle y tengo una duda: Si tengo una tabla en la base de datos y declaro un PL/SQL ¿Puedo poner nombres de las variables del PL con el mismo nombre que los campos de la tabla? Si es asi como es que oracle resuelve las desambiguaciones?? Espero me puedan apoyar saludos
  #2 (permalink)  
Antiguo 19/06/2013, 12:17
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Nombres de campos y variables iguales en oracle

Si se puede.
Pero como buena practica de programación no es recomendable.
Normalmente en mi caso suelo utilizar para variables numericas vn_nombre_campo, Para varchar vv_nombre_campo y para tipo date vd_nombre_campo.

De esta forma se de que campo estoy hablando y visualmente se que tipo de variable tengo declarada.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 19/06/2013, 12:30
 
Fecha de Ingreso: enero-2009
Ubicación: Kandor
Mensajes: 209
Antigüedad: 15 años, 2 meses
Puntos: 11
Respuesta: Nombres de campos y variables iguales en oracle

pero no sabes como oracle realiza dicha desambiguacion??? Supongamos que tengo una ventana la cual al cargar ejecuta un SP que regresa un cursor con un campo "nombre_campo" y ese campo se usa para llamar otro SP donde dicho campo se llama "v_nombre_campo". El framework que estoy usando (propio de mi empresa) me pide que estos nombres sean iguales, por eso veo mas viable hacerlo en oracle aunque no sea una buena practica de programacion, pero desconozco dichas reglas de desambiguación. ¿conoces dichas reglas, para que me las puedas explicar? por favor, se agradece
  #4 (permalink)  
Antiguo 19/06/2013, 12:38
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Nombres de campos y variables iguales en oracle

Hola abrahamhs

Oracle no es un producto free.
La forma como realiza sus operaciones son en muchas ocasiones una caja negra.

Depronto un guru por estos lados te diga algo.

De igual forma, independiente de como lo haga oracle, para que requieres saber como lo hace?
Lo importante es que te deje usar esta forma. no?
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 19/06/2013, 12:46
 
Fecha de Ingreso: enero-2009
Ubicación: Kandor
Mensajes: 209
Antigüedad: 15 años, 2 meses
Puntos: 11
Respuesta: Nombres de campos y variables iguales en oracle

Así es, lo importante es que si lo hace, pero necesito un ejemplo. ¿Que sintaxis debo utilizar para hacerlo y que no me haga cosas extrañas? Esa es mi pregunta, lo que pasa es que soy nuevo en oracle. Solo pido un ejemplo
  #6 (permalink)  
Antiguo 19/06/2013, 13:23
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Nombres de campos y variables iguales en oracle

Código SQL:
Ver original
  1. DECLARE
  2. employee_id NUMBER;
  3. BEGIN
  4. SELECT employee_id INTO employee_id FROM employees WHERE employee_id=101;
  5. dbms_output.put_line('valor: '||employee_id);
  6. END;
  7. /

Como puedes ver, el campo de la tabla se llama employee_id y la variable donde voy a almacenar el valor también se llama employee_id.
Si ejecutas este script en el esquema HR (Human resource) por defecto en las instalaciones de oracle verás que no tiene problema alguno.

O bien, lo puedes hacer con algunos datos de tablas tuyas.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #7 (permalink)  
Antiguo 19/06/2013, 15:46
 
Fecha de Ingreso: enero-2009
Ubicación: Kandor
Mensajes: 209
Antigüedad: 15 años, 2 meses
Puntos: 11
Respuesta: Nombres de campos y variables iguales en oracle

ok muchas gracias
  #8 (permalink)  
Antiguo 24/06/2013, 11:47
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 16 años, 5 meses
Puntos: 85
Respuesta: Nombres de campos y variables iguales en oracle

Este es un caso donde no funciona:

Código:
SQL> select * from t1;

        ID
----------
         1
         2

SQL> 
  1  declare
  2  id number(8):=1;
  3  begin
  4  select count(id) into id from t1 where id = id;
  5  dbms_output.put_line(to_char(id));
  6* end;
2

PL/SQL procedure successfully completed.
El into id funciona bien, pero el where id=id se resuelve como campo id = campo id y no como campo id = variable id, por lo tanto nunca deberías declarar las variables con el mismo nombre que los campos.

Saludos

Etiquetas: campos, iguales, nombres, pl-sql, tabla, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 06:26.