الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

حل مشكله عرض اسماء الملفات من مجلد

Featured Replies

بتاريخ:

بسم الله الرحمن الرحيم

وبعد السلام عليكم ورحمة الله وبركاته

حقيقه ياشباب هذه اول مشاركه لي في هذا المنتدى الذي أخذت منه من العلم في مجال الاوراكل ما احمد الله عليه

ومشاركتي وارجو الله ان لا يكون هنالك من سبقني عليها وهي كيف اقوم بقراءة محتويات مجلد في والكود هو ولا تنسونا من دعواتكم وتعليقاتكم

وارجو ان تكونو صريحين معي إن كان هنالك من سبقني عليها فأخبروني وإن لم يكن فالحمد لله ان استطعت ان اضع شيئا جديدا في هذا المنتدى

CREATE OR REPLACE PROCEDURE list_directory
(directory VARCHAR2)
IS
    ns          VARCHAR2(1024);
    v_directory VARCHAR2(1024);
BEGIN v_directory := directory;
     SYS.DBMS_BACKUP_RESTORE.SEARCHFILES(v_directory, ns);
FOR each_file IN (SELECT fname_krbmsft AS name FROM x$krbmsft) LOOP
    DBMS_OUTPUT.PUT_LINE(each_file.name);
END LOOP;
END;
/

بتاريخ:

ممكن توضح لنا اهمية والكود وفيما يستخدم ؟
خاصة انى حاولت تطبيقه وكانت هى هذا الخطاء

LINE/COL ERROR
-------- -----------------------------------------------------------------
7/1      PL/SQL: Statement ignored
7/1      PLS-00201: identifier 'SYS.DBMS_BACKUP_RESTORE' must be declared
8/18     PL/SQL: SQL Statement ignored
8/52     PL/SQL: ORA-00942: table or view does not exist
9/1      PL/SQL: Statement ignored
9/22     PLS-00364: loop index variable 'EACH_FILE' use is invalid
SQL>

وشكرا

بتاريخ:
  • كاتب الموضوع

اولا اشكرك يا اخ khaledmega على اهتمامك بالموضوع

سبب الخطئ الذي يظهر عندك هو انه يجب عليك لتنفيذ هذا الكود الدخول على قاعدة البيانات لديك كمدير لقاعدة البيانات بالصورة التاليه

start -> run -> cmd -> sqlplus /nolog

ثم بعد ذلك

conn sys as sysdba;

كلمة المرور حسب الكلمة التي وضعتها عند تستيب الاوراكل وإذا لم تقم بوضع كلمة مرور أ ضغط إنتر فقط


ثم بعد ذلك تقوم بوضع هذا الكود على النافذه ولم ننتهي بعد

تقوم بمنح المستخدم الذي تريد إعطائه صلاحية تنفيذ هذا الكود , هذا إذا رغبت في تنفيذ هذا الكود على مستخدم آخر

grant execute on list_directory to scott/your_pass

قبل التنفيذ اكتب الامر التالي

set serveroutput on;

إذا رغبت في تنفيذ هذا الكود على نفس المستخدم مدير قاعدة البيانات نفذبالصورة التالية :

execute list_directory(your_dir)

اما بالنسبه لأهمية إستخدام هذا الكود فهي إذا احتجنا إلى معرفه اسماء الملفات الموجوده داخل مجلد ما فهذا الكود يقوم بجلب اسماء هذه الملفات لنا.
كل المطلوب منك هو تنفيذ هذا الكود مع إرسال إسم المجلد الذي يحتوي على ملفاتك
مثلا قم بإنشاء مجلد على درايف على قرصك الصلب فالنفترض الدرايف ( D:\ ) واعطه الاسم khaledmega وقم بوضع
بعض الملفات عليه بغض النظر عن نوع هذه الملفات فالنفترض انها صور مثلا .
بعد تنفيذ هذا الكود قم بتنفيذه بالصوره التاليه

execute list_directory('d:\khaledmega')

إذا رغبت بتنفيذ هذا الكود على مستخدم آخر بعد منحه الصلاحيه كما وضحت سابقا قم بالتنفيذ بالصورة التاليه

execute sys.list_directory('d:\khaledmega')


مثال :
وتتم الاستفاده من هذا الكود

إذا افترضنا انك مدير لقاعدة بيانات في احدى الشركات ، وقاعدة البيانات هذه فيها جدول يحتوي على بيانات جيمع الموظفين في هذه الشركه

وتم إقتراح وضع صورة بجوار كل موظف في form الخاص بعرض بيانات الموظفين وقام الموظفين بجلب صورهم وتم إدخالها على الحاسب وتم وضع كل هذه الصور

في مجلد واحد . الآ ن فالنفترض ان عدد هذه الصور يتجاوز الالف صورة وكلها موجوده في مجلد واحد فما هو الحل . هل سنقوم بإضافه هذه الصورة واحده تلو الآخرى

على هذا الجدول بواسطة الامر update ، لا اعتقد ذلك لاننا في هذه الحالة سوف نخلص في سنه. إذا خلصنا. ام سنقوم بإنشاء procedure مهمته جلب إسم

الصورة ومقارنتها مع إسم الموظف ووضعها في الحقل الخاص بالصورة التابع لهذا الموظف . ولك ان تختار

بتاريخ:
  • كاتب الموضوع

مشاء الله على الشباب 67 واحد يدخل على الصفحة ولا تعليق واحد

إحباط 100%

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.