Restituisce un 'pacchetto di DESC' in PHP usando OCI
Domanda
Ciao Sto cercando di ottenere informazioni su un pacchetto di Oracle direttamente da PHP utilizzando OCI8:
$sql = 'DESC my_package'; $stmt = oci_parse($conn, $sql); oci_execute($stmt);
restituisce:
Warning: oci_execute() [function.oci-execute]: ORA-00900: invalid SQL statement in /oci8_test.php on line 16
So che il comando funziona come ho cercato in SQLPlus.
Qualcuno sa come raggiungere questo obiettivo.
Thx
Soluzione 2
Thx per le risposte, credo di aver trovato la mia risposta.
Quindi, per chiunque sia interessato, come ha detto Vincent, penso di farlo funzionare dovrete creare il proprio 'DESC'. L'Oracolo Vista da usare è 'user_arguments', si ottengono i nomi delle funzioni / procedure, nomi di argomenti e tipi, Posizione argomento, ecc ...
Select * from user_arguments where package_name = 'my_package'
Altri suggerimenti
DESC è uno SQL più comando.
Sono stato lontano da Oracle per alcuni anni ormai, ma guardare il dizionario dei dati. Ad esempio per le tabelle che si possa fare qui di seguito. Ci deve essere qualcosa per i pacchetti pure. DESC MY_TABLE
è equivalente a
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
è un comando SQL*Plus
, non funzionerà fuori SQL*Plus
. È possibile scrivere il proprio DESC
interrogando il Dictionnary dati da qualsiasi strumento:
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