Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / PLPgSQL после Oracle: дежавю ? / 25 сообщений из 29, страница 1 из 2
10.02.2016, 00:18
    #39167191
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PLPgSQL после Oracle: дежавю ?
Привет, перехожу на Postgres с Oracle,
не миргация, просто другой проек.
Читаю документацию по PlPgSQL и испытываю стойкое ощущение, что я это уже где-то видел...
Уж больно похоже на Pl/SQL.

Не, ну я в курсе, чем занимается компания EnterpriseDB, Брюс Момжан рассказывал,
но вот чтобы настолько ...

И вопрос -- насколько они похожи, может и изучать PLPgSQL не нужно особо,
PL/SQL я уже знаю.


----
Читал хинты оракла. Много думал...
...
Рейтинг: 0 / 0
10.02.2016, 05:12
    #39167227
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PLPgSQL после Oracle: дежавю ?
MasterZivПривет, перехожу на Postgres с Oracle,
не миргация, просто другой проек.
Читаю документацию по PlPgSQL и испытываю стойкое ощущение, что я это уже где-то видел...
Уж больно похоже на Pl/SQL.

Не, ну я в курсе, чем занимается компания EnterpriseDB, Брюс Момжан рассказывал,
но вот чтобы настолько ...

И вопрос -- насколько они похожи, может и изучать PLPgSQL не нужно особо,
PL/SQL я уже знаю.


----
Читал хинты оракла. Много думал...


Ну pl/pgsql в каком то смысле писался под копирку с pl/sql насколько это на архитектуру ложилось.
В общем да они очень похожи.
...
Рейтинг: 0 / 0
10.02.2016, 07:17
    #39167250
mad_nazgul
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PLPgSQL после Oracle: дежавю ?
MasterZivИ вопрос -- насколько они похожи, может и изучать PLPgSQL не нужно особо,
PL/SQL я уже знаю.

Изучать обязательно!
Чтобы знать чего в plpgsql нет, в сравнении с PL/SQL.
...
Рейтинг: 0 / 0
10.02.2016, 10:05
    #39167324
Алекссс
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PLPgSQL после Oracle: дежавю ?
mad_nazgulЧтобы знать чего в plpgsql нет, в сравнении с PL/SQL.
компилишь все свои оракловые процедуры и смотришь, чо отвалилось
...
Рейтинг: 0 / 0
10.02.2016, 10:25
    #39167335
qwwq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PLPgSQL после Oracle: дежавю ?
Алексссmad_nazgulЧтобы знать чего в plpgsql нет, в сравнении с PL/SQL.
компилишь все свои оракловые процедуры и смотришь, чо отвалилось

а потом годами чистишь то, что не отвалилось, но работает не так, как задумано.
видели, ага.

ары кала--еды, такие ары.
...
Рейтинг: 0 / 0
10.02.2016, 13:37
    #39167561
Misha Tyurin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PLPgSQL после Oracle: дежавю ?
MasterZiv,

вопросы с "автономными транзакциями" будут и с "пайпами".

по автономным -- делаем через dblink/plproxy/fdw;
по пайпам -- нечем заменить и придется всё тянуть между вызовами, весь сет.

--
ну и нету партицирования/etl/параллельности на ddl в pg.
...
Рейтинг: 0 / 0
10.02.2016, 13:56
    #39167594
qwwq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PLPgSQL после Oracle: дежавю ?
Misha Tyurin,

там бесконечно мелочевки

STRICT , там гле ожидаем дата_нот_фаунд
а лучше NOT FOUND (без лишнего блока)

или вот INOUT с ожиданием, что в месте вызова оно поменяется "само", по--ссылке, типа. (ан пж тут вас поставит в позу)

и такого, по мелочи, набирается воз и тележка.

автономии эмулируемы, но цена -- возможность неразрешимого в автомате дедлока.

не говоря о том, что в постгресе сплошь и рядом нужны свои техники запинывания запросов на нужный план. просто переписыванием.
...
Рейтинг: 0 / 0
10.02.2016, 14:54
    #39167657
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PLPgSQL после Oracle: дежавю ?
MasterZivперехожу на Postgres с Oracle,
- текущей схемы тут нет?
Во вьюхе нужно обязательно ставить имя схемы, иначе моё IDE ругается.
В хранимке иногда ругается иногда нет(.
...
Рейтинг: 0 / 0
15.02.2016, 11:24
    #39171100
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PLPgSQL после Oracle: дежавю ?
Petro123,

Если IDE ругается на валидный синтаксис, IDE нужно выкидывать...
...
Рейтинг: 0 / 0
15.02.2016, 11:26
    #39171103
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PLPgSQL после Oracle: дежавю ?
Petro123,

Если IDE ругается на валидный синтаксис, IDE нужно выкидывать...
...
Рейтинг: 0 / 0
15.02.2016, 11:39
    #39171123
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PLPgSQL после Oracle: дежавю ?
MasterZiv,
Не.
В данной бд ты не в курсе.
- она не проверяет полностью синтаксис как оракле. Сама бд не умеет. Только ран тайме при выполнении.
- моя ошибка ушла после того как залогинился под владельцем схемы в ide.
Тут я ступил, пока все как Оракле.
Позже ещё отпишу особенности.
...
Рейтинг: 0 / 0
15.02.2016, 11:45
    #39171135
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PLPgSQL после Oracle: дежавю ?
Например
Select cast(f1 || 'aaaaa'|| f2) as varchar (200)
После фиксации в бд она переделывает совсем в другой текст))))
...
Рейтинг: 0 / 0
15.02.2016, 12:27
    #39171211
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PLPgSQL после Oracle: дежавю ?
Misha TyurinMasterZiv,

