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

nombre de columnas en minusculas

Estas en el tema de nombre de columnas en minusculas en el foro de Oracle en Foros del Web. Hola me he encontrado con el siguiente problema: Tengo un sistema que funciona en php+mysql y he tenido que realizar una migración de BD, utilicé ...
  #1 (permalink)  
Antiguo 29/05/2009, 15:31
 
Fecha de Ingreso: enero-2007
Mensajes: 97
Antigüedad: 17 años, 3 meses
Puntos: 1
nombre de columnas en minusculas

Hola me he encontrado con el siguiente problema:
Tengo un sistema que funciona en php+mysql y he tenido que realizar una migración de BD, utilicé el "ORACLE SQL Developer" para crear la BD (ya esta realizado) y resultó ser que no habia forma de crear las columnas en minúsculas.
Entonces, habrá alguna forma en que las columnas queden en minusculas?

El problema radica en que todo el sistema usa variables ejemplo así: $row['nombre'] lo que obviamente no es lo mismo que $row['NOMBRE']
  #2 (permalink)  
Antiguo 29/05/2009, 17:32
 
Fecha de Ingreso: enero-2008
Mensajes: 268
Antigüedad: 16 años, 3 meses
Puntos: 11
Respuesta: nombre de columnas en minusculas

Hola phidalgo.
Desconozco como es en php, pero en principio el que nombres a una columna en minusculas o mayusculas da igual.

EJ.

select producto from tienda = Select PRODUCTO from tienda

Imagino que funcionrá igual en php
  #3 (permalink)  
Antiguo 30/05/2009, 10:11
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: nombre de columnas en minusculas

No conozco el primer gestor de bases de datos que sea sensible a mayusculas y minusculas (Lo debe haber) pero en mysql ni en oracle tienes problemas en ese sentido.
De tal forma que cuando desde php accedes a un campo es igual $row['nombre'] que $row['NOMBRE'].

Un saludo a ambos.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #4 (permalink)  
Antiguo 30/05/2009, 11:37
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: nombre de columnas en minusculas

amigos,
por si sirve de algo os remito a un hilo en el que no hace mucho escribió sobre ello gnzsoloyo, referido entonces a MySQL.
http://www.forosdelweb.com/f86/mysql...sitive-537452/

La cosa parece que va de sistemas y variables de sistema: no digo nada más porque nada sé de Oracle.

Última edición por jurena; 30/05/2009 a las 12:54
  #5 (permalink)  
Antiguo 30/05/2009, 15:43
 
Fecha de Ingreso: enero-2007
Mensajes: 97
Antigüedad: 17 años, 3 meses
Puntos: 1
Busqueda Respuesta: nombre de columnas en minusculas

Gracias a todos por responder pero el problema no lo tengo al momento de hacer la consulta puesto que independientemente si pongo en minuscula o mayusculas el nombre de las tablas y/o columnas el resultado es el mismo.
Más especificamente supongase este método para consultar una tabla en oracle (en php pero esta sencillita de entender)
Código PHP:
public function getProveedor(){
  
$consulta=$this->db->prepare("SELECT * FROM proveedor  WHERE idprov='1' ");
  
$consulta->execute();
  if( 
$item $consulta->fetch() )
    return 
$item;            
  else
    return 
0;    

(recordar que da lo mismo las mayusculas o minusculas en la consulta)

$item ahora es un arreglo que tiene las columnas rescatadas de la consulta a la tabla proveedores, supongamos:
$item['IDPROV'] = "1"
$item['NOMBRE'] = "Juan"
$item['APELLIDO']= "Perez"

Ok, digamos que eso es lo que tengo ahora que la base de datos esta en ORACLE, el problema radica en que el codigo del sistema ocupa estos arreglos en minusculas pues en la BD antigua estaban de esa forma, por ejemplo así:
Código PHP:
<table width="95%" border="1">
  <tr>
    <td>Nombre del Proveedor:</td>
    <td><?=$item['nombre']?></td>
  </tr>
  <tr>
    <td>Apellido del Proveedor:</td>
    <td><?=$item['apellido']?></td>
  </tr>
</table>
Y en este caso no muestra los valores pues no existen estas variables

Dado esto, solo he visto 3 posibilidades:
- cambiar todas las columnas de la BD a minúsculas
- intervenir el codigo php y cambiar los arreglos a mayúsculas
- ver si alguien sabe alguna manera realizar el cambio automatico de columnas en la BD a minusculas o algo por el estilo
  #6 (permalink)  
Antiguo 30/05/2009, 17:25
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: nombre de columnas en minusculas

mira esto

http://www.forosdelweb.com/f21/nombr...oracle-243861/

Nos dices si soluciona el problema.

aca esta la referencia.
http://phplens.com/adodb/reference.c...ssoc_case.html

un saludo.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming

Última edición por huesos52; 30/05/2009 a las 17:33
  #7 (permalink)  
Antiguo 30/05/2009, 21:58
 
Fecha de Ingreso: enero-2007
Mensajes: 97
Antigüedad: 17 años, 3 meses
Puntos: 1
Respuesta: nombre de columnas en minusculas

huesos52, ya habia visto ese post y lo habia descartado porque el amigo se referia a realizar inserciones a la BD utilizando conecciones ADOBD (yo uso PDO), sin embargo, ahora que me recordaste ese posteo empeze a averiguar y llegue a la solución:

Con esta línea de código obtengo el nombre de las columnas en mínusculas:
$this->db->setAttribute(PDO::ATTR_CASE, PDO::CASE_LOWER);
($this->db es una instancia a la BD)

De esta manera, me evito cambiar a minúsculas como 200 columnas en la BD, si no que la misma instancia se encarga de esto.

Gracias a todos por responder, saludos!!!
  #8 (permalink)  
Antiguo 01/06/2009, 21:01
Avatar de kikolice  
Fecha de Ingreso: marzo-2004
Mensajes: 1.510
Antigüedad: 20 años, 1 mes
Puntos: 7
Respuesta: nombre de columnas en minusculas

aunque segun recuerdo si se puede hacer (ahorita no tengo oracle a la mano) segun yo era encerrando el nombre entre comillas (o comillas simples)

create table prueba ("columnaenminusculas" varchar2(100))

que alguien pruebe y que postee si funciona
__________________
Blogzote.com :-) Mi blog
  #9 (permalink)  
Antiguo 01/06/2009, 21:07
 
Fecha de Ingreso: enero-2007
Mensajes: 97
Antigüedad: 17 años, 3 meses
Puntos: 1
Respuesta: nombre de columnas en minusculas

Si se puede, al menos yo uso el Oracle SQL Developer y colocando entre comillas respeta minúsculas y/o CoMbInAcIóN cOn MaYúScUlAs. Solo era que no queria cambiar más de 200 columnas en la BD que me habian quedado en mayúsculas.
Con la línea de código que mencioné lo solucioné, gracias a todos, salu2.
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.
Respuesta




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