الانتقال إلى المحتوى

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


colla

Recommended Posts

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

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

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

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

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

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 مهمته جلب إسم

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

رابط هذا التعليق
شارك

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

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

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

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

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

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