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

È stato utile?

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top