вопросы с "автономными транзакциями" будут и с "пайпами".



С пайпами -- и не жалко, с автономками -- жалко, иногда удобно (логирование), но не смертельно (можно писать и
не в транзакционное хранилище типа файл).
...
Рейтинг: 0 / 0
15.02.2016, 12:33
    #39171222
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PLPgSQL после Oracle: дежавю ?
MasterZiv,
А ты не логируй неудачи)).
...
Рейтинг: 0 / 0
15.02.2016, 12:39
    #39171230
essbase.ru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PLPgSQL после Oracle: дежавю ?
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.
CREATE OR REPLACE FUNCTION get_all_foo() RETURNS SETOF foo AS
$BODY$
DECLARE
    r foo%rowtype;
BEGIN
    FOR r IN
        SELECT * FROM foo WHERE fooid > 0
    LOOP
        -- can do some processing here
        RETURN NEXT r; -- return current row of SELECT
    END LOOP;
    RETURN;
END
$BODY$
LANGUAGE plpgsql;

SELECT * FROM get_all_foo();
...
Рейтинг: 0 / 0
15.02.2016, 12:53
    #39171247
qwwq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PLPgSQL после Oracle: дежавю ?
essbase.ru,

наверное труба в ора прекратится по роунаму, а в пж -- вычислится всё, и только на результирующий набор будет наложен limit.
или его (лимит) надо пропихивать в число параметров.

вот интересно для security invoker language SQL -- может оно лимт в select ф--ии пропихнуть ?
...
Рейтинг: 0 / 0
15.02.2016, 12:59
    #39171253
essbase.ru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PLPgSQL после Oracle: дежавю ?
qwwqнаверное труба в ора прекратится по роунаму, а в пж -- вычислится всё, и

пруф на доку ?
...
Рейтинг: 0 / 0
15.02.2016, 13:01
    #39171257
essbase.ru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PLPgSQL после Oracle: дежавю ?
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 ...
спасибо что уточнили )
...
Рейтинг: 0 / 0
15.02.2016, 13:15
    #39171270
qwwq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PLPgSQL после Oracle: дежавю ?
essbase.ruqwwqнаверное труба в ора прекратится по роунаму, а в пж -- вычислится всё, и

пруф на доку ?
не дока, но познавательно:

https://habrahabr.ru/post/275851/

там кусок про "select * from test() limit 1;"

а то, что сами пруф сыскали -- это хорошо.
...
Рейтинг: 0 / 0
15.02.2016, 16:06
    #39171485
essbase.ru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PLPgSQL после Oracle: дежавю ?
qwwq,

Вопрос
в Oracle можно было сделать hand-made кэширование и ин-мемори объявляя массив в пакете , который использовался в контексте всего подключения.

Как такое сделать в PG ?
...
Рейтинг: 0 / 0
15.02.2016, 16:46
    #39171542
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PLPgSQL после Oracle: дежавю ?
essbase.ruqwwq,

Вопрос
в Oracle можно было сделать hand-made кэширование и ин-мемори объявляя массив в пакете , который использовался в контексте всего подключения.

Как такое сделать в PG ?

Только что в временную таблицу загонять данные. Но это весьма дорогой метод применимый для вещей которые раз в минуты вызываются но не для вещей которые вызываются 100 раз в секунду.

--
Maxim Boguk
www.postgresql-consulting.ru
...
Рейтинг: 0 / 0
15.02.2016, 16:47
    #39171543
qwwq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PLPgSQL после Oracle: дежавю ?
essbase.ru,

не понял вопроса.
для сессионного кеша и т.п. есть более другие языки. plperlu например. я правда в нем плаваю ( в самом перле -- не моё ), но что--то с "хеш--таблицей на проходе" писал.

первое, что лет 10 тому попалось для оного -- pltcl. (с тем же примерно уровнем навыков. работало).

ах да, "c" -- если не боитесь. говорят шустро работает :0]


это вот -- про более другие языки и отсутствие табличной переменной и/или отсутствие передачи по--ссылке (т.е без копирования значения) в plpgsql -- печаль. Но учит изобретать "декларативные-трюки-на-проходе".
...
Рейтинг: 0 / 0
15.02.2016, 17:00
    #39171565
Misha Tyurin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PLPgSQL после Oracle: дежавю ?
> объявляя массив в пакете

http://www.postgresql.org/docs/current/static/plpython-sharing.html
http://www.postgresql.org/docs/current/static/plperl-global.html

вот такие еще штуки тут
...
Рейтинг: 0 / 0
15.02.2016, 17:24
    #39171597
essbase.ru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PLPgSQL после Oracle: дежавю ?
Misha Tyurin,

Не могу угомонится )) Все может PG ))

Вопрос

DB-LINK умеет только к другим PG или через ODBC я могу подцепить ЛЮБОЙ источник ?
...
Рейтинг: 0 / 0
15.02.2016, 17:30
    #39171608
ОКТОГЕН
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PLPgSQL после Oracle: дежавю ?
essbase.ruMisha Tyurin,

Не могу угомонится )) Все может PG ))

Вопрос

DB-LINK умеет только к другим PG или через ODBC я могу подцепить ЛЮБОЙ источник ?
Можно к любой БД.
Только надо стороннее расширение поставить.
Где-то была ссылка, найду -скину.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / PLPgSQL после Oracle: дежавю ? / 25 сообщений из 29, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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