powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Помогите переделать функцию с Оракла на Постгрес
6 сообщений из 6, страница 1 из 1
Помогите переделать функцию с Оракла на Постгрес
    #34360980
alosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
function getPlayerByWinsSum(
  pACCOUNT                STORED_TRANSACTION.ACCOUNT%TYPE,
  pSUBACCOUNT_CASH_BET    STORED_TRANSACTION.SUBACCOUNT%TYPE,
  pSUBACCOUNT_BONUS_BET   STORED_TRANSACTION.SUBACCOUNT%TYPE,
  pSUBACCOUNT_PAYOUT      STORED_TRANSACTION.SUBACCOUNT%TYPE,
  pTRAN_DATE_FROM         STORED_TRANSACTION.TRAN_DATE%TYPE,
  pTRAN_DATE_TO           STORED_TRANSACTION.TRAN_DATE%TYPE,
  pWIN_SUM_FROM           STORED_BALANCE.D_ACC%TYPE,
  pWIN_SUM_FROM_CURRENCY  VARCHAR2,
  pWIN_SUM_TO             STORED_BALANCE.D_ACC%TYPE,
  pWIN_SUM_TO_CURRENCY    VARCHAR2,
  pLOSS_SUM_FROM          STORED_BALANCE.D_ACC%TYPE,
  pLOSS_SUM_FROM_CURRENCY VARCHAR2,
  pLOSS_SUM_TO            STORED_BALANCE.D_ACC%TYPE,
  pLOSS_SUM_TO_CURRENCY   VARCHAR2,
  pPLAYER_TABLE           STRING_TABLE default NULL
) return TYPES_PKG.REFCURSOR is
  c_Player       TYPES_PKG.REFCURSOR;
  v_PLAYER_ID    STORED_TRANSACTION.SUBCONTO1%TYPE;
  c_Result       TYPES_PKG.REFCURSOR;
  v_Player_Table PLAYER_WINS_TABLE := PLAYER_WINS_TABLE();
  v_Player_wins  player_wins;
  v_Can_Add      boolean;
  v_WinsSumRec   WinsSumRec;
  AccRow         balance;
  curBalance     TYPES_PKG.REFCURSOR;
  v_playerCashBet   number;
  v_playerBonusBet   number;
  v_playerPayout   number;
  v_playerGame   number;
