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

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: Google [Bot]


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

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