Текущее время: Сб, авг 02 2025, 10:03

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


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

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


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

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