Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Oracle > Что не так со скриптом?


Автор: AlexSerdukov 12.10.2007, 11:06
Добрый день! Вот бьюсь с вопросом, почему в TOAD скрипт выполняется, а в SQL*PLUS нет. Ошибки не выскакивает, просто скрипт не заканчивает работу.

А вот и он, "родимый":

Код


DECLARE
   recs_found  NUMBER(5);
   recs_added  NUMBER(5);

BEGIN
  recs_found := 0;
  recs_added := 0;

DECLARE
      CURSOR c1 IS
        SELECT site FROM site;



      thisSite site.site%TYPE;
      activityB0        activity.handle%TYPE;
      podActivityHandle        POD_ACTIVITY.handle%TYPE;
      podButtonHandle        POD_BUTTON.handle%TYPE;

      BEGIN
      OPEN c1;
      LOOP
        FETCH c1 INTO thisSite;
        EXIT WHEN c1%NOTFOUND;


      
        activityB0 := 'ActivityBO:DM720' ;
        podActivityHandle := 'PODActivityBO:PODButtonBO:PODConfigBO:WorkstationBO:' || thisSite || ',' || 'SFC_CUSTOM_DATA' || ',' ||'SO_STEP'||','|| '220';
        podButtonHandle := 'PODButtonBO:PODConfigBO:WorkstationBO:' || thisSite || ',' || 'SFC_CUSTOM_DATA' || ',' ||'SO_STEP';
        
    SELECT COUNT(*) INTO recs_found from POD_ACTIVITY
        WHERE ACTIVITY_BO = activityB0 and HANDLE = podActivityHandle ;



    if recs_found <= 0 then
    INSERT INTO POD_ACTIVITY ( handle, CHANGE_STAMP, ACTIVITY_BO ,SEQUENCE,IS_PLUGIN,REFRESH_PLUGIN,CLEARS_SFC,OPEN_NEW_WINDOW,POD_BUTTON_BO )
        VALUES ( podActivityHandle, '', activityB0 ,'220', 'true','false','false','true' ,podButtonHandle  );
             recs_added := recs_added+1;

    end if;
          
        podActivityHandle := 'PODActivityBO:PODButtonBO:PODConfigBO:WorkstationBO:' || thisSite || ',' || '*' || ',' ||'SO_STEP'||','|| '220';
        podButtonHandle := 'PODButtonBO:PODConfigBO:WorkstationBO:' || thisSite || ',' || '*' || ',' ||'SO_STEP';
        
    SELECT COUNT(*) INTO recs_found from POD_ACTIVITY
        WHERE ACTIVITY_BO = activityB0 and HANDLE = podActivityHandle ;



    if recs_found <= 0 then
    INSERT INTO POD_ACTIVITY ( handle, CHANGE_STAMP, ACTIVITY_BO ,SEQUENCE,IS_PLUGIN,REFRESH_PLUGIN,CLEARS_SFC,OPEN_NEW_WINDOW,POD_BUTTON_BO )
        VALUES ( podActivityHandle, '', activityB0 ,'220', 'true','false','false','true' ,podButtonHandle  );
             recs_added := recs_added+1;


    
    end if;  

      END LOOP;
      CLOSE c1;
    END;
 END;




Может кто знает, что тут может быть неправильно?

Спасибо

Автор: batigoal 12.10.2007, 11:22
А откуда ты знаешь, что он не заканчивает работу?

Попробуй ввести после скрипта / и Enter.

А зачем тут два блока DECLARE?

Автор: LSD 12.10.2007, 16:16

M
LSD
Перенесено из баз данных

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)