powered by simpleCommunicator - 2.0.57     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / выгрузка данных процедуры в таблицу
6 сообщений из 6, страница 1 из 1
выгрузка данных процедуры в таблицу
    #36696253
myspace2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день, друзья!
Скажите, плиз, а есть ли в Sybase возможность выгружать результат исполнения процедуры (имею ввиду в случае если это табличный набор данных) в таблицу. Что-то типа того что есть в MS SQL

create table #tbl (col1 int, col2 int)

insert into #tbl
exec somestoreproc @param1

*подразумевается что хранимая проца возвращает датасет из двух столбцов типа int
...
Рейтинг: 0 / 0
выгрузка данных процедуры в таблицу
    #36696696
Dmitry..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
какая БД?
...
Рейтинг: 0 / 0
выгрузка данных процедуры в таблицу
    #36696708
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в asa есть, в ase напрямую нет, но обходными путями можно , см. FAQ форума.
...
Рейтинг: 0 / 0
выгрузка данных процедуры в таблицу
    #36696962
myspace2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо за отклик. прочитал FAQ.
если позволите, вопросы на понимае. Что пишут в статье по поводу того, как обойти:

"Рассмотреть возможность использования VIEW. Это подходит только в случаях достаточно несложных запросов - JOIN-ов может быть сколько угодно, главное чтобы не было сложных операций типа множественных вложенных подзапросов или реляционного вычитания.

Рассмотреть возможность использовать временную, псевдовременную или постоянную таблицу для промежуточного хранения данных. Кстати, в этом варианте процедура может формировать несколько наборов данных в разных таблицах. При этом код исходной процедуры помещается в ещё одну процедуру -- процедуру-реализацию, которая складывает данные в выходную таблицу, а остальные процедуры либо выдают эти данные клиенту, либо используют их как-то еще."

по первому абзацу я так понял, что должно быть что-то вроде этого:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
if object_id('dbo.testproc') is not null drop proc dbo.testproc
go
create proc dbo.testproc
as
begin
	select * from dbo.T1
end
go
create view testview
as execute dbo.testproc
подскажите, плиз, как это должно выглядеть, т.к. именно этот исходник не работает. как-то можно создать вьюху на результат процедуры? какой синаксис этого? или я не догнал идею?

по второму абзацу тоже не понял :( вот как мне видится идея:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
if object_id('dbo.testproc1') is not null drop proc dbo.testproc1

go
create proc dbo.testproc1
as
begin

???????????????
 exec dbo.testproc

end
go
т.е. создал процедуру-оболочку, вызывающую нужную процедуру и помещающую ее результат в таблицу ну или вьюху.
но опять же вопрос с которого начали - как поместить результат вызова процедуры в таблицу (по идее эта конструкция должна идти в том месте, которое отмечено "???????????????" во фрагментике).
подскажите, пожалуйста, где я не догоняю.
Заранее спасибо!
...
Рейтинг: 0 / 0
выгрузка данных процедуры в таблицу
    #36697073
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
myspace2000 wrote:

> по первому абзацу я так понял, что должно быть что-то вроде этого:

Не, понял ты неправильно.

....
> подскажите, плиз, как это должно выглядеть, т.к. именно этот исходник не
> работает. как-то можно создать вьюху на результат процедуры?

Нет, во VIEW результат процедуры запихать нельзя. Т.е. можно, но очень
сложно и не нужно этого делать. А тут имелось в виду не это, а то,
что ты просто пишешь VIEW и его используешь ВМЕСТО процедуры.

Второй вариант -- использовать промежуточную таблицу для храненния результатов
процедуры. Типа как:


create table #tmpdata ( .... )
go

create proc dbo.formdata
as
begin
insert into #tmpdata ( .... )
select ...
from ...
end
go

create proc dbo.getdata
as
begin
create table #tmpdata ( .... )

exec formdata ....

select ...
from #tmpdata
join ...

end
go

Надеюсь, теперь понятно.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
выгрузка данных процедуры в таблицу
    #36697336
myspace2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, спасибо
в моем случае проблема как раз в том, что нельзя править процедуры, которые генерят датасеты и возвращают их клиенту.
вопрос возник потому, что требуется писать запросы на возвращаемые процедурой результаты без модификации самих процедур.
да жаль что в Sybase такое ограничение. придется создавать копии процедур: основная версия возвращает результат клиенту, другая в таблицу
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / выгрузка данных процедуры в таблицу
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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