質問

こんにちは、私は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';

DESCSQL*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
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top