C/Visual C - Oracle y C

 
Vista:

Oracle y C

Publicado por Alvaro Luna (19 intervenciones) el 20/04/2007 10:04:01
Buenos.
Llevo un rato largo buscando informacion. Necesito leer desde C bajo Unix tablas de Oracle. Hay un lenguaje ProC, con un compilador que no veo como descargarlo.

Desde C quiero hacer simplemente unas lecturas a base de sentencias select, ninguna floritura. ¿Hay otra forma de leer que evite tener que bajarse un compilador para el lenguaje Proc?

Saludos
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:Oracle y C

Publicado por Alvaro Luna (19 intervenciones) el 20/04/2007 10:35:19
He encontrado este buen tutorial:
http://lawebdelprogramador.com/cursos/enlace.php?idp=1827&id=66&texto=Oracle

Pero al incluir en mi codigo C las librerias de las que habla el manual, la ocidfn.h y la ocidem.h, obtengo decenas de errores en esas librerias. Por ejemplo:
/usr/include/ocidem.h:84: error: (near initialization for `oci_func_tab[17]')
/usr/include/ocidem.h:84: error: syntax error before ')' token
/usr/include/ocidem.h:84: error: initializer element is not constant
/usr/include/ocidem.h:84: error: (near initialization for `oci_func_tab[18]')
/usr/include/ocidem.h:85: error: syntax error before ')' token
/usr/include/ocidem.h:85: error: initializer element is not constant
/usr/include/ocidem.h:85: error: (near initialization for `oci_func_tab[19]')
/usr/include/ocidem.h:85: error: syntax error before ')' token
/usr/include/ocidem.h:85: error: initializer element is not constant
/usr/include/ocidem.h:85: error: (near initialization for `oci_func_tab[20]')
/usr/include/ocidem.h:86: error: syntax error before ')' token
/usr/include/ocidem.h:86: error: initializer element is not constant
/usr/include/ocidem.h:86: error: (near initialization for `oci_func_tab[21]')
/usr/include/ocidem.h:86: error: syntax error before ')' token
/usr/include/ocidem.h:86: error: initializer element is not constant
/usr/include/ocidem.h:86: error: (near initialization for `oci_func_tab[22]')
/usr/include/ocidem.h:87: error: syntax error before ')' token
/usr/include/ocidem.h:87: error: initializer element is not constant
/usr/include/ocidem.h:87: error: (near initialization for `oci_func_tab[23]')

etc.........

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:Oracle y C

Publicado por Nelek (816 intervenciones) el 20/04/2007 16:19:32
Hola,

No recuerdo que compilador era, pero en una de las asignaturas que hice en alemania, trabajamos con Base de datos Informix y luego enlazamos con Oracle.

Los que si que recuerdo es que para compilar tenia que poner:

gcc fichero.cpp -a

(no se si eso te dira algo)

Intentare echar un vistazo a ver si aun tengo por ahi las practicas que haciamos y pone algo del compilador.
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:Oracle y C

Publicado por Alvaro Luna (19 intervenciones) el 23/04/2007 08:10:23
La opcion -a no la reconoce mi gcc(es Solaris). Sigo investigando...y mira las practicas esas si puedes.

Gracias
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:Oracle y C

Publicado por Tom (27 intervenciones) el 23/04/2007 09:51:48
El Pro/C viene con un "paquete" de desarrollo ... no sé si lo podrás bajar aislado, en general, viene con Oracle DB pero tienes que instalarlo (con OraInstall).

La otra alternativa es usar OCI, pero es un poco engorroso.
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:Oracle y C

Publicado por Alvaro Luna (19 intervenciones) el 23/04/2007 11:38:36
Hola Tom. Te cuento:

he probado tanto con el precompilador que trae oracle(llamado proc) y las librerias OCI. Usando OCI, al poner los includes me saltan decenas de errores como los que puse en el 1er o 2º mensaje de esta cuestion de oracle y c.

Haciendo con el precompilador de oracle me da el mensaje, cuando lo ejecuto sencillamente poniendo el nombre del compilador:
PCC-F-NOERRFILE, unable to open error message file, facility PR2
Es un error que en google hay decenas de personas con ese problema, probé la solucion que daban de cambiar el contenido de un fichero pcscfg.cfg que parece que es el fichero de configuracion del proc y nada...

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:Oracle y C

Publicado por Tom (27 intervenciones) el 23/04/2007 18:23:50
Hummm quizás deberías actualizar todo el paquete ...
Yo uso Oracle 9i, en Solaris, y no recuerdo haber tenido problemas con el Pro/C.

De todos modos, ese error me suena a variables de entorno ...
En mi caso, tengo /home/oracle en ORACLE_HOME,
$ORACLE_HOME/lib en el LD_LIBRARY_PATH,
$ORACLE_HOME/bin en PATH,

NLS_LANG=spanish_SPAIN.WE8ISO8859P15 (coincide con la configuración de la BD)
y locale (en el shell) a es_ES.ISO8859-1

Por cierto mi fichero $ORACLE_HOME/precomp/admin/pcscfg.cfg existe, pero está vacío.

Un directorio que deberías mirar es $ORACLE_HOME/precomp/mesg. Debe haber como unos 20 ficheros, entre .msb y .msg

Ah! y creo recordar, pero esto no es seguro, que durante la instalación se compila algo, así que es conveniente tener el compilador de C instalado y configurado mientras instalas Oracle ...
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:Oracle y C

Publicado por Alvaro Luna (19 intervenciones) el 24/04/2007 08:35:28
Gracias. Ya conseguí compilar. Efectivamente el problema estaba en variables de entorno, no tuve que cambiar configuración de ficheros. Es oracle 10 por cierto con el que estoy trabajando, sobre solaris 10.

Ahora tengo otro problema. Resulta que me compila bien el archivo.pc, generando un archivo.c. Pero cuando compilo ese archivo.c con el gcc obtengo un error de librerias:
Undefined first referenced
symbol in file
sqlcxt /var/tmp//cccEqO4z.o
ld: fatal: Symbol referencing errors. No output wr

Es un error que le da a bastante gente. En el makefile le pongo la opcion -L /opt/oracle/oracle/product/10.2.0/db_1/lib/libclntsh.so, que en esa librería se supone que hace referencia a sqlcxt. También probé con -L /opt/oracle/oracle/product/10.2.0/db_1/lib -llibclntsh.so , y con -L /opt/oracle/oracle/product/10.2.0/db_1/lib -l libclntsh.so.

¿Alguna sugerencia del makefile?

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

me respondo a mi mismo

Publicado por Alvaro Luna (19 intervenciones) el 24/04/2007 09:28:04
Ya sí me compila bien el gcc. Ha sido quitando la extension .so.

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

## Conexión C Oracle ##

Publicado por juanitodjmx (1 intervención) el 21/12/2010 15:58:45
Hola Amigo!

Hoy en día presento el mismo problema, deceo conectarme desde c a oracle, y no hay mucha información al respecto, me podrías decir paso a paso como le hiciste!

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