Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > MySQL > Необходимо перенести код из ORACLE в MySQL |
Автор: Serious07 23.4.2009, 18:36 | ||
|
Автор: valid 23.4.2009, 18:40 | ||
и вот этот плиз
|
Автор: lelik133 24.4.2009, 08:28 |
ага все так и кинулись переводить, либо опишите что конкретно вы сами не смогли перевести, либо предлагайте $ |
Автор: azesmcar 24.4.2009, 09:06 | ||
Центр помощи http://forum.vingrad.ru/forum/Vingrad-help-center.html Добавлено через 53 секунды
там же написано..конкретно эту функцию не смогли ![]() |
Автор: skyboy 24.4.2009, 09:34 |
Serious07, можешь описать ожидаемый функционал? на сторону клиента СУБД перенесети невозможно? |
Автор: DimW 24.4.2009, 10:16 | ||
to Serious07:
ищи аналоги в mySQL и переделывайте. to valid: в твоем случае значение типа TIMESTAMP перекладываются в объект t_date. есть ли объекты в mySQL чесно говаря не знаю. если нет то придется отказаться от этого функционала и переделать функционал где данный объект используется. |
Автор: valid 24.4.2009, 10:23 | ||
DimW, У МЕНЯ ЕЩЕ ТАКОЙ ВОПРОС t_date := t_date (NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); T_DATE ПРИСВАИВАЕТСЯ ФУНКЦИЯ ИЛИ МАССИВ? Добавлено @ 10:28 И ЕЩЕ КАК ПЕРЕДЕЛАТЬ функционал? Добавлено @ 10:29 ВОТ КАК T_DATE ИСПОЛЬЗУЕТСЯ
|
Автор: DimW 24.4.2009, 10:57 |
это инициализируется объект T_DATE. в приведенном тобой коде, функция timestamp_to_t_date вообще не нужна. посмотри внимательней переменные tt1 и tt2 в последующем коде не используются. |
Автор: valid 24.4.2009, 11:26 |
спасибо большое, я тоже это уже заметил ))), но есть еще проблема FUNCTION split_string (str VARCHAR2, splitter VARCHAR2) RETURN array_varchar AS res array_varchar := array_varchar (); str0 VARCHAR2 (256) := str; str1 VARCHAR2 (256); i INT := 1; BEGIN LOOP EXIT WHEN str0 IS NULL OR str0 = ''; str1 := LTRIM (str0, '0123456789:.-+'); res.EXTEND; res (i) := REPLACE (str0, str1); str0 := LTRIM (str1, splitter); i := i + 1; END LOOP; RETURN res; END; вобщем сделал чтобы эта функция возвращала таблицу, но как в splitted FUNCTION time_difference (t1 IN TIMESTAMP, t2 IN TIMESTAMP, format VARCHAR2) ....... splitted array_varchar := array_varchar (); seconds NUMBER; BEGIN splitted := split_string (str, ' '); seconds := TO_NUMBER (splitted (1)) * 24 * 60 * 60; принять таблицу? Добавлено @ 11:27 и еще есть вопрос как создаются в mysql глобальные константы вне функции? |
Автор: valid 25.4.2009, 13:26 |
дан такой код на oracle FUNCTION calc_pot (t_id IN NUMBER) RETURN NUMBER IS CURSOR pot_sum (t_id IN NUMBER) IS SELECT bank + bet_sum AS pot FROM thp_tables_tmp JOIN (SELECT table_id AS table_, SUM (round_cash) AS bet_sum FROM thp_users_tmp WHERE table_id = t_id GROUP BY table_id) ON table_ = ID WHERE ID = t_id; rec pot_sum%ROWTYPE; BEGIN OPEN pot_sum (t_id); FETCH pot_sum INTO rec; CLOSE pot_sum; IF rec.pot > 0 THEN RETURN rec.pot; ELSE RETURN 0; END IF; END calc_pot; как будет выглядеть строчка rec pot_sum%ROWTYPE; в mysql? |
Автор: skyboy 25.4.2009, 16:14 |
valid, не игнорирурй форматирование кода(кнопка "код" над полем ввода сообщения). мне уже надоело корректировать твои посты. |
Автор: DimW 27.4.2009, 09:34 |
а гуглом пользоваться мы не умеем? http://www.ispirer.com/doc/sqlways39/Output/SQLWays-1-043.html |