Как вы просматриваете хранимую процедуру / функцию?
Скажем, у меня есть старая функция без исходного определения - я хочу посмотреть, что она делает в pg / psql, но я не могу найти способ сделать это.
с использованием Postgres версии 8.4.1
postgresql
stored-procedures
Даррен
источник
источник
\df+ <function_name>
в psql .источник
\x
мета-команду psql перед отображением определения функции.\x
также полезен для просмотра результатов запроса, содержащих записи с длинными строками.\ef <function_name>
в psql. Это даст всю функцию с редактируемым текстом.источник
;
<enter>
после, чтобы выполнить буфер.ERROR: more than one function named
Это сообщает обработчику функции, как вызывать функцию. Это может быть фактический исходный код функции для интерпретируемых языков, символ ссылки, имя файла или что-то еще, в зависимости от языка реализации / соглашения о вызовах.
источник
psql
. Обратите внимание, что имена функций отображаются в нижнем регистре.SELECT proname, prosrc, proargnames FROM pg_proc WHERE proname like '%func_name%'
. Это по крайней мере на Pg 9.6. Вы можете получить числовой код типа через свойствоproargtypes
, но вам нужно будет присоединиться к какой-либо другой таблице, чтобы получить это как имена.Используйте
\df
для вывода списка всех хранимых процедур в Postgres.источник
Если кому-то интересно, как быстро запросить таблицы каталога и использовать эту
pg_get_functiondef()
функцию, вот пример запроса:источник
pg_get_functiondef(p.oid) ilike '%indicator_loss%'
Вы также можете получить с помощью phpPgAdmin, если вы настроили его в своей системе,
Шаг 1. Выберите свою базу данных
Шаг 2: нажмите кнопку поиска
Шаг 3: Измените параметр поиска на функции, затем нажмите «Найти».
Вы получите список определенных функций. Вы также можете искать функции по имени, надеюсь, этот ответ поможет другим.
источник
Чтобы увидеть полный код (запрос), написанный в хранимой процедуре / функциях, используйте команду ниже:
для имени функции и имени процедуры не добавляйте префикс «dbo». или sys.
не добавляйте скобки в конце имени процедуры или функции, а также не передавайте параметры.
используйте ключевое слово sp_helptext, а затем просто передайте имя процедуры / функции.
используйте команду ниже, чтобы увидеть полный код, написанный для процедуры:
используйте команду ниже, чтобы увидеть полный код, написанный для функции:
источник
sp_helptext
в postgresql.Обычно вы используете приложение-менеджер БД, такое как pgAdmin , переходите к интересующему вас объекту и щелкаете правой кнопкой мыши, чтобы выбрать «сценарий как создать» или аналогичный.
Вы пытаетесь сделать это ... без приложения для управления?
источник