OCI를 사용하여 PHP에서 'DESC 패키지'를 반환하십시오.
문제
안녕하세요 저는 OCI8을 사용하여 PHP에서 직접 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에서 시도한대로 명령이 작동한다는 것을 알고 있습니다.
누구든지 이것을 달성하는 방법을 알고 있습니까?
고마워
해결책 2
대답을 위해 thx, 나는 내 대답을 찾았다 고 생각합니다.
Vincent가 말했듯이 관심이있는 사람이라면 누구나 작동하게 만들려면 자신의 'Desc'를 만들어야한다고 생각합니다. 사용하는 Oracle보기는 'user_arguments'이며 함수/절차 이름, 인수 이름 및 유형, 인수 위치 등을 얻습니다.
Select * from user_arguments where package_name = 'my_package'
다른 팁
DESC는 SQL Plus 명령입니다.
나는 몇 년 동안 Oracle에서 떨어져 있었지만 데이터 사전을 살펴 보았습니다. 예를 들어 테이블의 경우 아래에서 수행 할 수 있습니다. 패키지에 대한 것이 있어야합니다. 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';
DESC
a SQL*Plus
명령, 그것은 작동하지 않습니다 SQL*Plus
. 직접 쓸 수 있습니다 DESC
모든 도구에서 Data DictionNary를 쿼리하여 :
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
제휴하지 않습니다 StackOverflow