Текущее время: Пн, июл 28 2025, 20:17

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Помогите с Native SQL
СообщениеДобавлено: Чт, сен 04 2008, 15:25 
Ассистент
Ассистент

Зарегистрирован:
Пт, июн 22 2007, 07:24
Сообщения: 38
Не работает данный SQL. В чем может быть проблема???
Code:
EXEC SQL.
OPEN CURSOR C FOR
     select a1~NOM_CH_F, a1~summa
     from ( select  NOM_CH_F,sum(SUM_BUY) summa
            from T_BUF
            group by NOM_CH_F) a1
     where a1~summa =0 .
ENDEXEC.
DO.
EXEC SQL.
   FETCH NEXT CURSOR C  INTO WA.
ENDEXEC.
   IF SY-SUBRC <>  0.
      EXEC SQL.
      CLOSE  C
      ENDEXEC.
      EXIT.
   ENDIF.

ошибка: ORA-00900


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с Native SQL
СообщениеДобавлено: Чт, сен 04 2008, 15:57 
Директор
Директор

Зарегистрирован:
Чт, июн 21 2007, 09:01
Сообщения: 904
Откуда: УЖ 15/2
Пол: Мужской
extreme написал(а):
Не работает данный SQL. В чем может быть проблема???
Code:
EXEC SQL.
OPEN CURSOR C FOR
     select a1~NOM_CH_F, a1~summa
     from ( select  NOM_CH_F,sum(SUM_BUY) summa
            from T_BUF
            group by NOM_CH_F) a1
     where a1~summa =0 .
ENDEXEC.
DO.
EXEC SQL.
   FETCH NEXT CURSOR C  INTO WA.
ENDEXEC.
   IF SY-SUBRC <>  0.
      EXEC SQL.
      CLOSE  C
      ENDEXEC.
      EXIT.
   ENDIF.

ошибка: ORA-00900
Code:
EXEC SQL.
  OPEN CURSOR C FOR
  select a1~NOM_CH_F, a1~summa
  from ( select NOM_CH_F,sum(SUM_BUY) summa
  from T_BUF
  group by NOM_CH_F) a1
  where a1~summa =0 .
ENDEXEC.
DO.
  EXEC SQL.
    FETCH NEXT CURSOR C INTO WA.
    IF sy-subrc <> 0.
      CLOSE C.
      EXIT.
    ENDIF.
  ENDEXEC.
ENDDO.

?

_________________
"I have a dream"(c)Martin Luther King, Jr.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с Native SQL
СообщениеДобавлено: Пт, сен 05 2008, 07:44 
Ассистент
Ассистент

Зарегистрирован:
Пт, июн 22 2007, 07:24
Сообщения: 38
Code:
OPEN CURSOR C FOR
  select a1~NOM_CH_F, a1~summa
  from ( select NOM_CH_F,sum(SUM_BUY) summa
  from T_BUF
  group by NOM_CH_F) a1
  where a1~summa =0 .
ENDEXEC.
DO.
  EXEC SQL.
    FETCH NEXT CURSOR C INTO WA.
    IF sy-subrc <> 0.
      CLOSE C.
      EXIT.
    ENDIF.
  ENDEXEC.
ENDDO.

-----------
не работает.  :(


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с Native SQL
СообщениеДобавлено: Пт, сен 05 2008, 08:20 
Ассистент
Ассистент

Зарегистрирован:
Пт, июн 22 2007, 07:24
Сообщения: 38
Сделал вот так.. как написано в доке.... тоже не работает, но уже другая ошибка...ORA-00933
Code:
DATA:   D1    LIKE ZZZ_BOOK_BUY_H-NOM_CH_F,
   D2    LIKE ZZZ_BOOK_BUY_H-SUM_BUY.
******------------------------------------------------------*********
EXEC SQL.
OPEN  C FOR
     SELECT A1-NOM_CH_F, A1-SUMMA
     FROM ( SELECT  NOM_CH_F,SUM(SUM_BUY) AS SUMMA
            from ZZZ_BOOK
            GROUP BY NOM_CH_F) AS A1
     WHERE A1-SUMMA =0
ENDEXEC.
DO.
EXEC SQL.
   FETCH NEXT C INTO :D1, :D2
   IF SY-SUBRC <>  0.
      CLOSE  C
      EXIT.
   ENDIF.
ENDEXEC.
ENDDO.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, сен 05 2008, 09:40 
Специалист
Специалист

Зарегистрирован:
Пт, апр 13 2007, 17:15
Сообщения: 225
Коллега, на каком языке Вы пишете :D
Между EXEC SQL и ENDEXEC должен идти PL/SQL.
А оформление курсоров в хелпе описано.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с Native SQL
СообщениеДобавлено: Пт, сен 05 2008, 12:13 
Ассистент
Ассистент

Зарегистрирован:
Пт, июн 22 2007, 07:24
Сообщения: 38
тема закрыта. сделал.
-------------------------

Code:
EXEC SQL.
OPEN   C FOR
     SELECT A1.NOM_CH_F, A1.SUMMA
     FROM ( SELECT  NOM_CH_F,SUM(SUM_BUY) SUMMA
            FROM W_NUL
            GROUP BY NOM_CH_F) A1
     WHERE A1.SUMMA =0
ENDEXEC.
DO.
EXEC SQL.
   FETCH NEXT  C INTO :W1
ENDEXEC.
   IF SY-SUBRC <>  0.
      EXEC SQL.
      CLOSE  C
      ENDEXEC.
      EXIT.
   ENDIF.

MOVE-CORRESPONDING W1 TO T_BUF.
APPEND T_BUF.
ENDDO.
LOOP AT T_BUF.
WRITE : / T_BUF-NOM_CH_F, T_BUF-SUM_BUY.
ENDLOOP.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, дек 03 2008, 04:19 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, мар 09 2006, 10:12
Сообщения: 565
Откуда: Волгодонск
Пол: Мужской
И вобще Native SQL странная штука

Вот такой код работает:
Code:
DEFINE fetch_tab.
  do.
    exec sql.
      fetch next dbcur into :&1
    endexec.

    if sy-subrc <> 0. exit. endif.

    append &1.
  enddo.

  exec sql.
    close dbcur
  endexec.
END-OF-DEFINITION.


а вот тоже самое в виде form не работает
Code:
form fetch_tab tables tab.
  do.
    exec sql.
      fetch next dbcur into :tab
    endexec.

    if sy-subrc <> 0. exit. endif.

    append tab.
  enddo.

  exec sql.
    close dbcur
  endexec.
endform.


почему то заполняется (не понять чем) только первое поле таблицы


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, дек 03 2008, 12:46 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
DKiyanov написал:
И вобще Native SQL странная штука

...
а вот тоже самое в виде form не работает
Code:
form fetch_tab tables tab.
  do.
    exec sql.
      fetch next dbcur into :tab
    endexec.

    if sy-subrc <> 0. exit. endif.

    append tab.
  enddo.

  exec sql.
    close dbcur
  endexec.
endform.


почему то заполняется (не понять чем) только первое поле таблицы

native sql умеет работать только с глобальными переменными, так что внутри при использовании perform проверяйте на сторонние эффекты и т.п. ситуации с переменными

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB