السلام عليكم
هل في طريقه في الأوراكل بتمكن من عمليه البحث عن كلمه أو أكتر داخل محتويات ملف مخزن بالداتا بيز
والملف مخزن من نوع blob
لو في طريقه كيف ممكن أعملها؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
السلام عليكم
هل في طريقه في الأوراكل بتمكن من عمليه البحث عن كلمه أو أكتر داخل محتويات ملف مخزن بالداتا بيز
والملف مخزن من نوع blob
لو في طريقه كيف ممكن أعملها؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
توجد طريقة موضحة بالكود التالي
/* File on web: munising_falls_02.sql */
DECLARE
directions CLOB;
directions_1 VARCHAR2(300);
directions_2 VARCHAR2(300);
chars_read_1 BINARY_INTEGER;
chars_read_2 BINARY_INTEGER;
offset INTEGER;
BEGIN
--Retrieve the LOB locator inserted previously
SELECT falls_directions
INTO directions
FROM waterfalls
WHERE falls_name='Munising Falls';
--Begin reading with the first character
offset := 1;
--Attempt to read 229 characters of directions, chars_read_1 will
--be updated with the actual number of characters read
chars_read_1 := 229;
DBMS_LOB.READ(directions, chars_read_1, offset, directions_1);
--If we read 229 characters, update the offset and try to
--read 255 more.
IF chars_read_1 = 229 THEN
offset := offset + chars_read_1;
chars_read_2 := 255;
DBMS_LOB.READ(directions, chars_read_2, offset, directions_2);
ELSE
chars_read_2 := 0;
directions_2 := '';
END IF;
--Display the total number of characters read
DBMS_OUTPUT.PUT_LINE('Characters read = ' ||
TO_CHAR(chars_read_1+chars_read_2));
--Display the directions
DBMS_OUTPUT.PUT_LINE(directions_1);
DBMS_OUTPUT.PUT_LINE(directions_2);
END;ممكن توضيح أكتر
هل في إمكانيه لتحويل هاد الكود ل procedure أو function
بحيث إنها تاخد parameter الكلمه الي بدي أعمل عليها بحث؟؟؟؟؟؟؟؟؟؟؟؟؟ظ
شكل هذه method هو :
PROCEDURE READ ( lobsrc IN BFILE|BLOB|CLOB , amount IN OUT BINARY_INTEGER, offset IN INTEGER, buffer OUT RAW|VARCHAR2 )
بالنظر إلى الكود السابق نجد :
1- direction و هو المتحول الذي يخزن "مؤشراً " على clob أو blob الذي قمنا بتخزينه داخل الجدول ..
2- عندما يقوم بالقراءة فإنه يجب أن تعطيه offset و هو البداية الذي ستتم القراءة من بدايته و بالتالي تتغير قيمته كل ما قرأت من الملف ... أم chars_read_2 هو عدد المحارف التي تمت قراءتها ....
و الذي يهمك أكثر هو قيمة directions_2 التي تخزن قيمة الحروف التي تمت قراءتها ... بالنسبة لمشكلتك فإنه كلما تمت القراءة إفحص قيمة direction2 هل هي الكلمة التي تبحث عنها فإن كانت كذلك فإنتهى الأمر و إلا فنفذ عملية القراء من جديد ... مع العلم إذا وصلت لنهاية الملف فإنه سوف يعطي Exception
هل هاد الكود بينفع في حاله البحث عن جمله في محتويات الملف؟؟؟؟؟؟؟؟؟؟
وحكيت إنه بيطلع إكسبشن في انهايه؟؟؟؟هل هاد بكل الحالات
القصد من Exception أنه عندما يصل إلى نهاية الملف ...
هذا الموضوع مغلق.