powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Курсор (передача)
34 сообщений из 34, показаны все 2 страниц
Курсор (передача)
    #39254092
Asew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Возник вопрос по открытию курсора:

Имеется батник через который происходит подключение к базе на сервере и выполнением select-а в отдельном файле (.txt). Результатом select-а является курсор, который должен в открытом виде выводиться в .xml файл. При попытке Fetch-а курсора

Begin;
select my_function();
fetch all in "<Unnamed portal 1>"

ничего не происходит. В .xml файле сохраняется запись вида Unnamed portal 1 (например).

Как возможно устранить данную проблему?
...
Рейтинг: 0 / 0
Курсор (передача)
    #39254111
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Asew,

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

Почему нельзя просто перенаправить вывод в файл?
...
Рейтинг: 0 / 0
Курсор (передача)
    #39254126
Asew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vyegorov,
в батнике как раз и и идет указание пути на файл (.txt) + в батнике исходные данные лежат (передаются в файл .txt, где select) и уже с файла результат записывается в .xml
...
Рейтинг: 0 / 0
Курсор (передача)
    #39254163
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Asewв батнике как раз и и идет указание пути на файл (.txt) + в батнике исходные данные лежат (передаются в файл .txt, где select) и уже с файла результат записывается в .xml
Я не понимаю что вы хотите тут сказать.
...
Рейтинг: 0 / 0
Курсор (передача)
    #39254175
Asew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vyegorov,
добился вывода на экран курсора (записи). Каким образом можно убрать шапку?

у меня получилось что-то типо такого ( в файле):

Begin
my_function()

INDENT
--------------------------------------------------------------------------------

мои записи
...
Рейтинг: 0 / 0
Курсор (передача)
    #39254208
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Asewvyegorov,
добился вывода на экран курсора (записи). Каким образом можно убрать шапку?

у меня получилось что-то типо такого ( в файле):

Begin
my_function()

INDENT
--------------------------------------------------------------------------------

мои записи

ключ psql
-t, --tuples-only print rows only

--
Maxim Boguk
www.postgresql-consulting.ru
...
Рейтинг: 0 / 0
Курсор (передача)
    #39254217
Asew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim Boguk,
Спасибо добавил в конце в итоге получилось:

Begin
my_function()

мои записи


как убрать begin и my_function() ?
...
Рейтинг: 0 / 0
Курсор (передача)
    #39254228
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Asew,

Код: sql
1.
2.
3.
psql -qAtX <<EOSQL > output.raw
SELECT * FROM my_data;
EOSQL
...
Рейтинг: 0 / 0
Курсор (передача)
    #39254242
Asew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vyegorov, разве будет работать в Postgres ? по-моему только для Sql этот вариант пройдет. Куда добавить данные строки? в батник?
...
Рейтинг: 0 / 0
Курсор (передача)
    #39254245
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AsewMaxim Boguk,
Спасибо добавил в конце в итоге получилось:

Begin
my_function()

мои записи


как убрать begin и my_function() ?

телепатов нет
приведите весь ваш скрипт.


--
Maxim Boguk
www.postgresql-consulting.ru
...
Рейтинг: 0 / 0
Курсор (передача)
    #39254296
Asew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim Boguk,
добился что в xml файле записывается:

unnamed portal 1

мои записи


все остальное убрано)

разобраться бы как убрать unnamed portal 1 и было бы отлично!
...
Рейтинг: 0 / 0
Курсор (передача)
    #39254318
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Asew,

Код: sql
1.
sed -e '/unnamed portal 1/d' file

?
...
Рейтинг: 0 / 0
Курсор (передача)
    #39254322
