|
|
|
А можно тут создать функцию как на оракле?
|
|||
|---|---|---|---|
|
#18+
Можно ли в postgre сделать функцию как на оракле, чтобы был 1 входной параметр, по нему будем проверять некие условия 2 выходных параметра, если условия по первому удовлетворительны и Returns integer типа код ошибки как то так: create function (in a integer, out name varchar, out code varchar) returns integer как это сделать правильно на plpgsql? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2014, 21:15:52 |
|
||
|
А можно тут создать функцию как на оракле?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2014, 21:37:26 |
|
||
|
А можно тут создать функцию как на оракле?
|
|||
|---|---|---|---|
|
#18+
KonstanrtinМожно ли в postgre сделать функцию как на оракле, чтобы был 1 входной параметр, по нему будем проверять некие условия 2 выходных параметра, если условия по первому удовлетворительны и Returns integer типа код ошибки как то так: create function (in a integer, out name varchar, out code varchar) returns integer как это сделать правильно на plpgsql? Всегда возвращать из функции все 3 значения... просто в случае ошибки первые два в NULL ставить. Функция не умеет разное количетсво колонок возвращать в разных ситуациях. PS: я что то такой возможности в оракле не помню. Приведите пример оракловой функции с требуемой функциональностью. --Maxim Boguk www.postgresql-consulting.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2014, 23:28:19 |
|
||
|
А можно тут создать функцию как на оракле?
|
|||
|---|---|---|---|
|
#18+
KonstanrtinМожно ли в postgre сделать функцию как на оракле, чтобы был 1 входной параметр, по нему будем проверять некие условия 2 выходных параметра, если условия по первому удовлетворительны и Returns integer типа код ошибки как то так: create function (in a integer, out name varchar, out code varchar) returns integer как это сделать правильно на plpgsql? Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2014, 23:30:40 |
|
||
|
А можно тут создать функцию как на оракле?
|
|||
|---|---|---|---|
|
#18+
kak_v_oracelKonstanrtinМожно ли в postgre сделать функцию как на оракле, чтобы был 1 входной параметр, по нему будем проверять некие условия 2 выходных параметра, если условия по первому удовлетворительны и Returns integer типа код ошибки как то так: create function (in a integer, out name varchar, out code varchar) returns integer как это сделать правильно на plpgsql? Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. так RAISE это же не возврат значения RAISE есть и в Pg c тем же синтаксисом: http://www.postgresql.org/docs/9.3/static/plpgsql-errors-and-messages.html --Maxim Boguk www.postgresql-consulting.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2014, 00:53:23 |
|
||
|
А можно тут создать функцию как на оракле?
|
|||
|---|---|---|---|
|
#18+
Maxim Boguk Приведите пример оракловой функции с требуемой функциональностью. Да сколько угодно можете и сами придумать, главное там такая возможность есть Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. получается в pg никак? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2014, 07:01:30 |
|
||
|
А можно тут создать функцию как на оракле?
|
|||
|---|---|---|---|
|
#18+
kak_v_oracel, Ваш пример не подходит, т.к. нужно несколько out параметров и один integer в returns, чтобы вызывать i := get_func(111, a, b); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2014, 07:08:24 |
|
||
|
А можно тут создать функцию как на оракле?
|
|||
|---|---|---|---|
|
#18+
Konstanrtinkak_v_oracel, Ваш пример не подходит, т.к. нужно несколько out параметров и один integer в returns, чтобы вызывать i := get_func(111, a, b); мальчик, ты тупой ? тебе дали ссылку 16910607 -- делай чо хошь PS много полей возвращаются как "returns record" PPS и имей в виду, дурачок, -- параметры, в т.ч. inout передаются в пж по значению поэтому все твои выбоины с неявной передачей якобы через out параметры не пройдут. после вызова надо явно присваивать переменным текущего контекста поля возврата. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2014, 08:14:49 |
|
||
|
А можно тут создать функцию как на оракле?
|
|||
|---|---|---|---|
|
#18+
kak_v_oracelPS много полей возвращаются как "returns record" так тоже не подходит, хотя я надеелся что в pg есть такое просто я не нашел P.S. можно не словоблудить как ты, д..., а просто написать - "так нельзя в pg" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2014, 10:23:50 |
|
||
|
А можно тут создать функцию как на оракле?
|
|||
|---|---|---|---|
|
#18+
Konstanrtin... а просто написать - "так нельзя в pg" Можно! В PostgreSQL можно больше, чем в ORACLE — однозначно. Вот только постановка задачи несколько завуалирована, потому и блуждаем. Думается, что если все же вы потратите свое время и почитаете документацию, то все найдете. Тут много примеров что PostgreSQL может для PL/SQL функций: http://www.postgresql.org/docs/current/interactive/xfunc-sql.html Аналогичное можно делать и на других языках, из которых PL/pgSQL (вкупе с PL/SQL) является стандартным: http://www.postgresql.org/docs/current/interactive/plpgsql.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2014, 11:37:19 |
|
||
|
А можно тут создать функцию как на оракле?
|
|||
|---|---|---|---|
|
#18+
vyegorov, не суетитесь ТС хочет передаваться по ссылке, чтобы по выходу из ф-ии переданные в процедуру переменные (в контексте вызова) получили значение, присвоенное в процедуре, без каких-то его телодвижений. Другое дело, -- он объяснить этого не может, а когда его поправляют -- дуется, как беременная на 8-м месяце. а т.к. передача в plpgsql, как минимум, идет по значению, то "так нельзя". можно иначе. PS с этим связаны проблемы тормозных агрегатов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2014, 11:51:59 |
|
||
|
А можно тут создать функцию как на оракле?
|
|||
|---|---|---|---|
|
#18+
лопатаон объяснить этого не может вы на форуме сидите или как бабки у подъезда, которым только дай повод? не можете без провокаций - не пишите вообще. Завуалирована задача? Объяснить не может? Куда уж понятнее задача? Меня интересует (конкретно!) именно такой синтаксис как я написал! Обратился на форум потому что сам в доках ничего точно такого не нашел. Блин вы точно - бабки у подъезда. Спасибо всем, еще раз сюда приходить.... Стадо нЕлюдей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2014, 13:00:08 |
|
||
|
А можно тут создать функцию как на оракле?
|
|||
|---|---|---|---|
|
#18+
Konstanrtin, неуважаемый, вы себя без очепятки, какбе, даже набрать не можете, а туда же -- указивки издавать. вы тут, как вы правильно заметили, на форуме, а не в частной лавочке, т.ч. указания, кому тут писать и о чём -- оставьте при себе. ещё раз вам объясняю -- проблема ваша не в синтаксисе [каком либо], а в механизме передачи параметров. именно потому, что параметры в постгресе передаются по значению -- какие то процедуры (которые могли бы ничего не возвращать, но при этом менять содержимое переданных по ссылке параметров) в постгресе не существуют как класс. все они являются функциями. возвращают значения (при множестве out параметров -- значения полей возврата -- record-а, число полей должно совпадать с числом out параметров). "наружние" же значения в переданной "снаружи" переменной при этом не меняется (при передаче из контекста в контекст передается значение, но не ссылка). И по возвращению вам потребуется дополнительно произвести присвоения (если вы ожидали обратного). что-то можно, наверное, попробовать сделать на рефкурсорах (значение== имя куросра == "ссылка") . не пробовал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2014, 13:32:53 |
|
||
|
А можно тут создать функцию как на оракле?
|
|||
|---|---|---|---|
|
#18+
вот тут, какбе, почитайте, если мне не верите: http://stackoverflow.com/questions/9380257/oracle-stored-procedure-out-parameter-vs-postgresql-pl-pgsql-function-out-param ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2014, 13:56:32 |
|
||
|
А можно тут создать функцию как на оракле?
|
|||
|---|---|---|---|
|
#18+
какбеKonstanrtin, неуважаемый, указания, кому тут писать и о чём -- оставьте при себе. ...бабушка, это не я семечки нагрыз, тут уже было... не ругайтесь, идите там уже сериал начался... какие то процедуры (которые могли бы ничего не возвращать, но при этом менять содержимое переданных по ссылке параметров) в постгресе не существуют как класс. все они являются функциями. возвращают значения (при множестве out параметров -- значения полей возврата -- record-а) ок, это я тоже в доках нашел до обращения сюда, НЕ спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2014, 14:07:55 |
|
||
|
А можно тут создать функцию как на оракле?
|
|||
|---|---|---|---|
|
#18+
Konstanrtin <> ок, это я тоже в доках нашел до обращения сюда, НЕ спасибоесли УЖЕ нашёл, а всё равно припёрси спрашивать -- думаю, шо ты , мальчег, тормас, а даже не констанРтин ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2014, 14:12:58 |
|
||
|
А можно тут создать функцию как на оракле?
|
|||
|---|---|---|---|
|
#18+
йошкин кот, брысь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2014, 14:14:56 |
|
||
|
А можно тут создать функцию как на оракле?
|
|||
|---|---|---|---|
|
#18+
Konstanrtin, никшни , тормас ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2014, 14:17:23 |
|
||
|
А можно тут создать функцию как на оракле?
|
|||
|---|---|---|---|
|
#18+
Konstanrtin, Близкое к тому, что ты хочешь можно сделать так. Функция: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Вызов: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. В итоге отличия от ораклового варианта следующие: 1. в функцию не нужно передавать два out параметра 2. функция возвращает запись ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2014, 21:40:37 |
|
||
|
|

start [/forum/topic.php?fid=53&fpage=119&tid=1998321]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
39ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 191ms |
| total: | 312ms |

| 0 / 0 |
