Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Хранимые процедуры. Где они???
|
|||
|---|---|---|---|
|
#18+
ТОка начал юзать постгрес создаю хранимую процедуру либо sql ем либо формами грит что создал но я их вообще найти не могу где они лежат в какой ветке уже все просмотрел! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2008, 13:25 |
|
||
|
Хранимые процедуры. Где они???
|
|||
|---|---|---|---|
|
#18+
это смотря в чем смотришь....в пладмине это фукции веточка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2008, 13:26 |
|
||
|
Хранимые процедуры. Где они???
|
|||
|---|---|---|---|
|
#18+
блин капеец точно просто их там так много ащо 2 вопроса как она выполняется ну типа execute не работает почемуто и есть хороший мануал к пладмину не пинайте сильно ятока начал) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2008, 13:28 |
|
||
|
Хранимые процедуры. Где они???
|
|||
|---|---|---|---|
|
#18+
select func(param); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2008, 13:33 |
|
||
|
Хранимые процедуры. Где они???
|
|||
|---|---|---|---|
|
#18+
я сам начинающий а пгадмин и так по моему интуитивно понятный по крайней мере у меня вопроса по мануалу к нему не возникало, удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2008, 13:34 |
|
||
|
Хранимые процедуры. Где они???
|
|||
|---|---|---|---|
|
#18+
нифига себе интуитивно всехда хранимки и ms sql выполнялись execute имя процедуры; будем искать мануалы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2008, 13:36 |
|
||
|
Хранимые процедуры. Где они???
|
|||
|---|---|---|---|
|
#18+
ну это уже не в пгадмине дело.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2008, 13:39 |
|
||
|
Хранимые процедуры. Где они???
|
|||
|---|---|---|---|
|
#18+
ефстественно все таки у тя есть мануалы по sql посгресовскому и по пладми или может знаешь где взять? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2008, 13:44 |
|
||
|
Хранимые процедуры. Где они???
|
|||
|---|---|---|---|
|
#18+
http://]http://www.postgresql.org/docs/8.3/static/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2008, 13:55 |
|
||
|
Хранимые процедуры. Где они???
|
|||
|---|---|---|---|
|
#18+
АндрюхецТОка начал юзать постгрес создаю хранимую процедуру либо sql ем либо формами грит что создал но я их вообще найти не могу где они лежат в какой ветке уже все просмотрел! поищи в 'public' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2008, 15:32 |
|
||
|
Хранимые процедуры. Где они???
|
|||
|---|---|---|---|
|
#18+
Мне тоже интересен сей вопросец... Насколько я понял - хранимых процедур в постгрессе нет, а есть тока функции. Как тада для постгресса решается вопрос об исключении возможных инъекций, который в sql server 2005 решается как раз таки хранимками? Я качнул .NET библы для постгресса, заюзал его провайдера, выполнив команду sql-запроса, но с бд нужно контактировать процедурами с указанием параметров, ежели таковые требуются (во избежания заражения бацилами вплоть до летального исхода), а не прямыми SQL-запросами. Нашел в инете книгу по постгрессу, пролистал функции - сделал вывод, что они работают аналогично функциям MS SQL Server, а это не то, что нужно. По хранимкам ничего... Однако ведь имеется .NET-библиотека для работы с PostgreSQL и в ней ясно видно, что принцип работы с этой субд стандартный, однако я не понял, как создать в постгрессе то, что в MS SQL Server называется хранимой процедурой... На скорую руку накидал код примера, в котором видим, что принцип один и тот же для любых субд (в примере я указал только две, но можно сколько угодно) обратите внимание на закомментированный код: Код: 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. п.с. пока глубоко не разбирался с этим вопросом, спрашиваю, чтобы иметь начальное общее представление. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2008, 17:02 |
|
||
|
Хранимые процедуры. Где они???
|
|||
|---|---|---|---|
|
#18+
Compositum...вопрос об исключении возможных инъекций, который в sql server 2005 решается как раз таки хранимками? Перепутали мягкое с тёплым . Для борьбы с иньекциями всюду - и в MSSQL, и в Оракле, и в Постгресе - используют параметризированные запросы . Это защита от злонамеренных пользователей. Процедуры предназначены в основном для хранения кода на сервере, потому и называются хранимыми. А когда при этом закрывают прямой доступ к таблицам, то это скорее защита от криворуких разработчиков клиентской части получается Если например вы динамический SQL в процедуре исполнять будете, то чем вам поможет факт того, что процедуру заюзали? Нашел в инете книгу по постгрессу, пролистал функции - сделал вывод, что они работают аналогично функциям MS SQL Server, а это не то, что нужно. Неверно! В отличие от MSSQL, в постгресовских можно выполнять любой код, включая DDL. Так что наши функции круче ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2008, 03:57 |
|
||
|
Хранимые процедуры. Где они???
|
|||
|---|---|---|---|
|
#18+
Для тех, кто не знаком с MSSQL, поясните, чем отличается хранимая процедура от функции ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2008, 09:10 |
|
||
|
Хранимые процедуры. Где они???
|
|||
|---|---|---|---|
|
#18+
я не знаком, по сути функция возвращающая void есть процедура, ну это в моем понятии так, если это не так плз поправте меня... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2008, 09:42 |
|
||
|
Хранимые процедуры. Где они???
|
|||
|---|---|---|---|
|
#18+
Serik AkhmetovДля тех, кто не знаком с MSSQL, поясните, чем отличается хранимая процедура от функции ? В MSSQL функция - может принимать на вход какие-то параметры, что-то считать, делать селекты к таблицам, и она всегда возвращает какое-то одно значение. Например, можно написать функцию, переводящую строку 'Иванов Иванов Иванович' в 'Иванов И.И.' select FIO, GetFamiliyaIO(FIO) as FamiliyaIO from Users или функцию, которая по ID документа, возвращает дату его создания. select ID, GetCreateDate(ID) from Document Но функция в MSSQL не может ничего изменять в таблицах. То есть только что-либо считает и выдает одно(!) значение... А продура - может принимать на вход какие-то параметры, и может делать все, что хочешь. апдейтить, инсертить, удалять, создавать таблицы, добавлять индексы, может запускать другие процедуры, возвращать в качетсве результата несколько запросов (типа RecordSet в VB), может на выходе выдавать ReturnValue. Плюс какие-то может изменить значения входящих параметров. Но процедуру можно только выполнить (Execute)! exec CreateDocumentAndReturnCreate ID или exec @CreateDate = CreateDocumentAndReturnCreate ID Ее НЕЛЬЗЯ(!) вставить в запрос типа select ID, CreateDocumentAndReturnCreate(ID) from Document ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2008, 18:15 |
|
||
|
Хранимые процедуры. Где они???
|
|||
|---|---|---|---|
|
#18+
dvasyaSerik AkhmetovДля тех, кто не знаком с MSSQL, поясните, чем отличается хранимая процедура от функции ? В MSSQL функция - может принимать на вход какие-то параметры, что-то считать, делать селекты к таблицам, и она всегда возвращает какое-то одно значение. Например, можно написать функцию, переводящую строку 'Иванов Иванов Иванович' в 'Иванов И.И.' select FIO, GetFamiliyaIO(FIO) as FamiliyaIO from Users или функцию, которая по ID документа, возвращает дату его создания. select ID, GetCreateDate(ID) from Document Но функция в MSSQL не может ничего изменять в таблицах. То есть только что-либо считает и выдает одно(!) значение... ...... Ее НЕЛЬЗЯ(!) вставить в запрос типа select ID, CreateDocumentAndReturnCreate(ID) from Document В 2000 SQL это всё есть. Писал лично. Вы ошибаетесь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2008, 12:43 |
|
||
|
Хранимые процедуры. Где они???
|
|||
|---|---|---|---|
|
#18+
dvasyaSerik AkhmetovДля тех, кто не знаком с MSSQL, поясните, чем отличается хранимая процедура от функции ? Но функция в MSSQL не может ничего изменять в таблицах. То есть только что-либо считает и выдает одно(!) значение... Не обязательно Там есть функции возвращающие таблицу :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2008, 16:57 |
|
||
|
Хранимые процедуры. Где они???
|
|||
|---|---|---|---|
|
#18+
mwolfdvasyaSerik AkhmetovДля тех, кто не знаком с MSSQL, поясните, чем отличается хранимая процедура от функции ? Но функция в MSSQL не может ничего изменять в таблицах. То есть только что-либо считает и выдает одно(!) значение... Не обязательно Там есть функции возвращающие таблицу :-) Согласен, функция может вернуть: либо одно значение типа scalar_data_type, либо одно значение типа TABLE, в которой может быть сразу целая таблица значений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2008, 12:44 |
|
||
|
Хранимые процедуры. Где они???
|
|||
|---|---|---|---|
|
#18+
lexx1234dvasyaSerik AkhmetovДля тех, кто не знаком с MSSQL, поясните, чем отличается хранимая процедура от функции ? В MSSQL функция - может принимать на вход какие-то параметры, что-то считать, делать селекты к таблицам, и она всегда возвращает какое-то одно значение. Например, можно написать функцию, переводящую строку 'Иванов Иванов Иванович' в 'Иванов И.И.' select FIO, GetFamiliyaIO(FIO) as FamiliyaIO from Users или функцию, которая по ID документа, возвращает дату его создания. select ID, GetCreateDate(ID) from Document Но функция в MSSQL не может ничего изменять в таблицах. То есть только что-либо считает и выдает одно(!) значение... ...... Ее НЕЛЬЗЯ(!) вставить в запрос типа select ID, CreateDocumentAndReturnCreate(ID) from Document В 2000 SQL это всё есть. Писал лично. Вы ошибаетесь. Тут Вы немного неверно сократили мой текст. Взяв начало описания про функция и окончание описания про процедуру. Функуция и процедура - совершенно не одно и тоже (к сожалению). Transact-SQL Reference The following statements are allowed in the body of a multi-statement function. Statements not in this list are not allowed in the body of a function: Assignment statements. Control-of-Flow statements. DECLARE statements defining data variables and cursors that are local to the function. SELECT statements containing select lists with expressions that assign values to variables that are local to the function. Cursor operations referencing local cursors that are declared, opened, closed, and deallocated in the function. Only FETCH statements that assign values to local variables using the INTO clause are allowed; FETCH statements that return data to the client are not allowed. INSERT, UPDATE, and DELETE statements modifying table variables local to the function. EXECUTE statements calling an extended stored procedures. Из этого текста ясно, что к сожалению функция в Transact-SQL не может проводить INSERT, UPDATE, and DELETE statements, которые изменяют не локальные (временные) для этой функции таблицы. И к сожалению, функция не может вызывать другие хранимые процедуры (extended stored procedures - не считаются, ими пользуется только в очень исключительных случаях). В ответ на попытку вызвать процедуру из функции MS SQL выдает ошибку: "Only functions and extended stored procedures can be executed from within a function." Поэтому я еще не смог написать функцию dbo.fnGenereateNextID(), аналогичную секвенсу SEQ_LOAD.NEXTVAL в ORACLE, которая в селекте для каждой строки возвращала бы новое значение, чтобы использовать его в запросах на массовую вставку типа: insert into Table1(PrID, PrName) select dbo.fnGenereateNextID(), PrName from View1 where PrType = 10 Поэтому пока обхожусь полями типа int IDENTITY (1, 1). Может кто-то уже написал такую функцию в MS SQL? PS: может заодно неграмонтному в PostgreSQL расскажете, каким способом в PostgreSQL создается значение для ключевого поля? Сиквенсом или полем типа IDENTITY? Дайте пожалуйста ссылку или конкретный пример. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2008, 12:59 |
|
||
|
Хранимые процедуры. Где они???
|
|||
|---|---|---|---|
|
#18+
Читайте документацию - там есть и пара образцов написания сишных ХП. Плюс к этому примеры можно найти порывшись в contrib-e. Например мне многое подсказали сорцы ./contrib/dblink. Насчёт последнего - ответ прост :тип SERIAL. Остальное в доке. P.S И хватит оффтопить о проблемах/фичах M$SQL. Или не знаем где форум по нему??. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2008, 13:54 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=35572147&tid=2003890]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
65ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
| others: | 244ms |
| total: | 414ms |

| 0 / 0 |
