الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

عاجل ..

مغلق
بدأه swe في 2 مايو 2004 · 8 رد · 799 مشاهدة · في قواعد بيانات Oracle
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

كيف ممكن انى اسوي index من الفورم ... يعنى مثلا ...

create table test
(id number NOT NULL primary key,
title varchar2(50) NOT NULL,
text clob);

اريد اسوي اندكس على الكولوم تكست من الفورم ...

الاندكس العاديه تضبط .. بس لما احط الباراميتر ما تضبط مع انها ما تعطيني اي مشاكل بس الاندكس ما يسويله كرييت ..

forms_ddl('create index TEST_IDX on TEST (TEXT)
indextype is ctxsys.context
parameters('datastore	ctxsys.direct_datastore
    filter		ctxsys.inso_filter
    charset column 	cset
    format column 	fmt
    lexer		ctxsys.basic_lexer
    memory	2M
    populate
  ') 
');

ارفقت الفورم .. اذا ممكن ردوا علي بسرعه ..

create idx.fmb

#2

السلام عليكم

استخدم الآتي بعد جملة

forms_ddl

حتى تعرف ما هو الخطأ ثم زودنا به ، ربما نستطيع الافادة :

IF NOT   FORM_SUCCESS  THEN  
    message( dbms_error_text);
    message( dbms_error_text);
ELSE
   MESSAGE(' Index  created successfully ');
END IF;

كما تلاحظ إذا لم يتم انشاء الاندكس سيظهر السبب مباشرة

ربما بعد أن تعرف السبب ستتمكن من حله

و السلام عليكم

#3

شكرا اخي الكريم على المساعده ..

عند استخدامي للكود اللي وضعته سابقا كانت النتيجه التاليه ولكن لم استطع التوصل الى حل لها .. تمنى ان تساعدوني ..

nono2004.jpg

مع خالص شكري وتقديري ..

#4

هذا الكود اللي الحين استخدمه بس للاسف بعد فيه مشكله .. أرفقت صوره للمشكله اللي تطلع لي ..

اذا ممكن حد يساعدني ضروري ..

declare 
 v varchar2(30);
begin
 v:=:block3.namex;
FORMS_DDL(' 
create index v
on TEST (TEXT) 
indextype is ctxsys.context 
parameters(''datastore ctxsys.direct_datastore 
filter ctxsys.inso_filter 
charset column cset 
format column fmt 
lexer ctxsys.basic_lexer 
memory 2M 
populate'' 
) 
'); 
     
IF NOT   FORM_SUCCESS  THEN  
   message( dbms_error_text);
   message( dbms_error_text);
ELSE
  MESSAGE(' Index  created successfully ');
END IF;

end;

nono1.jpg

اذا ممكن حد يرد علي ..

#5

اذا كان اسم الاندكس ثابت ياخذه بس اذا ما كان ثابت ما يسوي create

#6

شو الحل ؟؟

اذا كنت ابغي المستخدم هو اللي يدخل اسم الـ index ؟؟

#7

السلام عليكم

رسالة الخطأ الظاهرة تعني أن الاندكس موجود.

نوع الاندكس هنا هو domain ،

و هذه الرسالة تفيد بأنه يوجد اندكس من نوع domain على نفس الكولومن ، و لا يمكن أن يكون هناك أكثر من domain index على نفس الكولومنز..... أعتقد أنها واضحة .

إذن ، الحل هو أن تحذف الاندكس الموجود على الكولومن المعني قبل أن تعمل

Create index

أعتقد أن الأمور الآن واضحة و الحل بين يديك.

و السلام عليكم

#8

السلام عليكم

حتى تميز بأن v هي متغير استخدم الآتي

...
...
FORMS_DDL(' 
create index   '   || v ||
'   on TEST (TEXT) 
...
...

أعني استخدم ال concatenation operator

و السلام عليكم

#9

تسلم اخي maen ..

وجزاك الله خير على المساعده ..

هذا الموضوع مغلق.

مواضيع مشابهة