嗨,我从PHP OCI8使用直接试图获得在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的答复,我想我已经找到了我的答案。

因此,对于任何人谁是有兴趣的,因为文森特说,我想使它工作,你必须创建自己的“降序”。 甲骨文观采用的是“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