php + unixODBC + DB2 + = geçerli değil belirteç DESCRIBE?

4 Cevap php

Ben çalıştırmak için çalışıyorum Kodu:

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

Sonuç:

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 ...

Orada SELECT, INSERT, UPDATE ile başka hiçbir sorunları vardı veya aynı bağlantıda sorguları SİL. Bu bir yazım hatası mı?

4 Cevap

DB2 iSerisi lezzet SQL deyimini DESCRIBE desteklemiyor. Bunun yerine, sistem tablosu sorgulamak zorunda:

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

Bu ifade sadece bir uygulama programı gömülü olabilir. Bu dinamik olarak hazırlanır edilemez bir yürütülebilir ifadedir. Java ile belirtilmesi gerekir.

ISeries DB2 SQL Başvurusu itibaren.

Bana söyler: Eğer "INTO Geçerli belirteçleri" bir değer dönmek deyimi için bir yol sağlamak için gereken gibi bana görünüyor. Ben daha önce TANITIRKEN kullanmadıysanız, ama ben bir şey verdiğini hayal ediyorum.

Interactive SQL yüzden gerçekten çok daha ileri sana yardım edemez komutu izin vermez.

BTW, sorunuzun iSerisi etiketi ekleyin. Bunu bu şekilde birkaç cevaplar alabilirsiniz.

Sadece sütun adları deneyin gerekiyorsa

select * from <TABLE> where 0 = 1

Ben sütun türleri, indeksler, anahtarlar, ve c almak için nasıl bilmiyorum