Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Select + stored procedure
|
|||
|---|---|---|---|
|
#18+
Народ, дайте совет. Есть здача тарификации данных с АТС. Есть даблица междугородних кодов и таблица междугородних звонков. звонок - это последовательность цифр от 9 до 20, от сюда надо выделить код города. В Accesse я это сделал. В SQL встала проблема, как в selecte вызвать хранимую процедуру с параметром. т.е. Я selectом выбираю номера - select nomer from table. Есть процедура, выделяющая код из номера - ret_kod(nomer). Как теперь вставить одно в другое. Т.е. я хочу что бы select последовательно перебирал все номера , каждый выбранный номер обрабатывался бы процедурой ret_kod, процедура возвращает код, который потом должен записаться в таблицу и так со всеми номерами. Помогите. Может кто-то делал что-то подобное??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2002, 09:56 |
|
||
|
Select + stored procedure
|
|||
|---|---|---|---|
|
#18+
В 2000-ном используйте функции. В 7-м - никак. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2002, 10:31 |
|
||
|
Select + stored procedure
|
|||
|---|---|---|---|
|
#18+
Есть даблица междугородних кодов и таблица междугородних звонков. звонок - это последовательность цифр от 9 до 20, от сюда надо выделить код города А что через JOIN никак нельзя связать эти две таблицы ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2002, 10:39 |
|
||
|
Select + stored procedure
|
|||
|---|---|---|---|
|
#18+
Таблици не связать, т.к. в номере нет никаких разделителей кода от номера. Поэтому я хочу искать все вхождения кодов в номер, а потом выбираю самый длинный код - он и будет правильным ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2002, 10:43 |
|
||
|
Select + stored procedure
|
|||
|---|---|---|---|
|
#18+
Ну так, все-таки, как в селекте использовать процедуру с параметрами, формат? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2002, 11:23 |
|
||
|
Select + stored procedure
|
|||
|---|---|---|---|
|
#18+
Повторяю. В 7-м - никак. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2002, 12:59 |
|
||
|
Select + stored procedure
|
|||
|---|---|---|---|
|
#18+
Понял. У меня 2000. Написал я вот такую функцию: CREATE FUNCTION [dbo].[fun_ret_kod] (@m_number varchar(50)) RETURNS varchar (50) AS BEGIN declare @kod varchar(50) return (select top 1 kod from all_kod where (convert(varchar(50),@m_number) like kod +'%') ORDER BY Len(all_kod.kod) desc) END Что в ней неправильно? Затем пытаюсь ее вызвать из процедуры типа: CREATE PROCEDURE [dbo].[test1] AS select * from dbo.fun_ret_kod(812) GO exec dbo.test1 Выдает : Invalid object name 'dbo.fun_ret_kod'. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2002, 13:04 |
|
||
|
Select + stored procedure
|
|||
|---|---|---|---|
|
#18+
Попробую предложить способ: -создаешь временную табл. и insert into exec stored procedure А потом со временной табл. делай, что хочешь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2002, 04:16 |
|
||
|
Select + stored procedure
|
|||
|---|---|---|---|
|
#18+
Попробую предложить способ: -создаешь временную табл. и insert... into #tmptable exec stored procedure А потом со временной табл. делай, что хочешь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2002, 04:17 |
|
||
|
Select + stored procedure
|
|||
|---|---|---|---|
|
#18+
Проще всего написать курсор и вызывать в нем нужную sp с параметрами.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2002, 04:59 |
|
||
|
Select + stored procedure
|
|||
|---|---|---|---|
|
#18+
2 galaxy Есть у меня сомнения что такая функция создастся. Бывают функции скалярные и бывают табличные. Вы делаете нечто среднее. Почитайте внимательно как писать функции, в конечном итоге это будет лучше чем sp и курсоры. По идее там ничего сложного нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2002, 06:08 |
|
||
|
Select + stored procedure
|
|||
|---|---|---|---|
|
#18+
Хм, а не проще ли использовать данный запрос select top 1 kod from all_kod where (convert(varchar(50), maintable.called_number ) like kod +'%') ORDER BY Len(all_kod.kod) desc как столбец в основном запросе ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2002, 07:22 |
|
||
|
Select + stored procedure
|
|||
|---|---|---|---|
|
#18+
2galaxy Ошибка в вызове. Попробуйте: CREATE PROCEDURE [dbo].[test1] AS select dbo.fun_ret_kod(id), * from sysobjects GO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2002, 09:26 |
|
||
|
Select + stored procedure
|
|||
|---|---|---|---|
|
#18+
2galaxy Ошибка в вызове. Попробуйте: CREATE PROCEDURE [dbo].[test1] AS select dbo.fun_ret_kod(id), * from sysobjects GO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2002, 10:14 |
|
||
|
Select + stored procedure
|
|||
|---|---|---|---|
|
#18+
Спасибо за советы. Я написал функцию и ее через запрос, все работает и очень просто и коротко( в отличии от предыдущего написания в Accesse) В Accesse тарификация за месяц занимала минут 25-30, в sql - 25-30секунд, просто чудо какоето. Еще один вопрос по ходу, как обрезать знаки посли запятой, есть ли стандартные способы, т.е. есть цифра 99,23987654322 хочу что-бы было 99,23 (или может быть 99,24)??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2002, 10:27 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32028190&tid=1823019]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
135ms |
get topic data: |
5ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 427ms |

| 0 / 0 |
