Devolver un 'paquete DESC' en PHP utilizando OCI
Pregunta
Hola Estoy tratando de obtener información sobre un paquete de Oracle directamente desde PHP usando oci8:
$sql = 'DESC my_package'; $stmt = oci_parse($conn, $sql); oci_execute($stmt);
esto devuelve:
Warning: oci_execute() [function.oci-execute]: ORA-00900: invalid SQL statement in /oci8_test.php on line 16
Sé que el comando funciona como lo probé en SQLPlus.
¿Alguien sabe cómo lograr esto.
Thx
Solución 2
Thx por las respuestas, creo que he encontrado mi respuesta.
Así que para cualquiera que esté interesado, como se dijo Vincent, creo que para que funcione tendrá que crear su propio 'DESC'. El Oracle Ver a utilizar es '' user_arguments, se obtienen los nombres de función / procedimiento, nombres de argumento y tipos, posición argumento, etc ...
Select * from user_arguments where package_name = 'my_package'
Otros consejos
DESC es un comando SQL Plus.
He estado lejos de Oracle durante unos años ahora, pero mira en el diccionario de datos. Por ejemplo para las tablas que podría hacer a continuación. Tiene que haber algo para los paquetes también. DESC MY_TABLE
es 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
es un comando SQL*Plus
, no va a funcionar fuera de SQL*Plus
. Usted puede escribir su propio DESC
consultando la dictionnary datos desde cualquier herramienta:
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