Текущее время: Чт, июл 31 2025, 17:52

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Опять по NATIVE SQL
СообщениеДобавлено: Ср, апр 25 2007, 16:46 
Специалист
Специалист

Зарегистрирован:
Пт, мар 25 2005, 13:58
Сообщения: 216
Извините. Не очень пока дружу с Native SQL.
Можно пример решения след. задачки(буквально 2 строчки):
у меня есть в САПе переменные
DATA: a1 type n,
a2(1),
ret_code type i.

Во внешней оракловской БД есть табличка TAB1 (с полями:
b_1 - NUMBER(1),
b_2 - CHAR(1),
ret - здесь числовой тригер навешан, который возвращает номер записи.

Что мне написать
Код:
exec sql.
"Здесь?
endexec.


чтобы вставить запись (a1, a2) в таблицу TAB1 и она вернула в ret_code номер вставленной строки.



Вот пишу, но выдает неверный statement:
Code:
EXEC SQL.
      INSERT INTO TAB1 (
        b_1, b_2)
    VALUES (
       :a1,
       :a2
      )
    RETURNING
      :ret
ENDEXEC.
Заранее спасибо!


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, апр 25 2007, 17:51 
Специалист
Специалист

Зарегистрирован:
Чт, июн 23 2005, 18:05
Сообщения: 119
Дак использование RETURNING неверно:
нужно примерно так:
...Returning <выражение> INTO :переменная....

И пользуйтесь TRY / CATH, катч прямо вернет оракловую ошибку насчет отсутствия INTO.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, апр 25 2007, 18:04 
Специалист
Специалист

Зарегистрирован:
Пт, мар 25 2005, 13:58
Сообщения: 216
Трай ,конечно, использую.
Вопросик в догонку: у меня одно из полей в оракле DATE,
я пытаюсь передать поле
DATA date TYPE d.
и у меня на этом падает. Такое возможно?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, апр 25 2007, 18:19 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
Не возможно, а корректно. Код ошибки - 1861.
Надо передавать как Char.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, апр 26 2007, 10:13 
Специалист
Специалист

Зарегистрирован:
Чт, июн 23 2005, 18:05
Сообщения: 119
Salas написал(а):
Трай ,конечно, использую.
Вопросик в догонку: у меня одно из полей в оракле DATE,
я пытаюсь передать поле
DATA date TYPE d.
и у меня на этом падает. Такое возможно?


Если в Ora date то нужна конвертация. Char туда не запишется, а ora сам не сконвертит. Это не SAP :).
Используй оракловую функцию to_date(...) примерно так:
TO_DATE(:ttt, 'YYYY/MM/DD HH12:MI:SS AM')
Вообще не помешало бы заиметь книжку Oracle X SQL Reference.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, апр 26 2007, 10:54 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
kizif написал(а):
Если в Ora date то нужна конвертация. Char туда не запишется, а ora сам не сконвертит.

SAP утверждает обратное :) Но проверить сейчас нет возможности.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, апр 26 2007, 17:48 
Специалист
Специалист

Зарегистрирован:
Пт, мар 25 2005, 13:58
Сообщения: 216
Вроде формат даты в оракле
'10-Jan-97'
Если такую строку передаю, то прокатывает.
Теепрь вот только не возвращает значение тригера, которое определено как NUMBER(10).
Уже все типы перебрововал и разной длины - никак :(
Скажу сразу, особенностей создания таблички в оракле не знаю (не я создавал)


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

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


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

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


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

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