Gibt ein ‚DESC-Paket‘ in PHP OCI mit
Frage
Hallo Ich versuche, Informationen auf einem Oracle-Paket direkt von PHP zu bekommen OCI8 mit:
$sql = 'DESC my_package'; $stmt = oci_parse($conn, $sql); oci_execute($stmt);
diese zurück:
Warning: oci_execute() [function.oci-execute]: ORA-00900: invalid SQL statement in /oci8_test.php on line 16
Ich kenne den Befehl funktioniert, wie ich es in SQLPlus versucht.
Wer weiß, wie dies zu erreichen.
Thx
Lösung 2
Thx für die Antworten, ich glaube, ich meine Antwort gefunden zu haben.
Also für jeden, der interessiert ist, wie Vincent sagte, ich glaube, es müssen Sie arbeiten zu lassen, um Ihren eigenen ‚DESC‘ erstellen. Die Oracle-Ansicht zu verwenden ist 'user_arguments', können Sie die Funktion / Prozedur-Namen erhalten, Argumentnamen und -typen, Argument Position, etc ...
Select * from user_arguments where package_name = 'my_package'
Andere Tipps
DESC ist ein SQL Plus-Befehl.
Ich bin seit ein paar Jahren von Oracle jetzt weg, aber das Datenwörterbuch suchen. Zum Beispiel für Tabellen können Sie unten tun. Es muss auch etwas für Pakete sein. DESC MY_TABLE
entspricht
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
ein SQL*Plus
Befehl ist, wird es nicht von SQL*Plus
trainieren. Sie können Ihren eigenen DESC
durch Abfrage der Daten Dictionnary von jedem Werkzeug schreiben:
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