|
Перевод кода
|
|||
---|---|---|---|
#18+
Добрый день всем! Дико нуждаюсь в помощи вашей, мне нужно из оракла в постгрес перевести код. Вот собственно код из оракла: FOR EXD IN (SELECT T.TRANSUMCUR, T.DATA_LOAD, T.FLAGDEBCRED, NVL(T.COMISSUM, 0) AS COMISSUM FROM FCT_EXD_EXF_ELCARD T WHERE T.CARDNUM = PCARD AND T.DATA_LOAD = PDATE) LOOP IF (EXD.FLAGDEBCRED = 'C') THEN L_BALANCE := L_BALANCE + EXD.TRANSUMCUR; ELSIF (EXD.FLAGDEBCRED = 'D') THEN L_BALANCE := L_BALANCE - EXD.TRANSUMCUR; -- dbms_output.put_line('Debet = ' || exd.transumcur); END IF; L_BALANCE := L_BALANCE - EXD.COMISSUM; END LOOP; Подскажите пожалуйста, особенно блок кода IF как его перевести в PostresSQL?.... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2021, 10:25 |
|
Перевод кода
|
|||
---|---|---|---|
#18+
Taigan, В общем случае if переводится один к одному. Покажите, что конкретно сделали и какие ошибки возникают ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2021, 11:03 |
|
Перевод кода
|
|||
---|---|---|---|
#18+
Извиняюсь заранее,Один к одному, это как ?... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2021, 11:13 |
|
Перевод кода
|
|||
---|---|---|---|
#18+
Taigan, Точно так же, как и в Оракле. Идентично ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2021, 11:13 |
|
Перевод кода
|
|||
---|---|---|---|
#18+
Окей понял.На данный момент я застрял в вопросе "куда воткнуть этот блок кода IF"? SELECT f.tran_sum , f.date_record , f.flag_deb_cred , coalesce(f.comis_sum,0) as COMISSUM FROM staging_files.exd_exfb f WHERE f.card_num = PCARD AND f.date_record = PDATE; - > Вот так перевел а теперь, куда селект или после фильтра WHERE ... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2021, 11:19 |
|
Перевод кода
|
|||
---|---|---|---|
#18+
И можно ли вообще в коде создать переменную?потому что даже при вставки блока кода IF IF (EXD.FLAGDEBCRED = 'C') THEN L_BALANCE := L_BALANCE + EXD.TRANSUMCUR; ELSIF (EXD.FLAGDEBCRED = 'D') THEN L_BALANCE := L_BALANCE - EXD.TRANSUMCUR; -- dbms_output.put_line('Debet = ' || exd.transumcur); END IF; L_BALANCE := L_BALANCE - EXD.COMISSUM; Ругается из-за того что L_BALANCE = это переменная.А этот IF я взял из процедурки а там создана эта переменная и она имеется хранит в себе изначально 0. L_balance number; L_balance := 0;...а тут как создать переменную ведь это обычный отчет.... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2021, 11:22 |
|
Перевод кода
|
|||
---|---|---|---|
#18+
Taigan, Вы взяли код из процедуры на Оракле, соответственно похожая процедура должна быть создана и в ПГ, примерно так: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2021, 11:27 |
|
|
start [/forum/topic.php?fid=53&fpage=6&tid=1993821]: |
0ms |
get settings: |
11ms |
get forum list: |
10ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
23ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
others: | 275ms |
total: | 387ms |
0 / 0 |