Текущее время: Ср, июн 18 2025, 13:19

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Native SQL vs ORACLE PL/SQL
СообщениеДобавлено: Чт, янв 10 2008, 19:24 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, апр 25 2006, 15:14
Сообщения: 280
Помогите плиз с такой задачей. Необходимо каким-то образом использовать оракловую функцию SOUNDEX.
Это конечно не совсем суть, но она пытается сравнить схожие по звучанию слова типа smith и smyth и т.п. возвращая для них одинаковый код типа например S530.
В select вызывается след. образом
SELECT last_name, first_name
FROM hr.employees
WHERE SOUNDEX(last_name)
= SOUNDEX('SMYTHE');
LAST_NAME FIRST_NAME

Но использовать именно в select, эту функцию не нужно. Просто полезна её функциональность в рамках ABAP. Самый примитивный код который пришёл в голову:
Code:
DATA: myVar1 TYPE string.

EXEC SQL.

     BEGIN
      :myVar1 := SOUNDEX('smith');
     END;

ENDEXEC.


Ошибок не возвращает, но и результата тоже, переменная myVar1 после работы программы, пустая.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 10 2008, 20:09 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1257
Имхо: стоит использовать переменную какого-нибудь простого типа (char с фикисированной длиной) вместо стринга.
Опять же, если мне не изменяет память: эта функция работает корректно только с латиницей.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 10 2008, 20:17 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, апр 25 2006, 15:14
Сообщения: 280
Кодер написал(а):
Имхо: стоит использовать переменную какого-нибудь простого типа (char с фикисированной длиной) вместо стринга.
Опять же, если мне не изменяет память: эта функция работает корректно только с латиницей.


Нет, проблема была не в этом. Т.к. на том конце был Oracle a не MS SQL, сработала такая хитрая конструкция
Code:
EXEC SQL
select soundex('smith') into :myVar1 from dual
END EXEC


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Native SQL vs ORACLE PL/SQL
СообщениеДобавлено: Пт, янв 11 2008, 08:34 
Менеджер
Менеджер

Зарегистрирован:
Чт, янв 20 2005, 08:34
Сообщения: 573
Пол: Мужской
tdebug написал(а):

Code:
DATA: myVar1 TYPE string.

EXEC SQL.

     BEGIN
      :myVar1 := SOUNDEX('smith');
     END;

ENDEXEC.




Так ведь внутри EXEC ... ENDEXEC должно ж быть именно Native SQL statements.

Native SQL comprises all the static statements of the data definition language (DDL) and the data manipulation language (DML) used by the relational database system concerned.

А

Code:
     BEGIN
      :myVar1 := SOUNDEX('smith');
     END;


кажись команда PL/SQL языка.

И что, разве в MS SQL код

Code:

EXEC SQL.

     BEGIN
      :myVar1 := SOUNDEX('smith');
     END;

ENDEXEC.


проходил?

_________________
Волю в кулак, мышцы в узду, работай себе и не ахай!


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

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


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

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


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

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