سؤال

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

DBMS_WM.ResolveConflicts('W_CHILD', 'SOME_TABLE', 'ID=1', 'CHILD');

أي صف سيتم استخدامه؟كيف يمكنني تحديد صف ملموس؟

xxx_CONF table content

هل كانت مفيدة؟

المحلول

يتم اكتشاف التعارضات تلقائيًا عند طلب عملية دمج أو تحديث ، ويتم تقديمها إلى المستخدم في طرق عرض التعارض.هناك طريقة عرض تعارض واحدة لكل جدول. لكل طريقة عرض تعارض اسم في الشكل table_name_CONF.\ n للاحتفاظ بالصفوف التي تريدها ، دعني أولاً أريك بناء جملة إجراء ResolveConflicts.\ن

DBMS_WM.ResolveConflicts(
   workspace     IN VARCHAR2,
   table_name    IN VARCHAR2,
   where_clause  IN VARCHAR2,
   keep          IN VARCHAR2);

يمكنك استخدام معلمة "keep" لتحديد أي (أصل أو فرعي أو أساسي) لحل التعارضات.\ن\ n في حالتك ، قمت بتعريف "CHILD" لمعامل keep.ويحدد where_clause (ID = 1 في حالتك) الصفوف المراد تحديثها.يحل الإجراء الخاص بك التعارضات التي تتضمن صفوفًا في جدول SOME_TABLE في W_CHILD حيث يكون المعرف 1 ، ويستخدم القيم الموجودة في مساحة العمل التابعة لحل كل هذه التعارضات.\ n للحصول على التفاصيل ، قم بزيارة وثائق Oracle: حزمة DBMS_WM: المرجع

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى dba.stackexchange
scroll top