Asew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vyegorov,ничего не происходит от этого .....(
...
Рейтинг: 0 / 0
Курсор (передача)
    #39255520
Asew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Asew,

у кого-то есть какие-то идеи по удалению ссылки на создаваемый unnamed portal c результирующего записи
...
Рейтинг: 0 / 0
Курсор (передача)
    #39256188
Asew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
up теме... Решение так и не было найдено на данный момент(((
...
Рейтинг: 0 / 0
Курсор (передача)
    #39258531
Asew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Итак есть какие-то мысли по поводу создаваемой ссылки

Я пишу в файле .txt :

begin;
select myfunction();
fetch all in <unnamed portal >;
commit;

На выходе получаю файл:

<unnamed portal>

<record><ID>1</ID><Name>A</Name><RFC>RFC 1035[1]</RFC><Text>Address record</Text>
.................

Мне хотелось бы увидеть вот такое :

<?xml version="1.0" encoding="UTF-8"?>
<Message>
<record><ID>1</ID><Name>A</Name><RFC>RFC 1035[1]</RFC><Text>Address record</Text>
..................
</Message>
...
Рейтинг: 0 / 0
Курсор (передача)
    #39260947
Asew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim Boguk,
Есть мысли как удалить или скрыть ссылку на создаваемый курсор?
...
Рейтинг: 0 / 0
Курсор (передача)
    #39261027
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AsewMaxim Boguk,
Есть мысли как удалить или скрыть ссылку на создаваемый курсор?

Вы так и не привели ваш код (не sql а скрипты)
у вас проблема не с sql/базой а с использованием command line утилит и знанием их ключей.
...
Рейтинг: 0 / 0
Курсор (передача)
    #39261058
Asew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim Boguk,
вот подключение к базе и команды самого psql

"C:\Program Files\PostgreSQL\9.4\bin\psql.exe" -h IP_MY_BASE -d foo -U postgres -f "C:\X\my.sql" -v vdate="to_timestamp(' my_date','dd.mm.yyyy')" -v vuser="" -o my_XML.xml -A -q -t
pause

Какие еще команды psql надо включить чтобы не отображать ссылку на портал?)
...
Рейтинг: 0 / 0
Курсор (передача)
    #39261113
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AsewMaxim Boguk,
вот подключение к базе и команды самого psql

"C:\Program Files\PostgreSQL\9.4\bin\psql.exe" -h IP_MY_BASE -d foo -U postgres -f "C:\X\my.sql" -v vdate="to_timestamp(' my_date','dd.mm.yyyy')" -v vuser="" -o my_XML.xml -A -q -t
pause

Какие еще команды psql надо включить чтобы не отображать ссылку на портал?)

а что отдает просто psql shell при вызове
select my_function();
?

--
Maxim Boguk
www.postgresql-consulting.ru
...
Рейтинг: 0 / 0
Курсор (передача)
    #39261118
Asew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim Boguk,
<unnamed portal 1>
...
Рейтинг: 0 / 0
Курсор (передача)
    #39261124
Asew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Asew,

select my_function(vdate);

Результат: <unnamed portal 1>
...
Рейтинг: 0 / 0
Курсор (передача)
    #39261139
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AsewAsew,

select my_function(vdate);

Результат: <unnamed portal 1>

А как у вас ваша функция определена?
(заголовок)

--
Maxim Boguk
www.postgresql-consulting.ru
...
Рейтинг: 0 / 0
Курсор (передача)
    #39261143
Asew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim Boguk,


Indent(столбец, который формируется)

my rows()
...
Рейтинг: 0 / 0
Курсор (передача)
    #39261149
Asew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim Boguk,
или я просто Вас не понял, что вы имеете под определением) Если в Postgres-е выполнить эту фукцию транзакцией с раскрытием курсора Fetch-ем получается Indent - столбец и под ним мои записи. Что касается declare my_function (), то этого нет .. Зачем ????
...
Рейтинг: 0 / 0
Курсор (передача)
    #39261155
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Asew,

определени функции надо...
create function lalla ... И тд
до слова begin
...
Рейтинг: 0 / 0
Курсор (передача)
    #39261196
Asew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim Boguk,
а поподробней можно, что вы имеете ввиду.Зачем создавать функцию ? что она будет определять?
...
Рейтинг: 0 / 0
Курсор (передача)
    #39261703
Asew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim Boguk,

Максим можно поподробней сам код ..Потому что просто CREATE-ом функции тут погоду не сделаешь. Что эта функция будет возвращать? refcursor? Зачем, если сама функция my_function формирует курсор.
...
Рейтинг: 0 / 0
Курсор (передача)
    #39261728
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AsewМаксим можно поподробней сам код ..
А вы понимаете, что вас просят (неоднократно) предоставить то, что вы имеете?!

И не надо требовать код от других участников форума, если сами ничего предоставить не желаете!
...
Рейтинг: 0 / 0
Курсор (передача)
    #39261736
Asew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vyegorov,

Прежде чем что-то говорить пролистали бы предыдущие посты, а не несли бы чушь.
...
Рейтинг: 0 / 0
Курсор (передача)
    #39261827
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AsewMaxim Boguk,

Максим можно поподробней сам код ..Потому что просто CREATE-ом функции тут погоду не сделаешь. Что эта функция будет возвращать? refcursor? Зачем, если сама функция my_function формирует курсор.

Именно в описании функции (а именно в ее возвращаемом типе) у вас и проблема.
А чтобы сказать какая - мне надо понять что она возвращает.
...
Рейтинг: 0 / 0
Курсор (передача)
    #39261856
Asew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim Boguk,
она возвращает тип REFCURSOR: (mu_function(in varchar, in varchar, in timestamp, in varchar)
...
Рейтинг: 0 / 0
Курсор (передача)
    #39262061
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AsewMaxim Boguk,
она возвращает тип REFCURSOR: (mu_function(in varchar, in varchar, in timestamp, in varchar)

И зачем бы она это делала? Кроме копирования примера с доки?
Вот вам имя этого refcursor и попадает в вывод.

Вот вам правильная версия (образец):

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
CREATE TABLE test (col text);
INSERT INTO test VALUES ('123');

CREATE FUNCTION reffunc(refcursor) RETURNS VOID AS '
BEGIN
    OPEN $1 FOR SELECT col FROM test;
    RETURN;
END;
' LANGUAGE plpgsql;

BEGIN;
SELECT reffunc('funccursor');
FETCH ALL IN funccursor;
COMMIT;



Или если вам очень не хочется менять код вашей функции попробуйте сделать вот так:

Код: plsql
1.
2.
3.
4.
BEGIN;
SELECT '' FROM ваша_функция(аргументы);
FETCH ALL IN ваше_имя_курсора;
COMMIT;




--
Maxim Boguk
www.postgresql-consulting.ru
...
Рейтинг: 0 / 0
Курсор (передача)
    #39262069
Asew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim Boguk,
Огромное спасибо!!! Все заработало.
...
Рейтинг: 0 / 0
34 сообщений из 34, показаны все 2 страниц
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Курсор (передача)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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