db2_connect conexion php db2 ibm-midrange unixodbc db2400

php - conexion - driver db2



php+unixODBC+DB2+DESCRIBE=token no es vĂ¡lido? (4)

Código que estoy tratando de ejecutar:

$query = "DESCRIBE TABLE TABLENAME"; $result = odbc_exec($h, $query);

El resultado:

Advertencia de PHP: odbc_exec (): error SQL: [unixODBC] [IBM] [controlador ODBC de iSeries Access] [DB2 UDB] SQL0104 - Token TABLENAME no era válido. Tokens válidos: INTO., SQL state 37000 en SQLExecDirect en ...

No hubo otros problemas con las consultas SELECT, INSERT, UPDATE o DELETE en la misma conexión. ¿Es esto un error de sintaxis?


Si solo necesita los nombres de las columnas, intente

select * from <TABLE> where 0 = 1

No sé cómo obtener los tipos de columnas, índices, claves, etc.


Para mí, parece que debe proporcionar una forma para que la declaración devuelva un valor "Tokens válidos: INTO" me dice eso. No he usado DESCRIBE antes, pero me imagino que devuelve algo.

SQL interactivo no permite el comando, así que no puedo ayudarte mucho más que eso.

Por cierto, agregue la etiqueta iSeries a su pregunta. Puede obtener algunas respuestas más de esa manera.


El sabor de iSeries de DB2 no admite la declaración SQL DESCRIBE. En su lugar, debe consultar la tabla del sistema:

select * from qsys2.columns where table_schema = ''my_schema'' and table_name = ''my_table''


Esta declaración solo se puede incrustar en un programa de aplicación. Es una declaración ejecutable que no se puede preparar dinámicamente. No debe ser especificado en Java.

De la referencia de iSeries DB2 SQL.