Відповіді:
використовуйте pgAdmin або pg_proc, щоб отримати джерело збережених процедур. pgAdmin робить те саме.
\df+ <function_name>
в psql .
\x
метакоманду psql перед відображенням визначення функції. \x
також корисний для перегляду результатів запитів, що містять записи з довгими рядками.
\ef <function_name>
в psql. Це дасть всю функцію з редагованим текстом.
;
<enter>
після виконання буфера.
ERROR: more than one function named
SELECT prosrc FROM pg_proc WHERE proname = 'function_name';
Це повідомляє обробнику функції, як викликати функцію. Це може бути фактичний вихідний код функції для інтерпретованих мов, символ посилання, ім'я файлу або майже будь-що інше, залежно від мови реалізації / умовності виклику
psql
. Зверніть увагу, що назви функцій видаються зменшеними.
SELECT proname, prosrc, proargnames FROM pg_proc WHERE proname like '%func_name%'
. Це принаймні на Pg 9.6. Ви можете отримати числовий код типу через властивість proargtypes
, але вам потрібно буде з'єднатись з якоюсь іншою таблицею, щоб отримати це як імена.
Використовуйте, \df
щоб перерахувати всю збережену процедуру в Postgres.
Якщо хтось задається питанням, як швидко запитувати таблиці каталогів та використовувати pg_get_functiondef()
функцію, ось приклад запиту:
SELECT n.nspname AS schema
,proname AS fname
,proargnames AS args
,t.typname AS return_type
,d.description
,pg_get_functiondef(p.oid) as definition
-- ,CASE WHEN NOT p.proisagg THEN pg_get_functiondef(p.oid)
-- ELSE 'pg_get_functiondef() can''t be used with aggregate functions'
-- END as definition
FROM pg_proc p
JOIN pg_type t
ON p.prorettype = t.oid
LEFT OUTER
JOIN pg_description d
ON p.oid = d.objoid
LEFT OUTER
JOIN pg_namespace n
ON n.oid = p.pronamespace
WHERE NOT p.proisagg
AND n.nspname~'<$SCHEMA_NAME_PATTERN>'
AND proname~'<$FUNCTION_NAME_PATTERN>'
pg_get_functiondef(p.oid) ilike '%indicator_loss%'
Ви також можете отримати phpPgAdmin, якщо ви налаштували його у вашій системі,
Крок 1: Виберіть базу даних
Крок 2: Натисніть кнопку пошуку
Крок 3: Змініть параметр пошуку на функції та натисніть кнопку Знайти.
Ви отримаєте список визначених функцій. Ви також можете шукати функції за назвою, сподіваюся, що ця відповідь допоможе іншим.
Щоб побачити повний код (запит), записаний у збереженій процедурі / функціях, Використовуйте команду нижче:
sp_helptext procedure/function_name
для назви функції та назви процедури не додайте префікс 'dbo.' або 'sys.'.
не додайте дужки в кінці процедури або імені функції, а також не передайте параметри.
використовуйте ключове слово sp_helptext, а потім просто передайте ім'я процедури / функції.
Використовуйте команду нижче, щоб побачити повний код, написаний для Процедури:
sp_helptext ProcedureName
Використовуйте команду нижче, щоб побачити повний код, написаний для функції:
sp_helptext FunctionName
sp_helptext
postgresql немає .
Зазвичай ви використовуєте додаток менеджера БД, наприклад pgAdmin , перейдіть до об'єкта, який вас цікавить, і клацніть правою кнопкою миші шлях до "сценарію як створити" або подібного.
Ви намагаєтесь це зробити ... без програми управління?