begin
  if (pPLAYER_TABLE is NULL) then
    open c_Player for
      select SUBCONTO1
        from ACCOUNT_BALANCE ab
       where ab.ACCOUNT = pACCOUNT
         and ab.SUBCONTO1 is not NULL
         and ab.SUBACCOUNT is NULL
         and ab.SUBCONTO2 is NULL
    group by SUBCONTO1;
  else
    open c_Player for
      select column_value
        from table(cast(pPLAYER_TABLE as STRING_TABLE));
  end if;

  fetch c_Player into v_PLAYER_ID;
  while c_Player%FOUND loop
    v_playerGame :=  0 ;
    curBalance := getPeriodStoredBalance(pACCOUNT, pSUBACCOUNT_CASH_BET, v_PLAYER_ID, NULL, NULL, pTRAN_DATE_FROM, pTRAN_DATE_TO);
    fetch curBalance into AccRow;
    close curBalance;
    v_playerCashBet := AccRow.END_C_AMOUNT_VALUE - AccRow.START_C_AMOUNT_VALUE;
    v_playerGame := -v_playerCashBet;

    curBalance := getPeriodStoredBalance(pACCOUNT, pSUBACCOUNT_BONUS_BET, v_PLAYER_ID, NULL, NULL, pTRAN_DATE_FROM, pTRAN_DATE_TO);
    fetch curBalance into AccRow;
    close curBalance;
    v_playerBonusBet := AccRow.END_C_AMOUNT_VALUE - AccRow.START_C_AMOUNT_VALUE;
    v_playerGame := v_playerGame - v_playerBonusBet;

    curBalance := getPeriodStoredBalance(pACCOUNT, pSUBACCOUNT_PAYOUT, v_PLAYER_ID, NULL, NULL, pTRAN_DATE_FROM, pTRAN_DATE_TO);
    fetch curBalance into AccRow;
    close curBalance;
    v_playerPayout := AccRow.END_D_AMOUNT_VALUE - AccRow.START_D_AMOUNT_VALUE;
    v_playerGame := v_playerGame + v_playerPayout;

    if  (pWIN_SUM_FROM is NULL and pWIN_SUM_TO is NULL and pLOSS_SUM_FROM is NULL and pLOSS_SUM_TO is NULL) then
      v_Can_Add := true;
    else
      v_Can_Add := false;
      if (v_playerGame <= pWIN_SUM_TO or pWIN_SUM_TO is NULL) then
        v_Can_Add := true;
      end if;

      if (v_playerGame >= pWIN_SUM_FROM or pWIN_SUM_FROM is NULL) then
        v_Can_Add := true;
      end if;

      if (-v_playerGame <= pLOSS_SUM_TO or pLOSS_SUM_TO is NULL) then
        v_Can_Add := true;
      end if;

      if (-v_playerGame >= pLOSS_SUM_FROM or pLOSS_SUM_TO is NULL) then
        v_Can_Add := true;
      end if;
    end if;
    if v_Can_Add then
      v_Player_Table.extend;
      v_Player_wins := player_wins(v_PLAYER_ID, v_playerGame,
        v_playerCashBet, v_playerBonusBet, v_playerPayout);
      v_Player_Table(v_Player_Table.count) := v_Player_wins;
    end if;

    fetch c_Player into v_PLAYER_ID;
  end loop;
  close c_Player;

  open c_Result for
    select PLAYER_ID, WINS_SUM WINS_SUM_VALUE, 'CHP' WINS_SUM_CURRENCY,
           CASH_BET_SUM CASH_BET_SUM_VALUE, 'CHP' CASH_BET_SUM_CURRENCY,
           BONUS_BET_SUM BONUS_BET_SUM_VALUE, 'CHP' BONUS_BET_SUM_CURRENCY,
           PAYOUT_SUM PAYOUT_SUM_VALUE, 'CHP' PAYOUT_SUM_CURRENCY
      from table(cast(v_Player_Table as PLAYER_WINS_TABLE));
  return c_Result;
end;
...
Рейтинг: 0 / 0
Помогите переделать функцию с Оракла на Постгрес
    #34361152
Serik Akhmetov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Помогите переделать функцию с Оракла на Постгрес
    #34361814
surprised
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 alosha:

Помогу переписать все приложение с Оракла на Постгрес за деньги.
...
Рейтинг: 0 / 0
Помогите переделать функцию с Оракла на Постгрес
    #34362235
alosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Serik Akhmetov тынц

что это за ссылка?
...
Рейтинг: 0 / 0
Помогите переделать функцию с Оракла на Постгрес
    #34364126
Jelis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alosha Serik Akhmetov тынц

что это за ссылка?


Да ведь вроде по внятно же написанно - "Биржа удаленной работы (фриланс) - поиск профессиональных исполнителей. Удаленная работа и заказы для дизайнеров, программистов, ... и многих других" Находиш там человека, платиш ему, и он за тебя переводит весь твой проект с оракла в постгресс - помоемму, это точно то, что тебе надо!!!
...
Рейтинг: 0 / 0
Помогите переделать функцию с Оракла на Постгрес
    #34364308
Shweik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2alosha:
Пойми что вместо бега по форумам с ТАКИМИ вопросами.... можно просто сесть _ПО_ЧИТАТЬ_ доку , те же форумы и в 80% случаях ты сам лучше любого "сэмпая" ответишь на свой ответ. А как в той байке - "приехал в ичкерию турист, ну сам полный турист по контракту...."
А еще согласись немного неинтересно разглядывать явно спертые откудато приватные сорцы приложения которое таковым будет и вряд ли станет образцом применения PG.
Отсюда и отсылки к фрилансерам.
Хмм я отлично понимаю спращивающего и реакцию но лучше я просто замечу что вопрос "Помогите " без признаков попыток самостоятельно решить задачу - звучит как "Сделай за меня!".
Ладно - еще один такой вяпрос -и пока правила не изучишь чу-чуть забаню пока не пришлешь классный перевод Chapter 9. Functions and Operators
Наглость должна быть вознаграждена достойно!
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Помогите переделать функцию с Оракла на Постгрес
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]