سؤال

لقد قمت بإنشاء جدول مؤقت عالمي. عندما أقوم بتنفيذ الكود كنصوص فردية ، فإنه يعمل بشكل جيد. ولكن عندما أقوم بتنفيذها كنص واحد في الضفدع ، لم يتم إنشاء أي سجل. كان هناك مجرد جدول مؤقت عالمي فارغ.

على سبيل المثال.

CREATE GLOBAL TEMPORARY TABLE TEMP_TRAN
(
COL1 NUMBER(9),
COL2 VARCHAR2(30),
COL3 DATE
) ON COMMIT PRESERVE ROWS
/

INSERT INTO TEMP_TRAN VALUES(1,'D',sysdate);
/
INSERT INTO TEMP_TRAN VALUES(2,'I',sysdate);
/
INSERT INTO TEMP_TRAN VALUES(3,'s',sysdate);
/
COMMIT;

عندما أقوم بتشغيل رمز واحد أعلاه بيان واحد في وقت يعمل بشكل جيد. ولكن عندما أقوم بتنفيذها كنص ، فإنه يعمل بشكل جيد ولكن لم يكن هناك سجلات في جدول مؤقت.

هل يمكن لأي شخص مساعدتي في هذا من فضلك؟

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

المحلول

منذ أن ذكرت صراحة ON COMMIT PRESERVE ROWS, ، السبب الوحيد الذي يجعل الصفوف "تختفي" هو أن TOAD يستخدم أكثر من جلسة واحدة (أي أنك تنفذ البرنامج النصي مع الجلسة A والاستعلام عن الجدول مع الجلسة B - والتي سترى جدولًا فارغًا).

لا أستخدم Toad كثيرًا ، لكنني أعلم أنه يمكنك فتح العديد من الجلسات المستقلة مع هذه الأداة.

ماذا يحدث إذا وضعت الاستعلام SELECT * FROM TEMP_TRAN; في نهاية البرنامج النصي الخاص بك مباشرة بعد الالتزام؟

نصائح أخرى

في بعض الأحيان ، ستحتاج إلى تحديث عرض البيانات داخل TOAD بحيث يعرض التغييرات داخل الجدول ضمن بيانات TabPage.

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