OCIを使用してPHPの「DESCパッケージ」を返します。
質問
こんにちは、私はOCI8を使用してPHPから直接Oracleパッケージに関する情報を取得しようとしています:
$sql = 'DESC my_package'; $stmt = oci_parse($conn, $sql); oci_execute($stmt);
これが返されます:
Warning: oci_execute() [function.oci-execute]: ORA-00900: invalid SQL statement in /oci8_test.php on line 16私はSQLPlusをでそれを試みたとして
私は、コマンドの動作を知っています。
誰もがこれを達成する方法を知っています。
Thxを
解決 2
の返信のためのThxを、私は私の答えを見つけたと思います。
ヴィンセントが言ったように、私はそれはあなたがあなた自身の「DESC」を作成する必要があります動作させるために考えて、興味がある人のためので。 使用するOracleのビュー「user_arguments」、あなたはファンクション/プロシージャ名、引数の名前と型を取得、引数の位置などです...
Select * from user_arguments where package_name = 'my_package'
他のヒント
DESCは、SQL Plusコマンドです。
私は今、数年前から離れオラクルからあったが、データ・ディクショナリに見てきました。テーブル用たとえば、あなたは以下の行うことができます。同様のパッケージのために何かがあるに違いありません。 DESC MY_TABLE
タグに相当します
SELECT
column_name "Name",
nullable "Null?",
concat(concat(concat(data_type,'('),data_length),')') "Type"
FROM user_tab_columns
WHERE table_name='TABLE_NAME_TO_DESCRIBE';
DESC
がSQL*Plus
コマンドで、それはSQL*Plus
の外に動作しません。あなたは、任意のツールからのデータdictionnaryを照会することによって、独自のDESC
を書くことができます:
SQL> SELECT column_name, data_type, data_length,
2 data_precision, data_scale, nullable
3 FROM all_tab_columns
4 WHERE table_name = 'T';
COLUMN_NAME DATA_TYPE DATA_LENGTH DATA_PRECISION DATA_SCALE NULLABLE
------------ ---------- ----------- -------------- ---------- --------
COLUMN1 CHAR 6 Y
COLUMN2 CHAR 6 Y
所属していません StackOverflow