Perl dbi работает psql код - PullRequest
0 голосов
/ 07 мая 2018

Мне было интересно, имел ли кто-нибудь опыт работы с perl dbi при подключении к базе данных postgres. Поэтому я могу подключиться к своей базе данных postgres и выполнить запросы на выборку, но не могу выполнить psql-запросы. Кто-нибудь знает, возможно ли это сделать в perl dbi? Прямо сейчас я использую этот код для получения запроса на выборку:

my $SQL = $dbh->prepare("select*from pg_settings;);
    $SQL -> execute();
    while ( my ($settings_fetch) = $SQL->fetchrow_array() )
    {
        return $settings_fetch;
    }

с модулем PG: DBI

Но когда я пытаюсь поместить формат \x или \pset, заключенный в оператор подготовки, он не работает. Это не дает никаких ошибок, но вывод не переносится, и я все равно получаю тот же вывод. Теперь я немного сбит с толку, если это потому, что он не выполняет команды psql и переносит извлеченные строки, или выборки выполняются всегда одинаково, а перенос отображается только на дисплее и не может быть получен с помощью dbi * 1008. *

Причина, по которой я этого хочу, заключается в том, что я выбираю массивы выбора внутри массива и выводю это в слово, но когда я получил большой результат выбора с большим количеством столбцов, в таблицах слов он запутался, поэтому я захотел \x вариант внутри моего текстового документа, чтобы я не получал 10 столбцов по горизонтали, а по вертикали.

1 Ответ

0 голосов
/ 07 мая 2018

\x и \pset - команды форматирования, используемые клиентом psql. Они не используются сервером Postgres.

Если вы хотите отформатировать вывод данных из вашей Perl-программы, вам нужно выполнить форматирование в Perl.

Например, вместо того, чтобы писать:

foreach my $column (@$settings_fetch) {
    print $column;
}

Вы могли бы:

foreach my $column (@$settings_fetch) {
    print $column . "\n";
}
...