الانتقال إلى المحتوى
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.

محتار كيف اعمل هذه الـview ساعدوني

Featured Replies

بتاريخ:

السلام عليكم
اريد عمل View لكي تقرأ الحقول من ثلاثة جداول
ولنفرض ان أسماء هذه الجداول هي emp1, emp2, emp3
ولتكن جميع هذه الجداول تشمل على هذه الحقول
EMP_NO NUMBER(8) ,EMP_NAME VARCHAR2(150), IMG BLOB

الوضع الطبيعي الذي اعرفه لانشاء هذه ال VIEW هو
CREATE OR REPLACE VIEW EMPLOYEE
("TYPE","EMP_NO","EMP_NAME ","IMG")
AS(
(SELECT 1,EMP_NO ,EMP_NAME,IMG FROM EMP1)
UNION
( SELECT 2 ,EMP_NO ,EMP_NAME,IMG FROM EMP2)
UNION
( SELECT 3,EMP_NO ,EMP_NAME,IMG FROM EMP3)
);
ولكن للأسف الظاهر ان هذه الطريقة ما تصلح مع حقول الصور
كانت تطلع لي مسج
ORA-00932: inconsistent datatypes: expected - got BLOB
ياريت احد يقدر يساعدني بعملها
علما باني استخدم SQL*Plus Version 8.0.6.0.0

تم تعديل بواسطة orefai

بتاريخ:

السلام عليكم

اخى الفاضل

اعتقد ان هذا الكود خطأ ...

حيث انك سوف تظهر المتشابة فى الثلاث جداول

و لكن اعتقد ان الصح هو ::

ان تتبع مبدء العلاقات :
العلاقات = n - 1
اى انك سوف تقوم بعمل علاقاتان لربك بين الثلاث جداول

عتقد ان الصح :

CREATE OR REPLACE VIEW EMPLOYEE AS
select * from emp1 join emp2
using ( ?? )
join em3
using ( ??)



و الله اعلم

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

اخوي الفاضل احمد سمير شكرا على الرد والمحاولة يبدو طريقتك صحيحية بس انا لسة ما سمعت عن هذه الطريقة ، يمكن تستخدم في 10g , بعتقد انها ما بتمشي مع الربط باكثر من جدولين ، جرب اعمل 3 جداول او حتى 2 بسيطين عرف فيهم حقلين ويكون واحد منهم من نوع Blob وحاول اعمل view تقرأ منهم
اشكرك مرة ثانية وأأكد لك ان الطريقة اللي انا استخدمتها مجربة و صحيحة 100% بس مانفعت مع الصور وانا محتار للان فيها , مطلوب مني عمل اكتر من 30 تقرير وانشاء هذى الـView حيساعدني ويريحني كثييير

بتاريخ:

السلام عليكم

لا شكر على واجب .. اخى ..

ولكنى اريد ان اعرف شئ من الواضح ان ترفق الصور بالسجل .. فى قاعدة البيانات ... صح..

فهل المشكلة فقط فى هذا الحقل .. ام فى العملية ككل ؟؟

وشكرا

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

صحيح .. صممت الحقول في الجداول اعلاه بحيث يتم تخزين الصور فيها
اما بالنسبة لسؤالك عن المشكلة فهي عند اضافة الحقل IMG الى الView فقط ، اما اذا لم ادخله في الView مافي مشاكل
وشكرا يا احمد سمير
-----------------
اسامة الرفاعي
الرياض

تم تعديل بواسطة orefai

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

توصلت انا الى حل بديل اخر
اني اعمل الView تقرأ الحقول من الجداول بالطريقة المعروفة، وما دخلت حقل الصور فيها
و خليت تقاريري تقرأ الصور من Folder مخزنه فيه الصور
وهذا بشكل مؤقت حتى أوجد حل منصف لهالموضوع

بتاريخ:

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

اخي الكريم

جرب الطريقة التالية قد تكون هي الحل

حول الـ blob إلي row باستخدام to_raw

وعند استدعاء الصورة حول الـ raw الي blob باستخدام to_blob


كـود PHP
Function Description
TO_CLOB (character_data) Converts character data into a CLOB. The input to TO_CLOB can be any of the following character types: VARCHAR2, NVARCHAR2, CHAR, NCHAR, CLOB, and NCLOB. If necessary (for example, if the input is NVARCHAR2), input data is converted from the national character set into the database character set.
TO_BLOB(raw_data) Similar to TO_CLOB, but converts RAW or LONG RAW data into a BLOB.
TO_NCLOB (character_data) Does the same as TO_CLOB, except that the result is an NCLOB using the national character set.
TO_LOB (long_data) Accepts either LONG or LONG RAW data as input, and converts that data to a CLOB or a BLOB, respectively. TO_LOB may be invoked only from the select list of a subquery in an INSERT ... SELECT ... FROM statement.
TO_RAW Takes a BLOB as input and returns the BLOB's data as a RAW value.


BLOB: Binary large object. Declares a variable that holds a LOB locator pointing to a large binary object
stored inside the database.



جزاك الله كل خير

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

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

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

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

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

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.