إرجاع "حزمة DESC" في PHP باستخدام OCI
سؤال
مرحبا، أحاول الحصول على معلومات عن حزمة أوراكل مباشرة من PHP باستخدام OCI8:
$ sql = 'desc my_package'؛ $ stmt = oci_parse ($ conn، $ sql)؛ oci_execute ($ stmt)؛
هذه المرتجعات:
تحذير: oci_execute () [وظيفة. oci-execute]: ORA-00900: بيان SQL غير صالح في /oci8_test.php على السطر 16
أعرف أن الأمر يعمل كما جربته في SQLPlus.
هل يعلم احد كيف يحقق هذا.
شكرا
المحلول 2
تشك للردود، وأعتقد أنني وجدت إجابتي.
لذلك بالنسبة لأي شخص مهتم، كما قال فنسنت، أعتقد أن نجعلها تعمل عليك إنشاء "DESC". عرض Oracle لاستخدامه هو "User_Arguments"، يمكنك الحصول على أسماء الوظائف / الإجراءات، أسماء وسيطة وأنواعها، موقف الوسيطة، إلخ ...
حدد * من User_Argums حيث 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';
DESC
هو SQL*Plus
الأمر، لن ينجح SQL*Plus
. وبعد يمكنك كتابة الخاصة بك 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