2008-09-30 8 views
1

code Je suis en train de courir:php + unixODBC + DB2 + DESCRIBE = jeton non valide?

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

Le résultat:

PHP Warning: odbc_exec(): SQL error: [unixODBC][IBM][iSeries Access ODBC Driver][DB2 UDB]SQL0104 - Token TABLENAME was not valid. Valid tokens: INTO., SQL state 37000 in SQLExecDirect in ...

Il n'y avait pas d'autres problèmes avec SELECT, INSERT, UPDATE ou DELETE requêtes sur la même connexion. Est-ce une erreur de syntaxe?

Répondre

0

Pour moi, il semble que vous ayez besoin de fournir un moyen pour que l'instruction retourne une valeur "Valeurs valides: INTO" me le dit. Je n'ai pas encore utilisé DESCRIBE, mais j'imagine que ça retourne quelque chose. Interactive SQL n'autorise pas la commande, donc je ne peux pas vraiment vous aider beaucoup plus loin que cela.

BTW, ajoutez le tag iSeries à votre question. Vous pourriez obtenir un peu plus de réponses de cette façon.

0

Si vous avez juste besoin les noms colonne tentent

select * from <TABLE> where 0 = 1 

Je ne sais pas comment les types de colonnes, les index, les clés, & c

5

Le goût iSeries de DB2 ne prend pas en charge la Instruction SQL DESCRIBE. , Vous avez au lieu d'interroger la table système:

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

Merci beaucoup pour cet exemple. Savez-vous aussi comment obtenir des descriptions de champs? –

1

This statement can only be embedded in an application program. It is an executable statement that cannot be dynamically prepared. It must not be specified in Java.

A partir de SQL DB2 iSeries Référence.

Questions connexes