|
|
|
PLPgSQL после Oracle: дежавю ?
|
|||
|---|---|---|---|
|
#18+
Привет, перехожу на Postgres с Oracle, не миргация, просто другой проек. Читаю документацию по PlPgSQL и испытываю стойкое ощущение, что я это уже где-то видел... Уж больно похоже на Pl/SQL. Не, ну я в курсе, чем занимается компания EnterpriseDB, Брюс Момжан рассказывал, но вот чтобы настолько ... И вопрос -- насколько они похожи, может и изучать PLPgSQL не нужно особо, PL/SQL я уже знаю. ---- Читал хинты оракла. Много думал... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2016, 00:18 |
|
||
|
PLPgSQL после Oracle: дежавю ?
|
|||
|---|---|---|---|
|
#18+
MasterZivПривет, перехожу на Postgres с Oracle, не миргация, просто другой проек. Читаю документацию по PlPgSQL и испытываю стойкое ощущение, что я это уже где-то видел... Уж больно похоже на Pl/SQL. Не, ну я в курсе, чем занимается компания EnterpriseDB, Брюс Момжан рассказывал, но вот чтобы настолько ... И вопрос -- насколько они похожи, может и изучать PLPgSQL не нужно особо, PL/SQL я уже знаю. ---- Читал хинты оракла. Много думал... Ну pl/pgsql в каком то смысле писался под копирку с pl/sql насколько это на архитектуру ложилось. В общем да они очень похожи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2016, 05:12 |
|
||
|
PLPgSQL после Oracle: дежавю ?
|
|||
|---|---|---|---|
|
#18+
MasterZivИ вопрос -- насколько они похожи, может и изучать PLPgSQL не нужно особо, PL/SQL я уже знаю. Изучать обязательно! Чтобы знать чего в plpgsql нет, в сравнении с PL/SQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2016, 07:17 |
|
||
|
PLPgSQL после Oracle: дежавю ?
|
|||
|---|---|---|---|
|
#18+
mad_nazgulЧтобы знать чего в plpgsql нет, в сравнении с PL/SQL. компилишь все свои оракловые процедуры и смотришь, чо отвалилось ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2016, 10:05 |
|
||
|
PLPgSQL после Oracle: дежавю ?
|
|||
|---|---|---|---|
|
#18+
Алексссmad_nazgulЧтобы знать чего в plpgsql нет, в сравнении с PL/SQL. компилишь все свои оракловые процедуры и смотришь, чо отвалилось а потом годами чистишь то, что не отвалилось, но работает не так, как задумано. видели, ага. ары кала--еды, такие ары. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2016, 10:25 |
|
||
|
PLPgSQL после Oracle: дежавю ?
|
|||
|---|---|---|---|
|
#18+
MasterZiv, вопросы с "автономными транзакциями" будут и с "пайпами". по автономным -- делаем через dblink/plproxy/fdw; по пайпам -- нечем заменить и придется всё тянуть между вызовами, весь сет. -- ну и нету партицирования/etl/параллельности на ddl в pg. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2016, 13:37 |
|
||
|
PLPgSQL после Oracle: дежавю ?
|
|||
|---|---|---|---|
|
#18+
Misha Tyurin, там бесконечно мелочевки STRICT , там гле ожидаем дата_нот_фаунд а лучше NOT FOUND (без лишнего блока) или вот INOUT с ожиданием, что в месте вызова оно поменяется "само", по--ссылке, типа. (ан пж тут вас поставит в позу) и такого, по мелочи, набирается воз и тележка. автономии эмулируемы, но цена -- возможность неразрешимого в автомате дедлока. не говоря о том, что в постгресе сплошь и рядом нужны свои техники запинывания запросов на нужный план. просто переписыванием. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2016, 13:56 |
|
||
|
PLPgSQL после Oracle: дежавю ?
|
|||
|---|---|---|---|
|
#18+
MasterZivперехожу на Postgres с Oracle, - текущей схемы тут нет? Во вьюхе нужно обязательно ставить имя схемы, иначе моё IDE ругается. В хранимке иногда ругается иногда нет(. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2016, 14:54 |
|
||
|
PLPgSQL после Oracle: дежавю ?
|
|||
|---|---|---|---|
|
#18+
Petro123, Если IDE ругается на валидный синтаксис, IDE нужно выкидывать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2016, 11:24 |
|
||
|
PLPgSQL после Oracle: дежавю ?
|
|||
|---|---|---|---|
|
#18+
Petro123, Если IDE ругается на валидный синтаксис, IDE нужно выкидывать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2016, 11:26 |
|
||
|
PLPgSQL после Oracle: дежавю ?
|
|||
|---|---|---|---|
|
#18+
MasterZiv, Не. В данной бд ты не в курсе. - она не проверяет полностью синтаксис как оракле. Сама бд не умеет. Только ран тайме при выполнении. - моя ошибка ушла после того как залогинился под владельцем схемы в ide. Тут я ступил, пока все как Оракле. Позже ещё отпишу особенности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2016, 11:39 |
|
||
|
PLPgSQL после Oracle: дежавю ?
|
|||
|---|---|---|---|
|
#18+
Например Select cast(f1 || 'aaaaa'|| f2) as varchar (200) После фиксации в бд она переделывает совсем в другой текст)))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2016, 11:45 |
|
||
|
PLPgSQL после Oracle: дежавю ?
|
|||
|---|---|---|---|
|
#18+
Misha TyurinMasterZiv, вопросы с "автономными транзакциями" будут и с "пайпами". С пайпами -- и не жалко, с автономками -- жалко, иногда удобно (логирование), но не смертельно (можно писать и не в транзакционное хранилище типа файл). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2016, 12:27 |
|
||
|
PLPgSQL после Oracle: дежавю ?
|
|||
|---|---|---|---|
|
#18+
MasterZiv, А ты не логируй неудачи)). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2016, 12:33 |
|
||
|
PLPgSQL после Oracle: дежавю ?
|
|||
|---|---|---|---|
|
#18+
MasterZivС пайпами -- и не жалко может я чего не понял , но ЖЭТО я понял как замену пайп http://www.postgresql.org/docs/9.4/interactive/plpgsql-control-structures.html#PLPGSQL-STATEMENTS-RETURNING CREATE TABLE foo (fooid INT, foosubid INT, fooname TEXT); INSERT INTO foo VALUES (1, 2, 'three'); INSERT INTO foo VALUES (4, 5, 'six'); Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2016, 12:39 |
|
||
|
PLPgSQL после Oracle: дежавю ?
|
|||
|---|---|---|---|
|
#18+
essbase.ru, наверное труба в ора прекратится по роунаму, а в пж -- вычислится всё, и только на результирующий набор будет наложен limit. или его (лимит) надо пропихивать в число параметров. вот интересно для security invoker language SQL -- может оно лимт в select ф--ии пропихнуть ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2016, 12:53 |
|
||
|
PLPgSQL после Oracle: дежавю ?
|
|||
|---|---|---|---|
|
#18+
qwwqнаверное труба в ора прекратится по роунаму, а в пж -- вычислится всё, и пруф на доку ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2016, 12:59 |
|
||
|
PLPgSQL после Oracle: дежавю ?
|
|||
|---|---|---|---|
|
#18+
essbase.ruпруф на доку ? разул глаза и прочел Note: The current implementation of RETURN NEXT and RETURN QUERY stores the entire result set before returning from the function, as discussed above. That means that if a PL/pgSQL function produces a very large result set, performance might be poor: data will be written to disk to avoid memory exhaustion, but the function itself will not return until the entire result set has been generated. A future version of PL/pgSQL might allow users to define set-returning functions that do not have this limitation. Currently, the point at which data begins being written to disk is controlled by the work_mem configuration variable. Administrators who have sufficient memory to store larger result sets in memory should consider increasing this parameter. т.е. работает так же как MsSQL ... спасибо что уточнили ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2016, 13:01 |
|
||
|
PLPgSQL после Oracle: дежавю ?
|
|||
|---|---|---|---|
|
#18+
essbase.ruqwwqнаверное труба в ора прекратится по роунаму, а в пж -- вычислится всё, и пруф на доку ? не дока, но познавательно: https://habrahabr.ru/post/275851/ там кусок про "select * from test() limit 1;" а то, что сами пруф сыскали -- это хорошо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2016, 13:15 |
|
||
|
PLPgSQL после Oracle: дежавю ?
|
|||
|---|---|---|---|
|
#18+
qwwq, Вопрос в Oracle можно было сделать hand-made кэширование и ин-мемори объявляя массив в пакете , который использовался в контексте всего подключения. Как такое сделать в PG ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2016, 16:06 |
|
||
|
PLPgSQL после Oracle: дежавю ?
|
|||
|---|---|---|---|
|
#18+
essbase.ruqwwq, Вопрос в Oracle можно было сделать hand-made кэширование и ин-мемори объявляя массив в пакете , который использовался в контексте всего подключения. Как такое сделать в PG ? Только что в временную таблицу загонять данные. Но это весьма дорогой метод применимый для вещей которые раз в минуты вызываются но не для вещей которые вызываются 100 раз в секунду. -- Maxim Boguk www.postgresql-consulting.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2016, 16:46 |
|
||
|
PLPgSQL после Oracle: дежавю ?
|
|||
|---|---|---|---|
|
#18+
essbase.ru, не понял вопроса. для сессионного кеша и т.п. есть более другие языки. plperlu например. я правда в нем плаваю ( в самом перле -- не моё ), но что--то с "хеш--таблицей на проходе" писал. первое, что лет 10 тому попалось для оного -- pltcl. (с тем же примерно уровнем навыков. работало). ах да, "c" -- если не боитесь. говорят шустро работает :0] это вот -- про более другие языки и отсутствие табличной переменной и/или отсутствие передачи по--ссылке (т.е без копирования значения) в plpgsql -- печаль. Но учит изобретать "декларативные-трюки-на-проходе". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2016, 16:47 |
|
||
|
PLPgSQL после Oracle: дежавю ?
|
|||
|---|---|---|---|
|
#18+
> объявляя массив в пакете http://www.postgresql.org/docs/current/static/plpython-sharing.html http://www.postgresql.org/docs/current/static/plperl-global.html вот такие еще штуки тут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2016, 17:00 |
|
||
|
PLPgSQL после Oracle: дежавю ?
|
|||
|---|---|---|---|
|
#18+
Misha Tyurin, Не могу угомонится )) Все может PG )) Вопрос DB-LINK умеет только к другим PG или через ODBC я могу подцепить ЛЮБОЙ источник ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2016, 17:24 |
|
||
|
PLPgSQL после Oracle: дежавю ?
|
|||
|---|---|---|---|
|
#18+
essbase.ruMisha Tyurin, Не могу угомонится )) Все может PG )) Вопрос DB-LINK умеет только к другим PG или через ODBC я могу подцепить ЛЮБОЙ источник ? Можно к любой БД. Только надо стороннее расширение поставить. Где-то была ссылка, найду -скину. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2016, 17:30 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=39171100&tid=1997432]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
165ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
79ms |
get tp. blocked users: |
1ms |
| others: | 270ms |
| total: | 564ms |

| 0 / 0 |
