PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

3 cách liệt kê tất cả các thủ tục được lưu trữ trong cơ sở dữ liệu PostgreSQL

Dưới đây là ba tùy chọn để liệt kê tất cả các quy trình được lưu trữ trong cơ sở dữ liệu Postgres.

information_schema.routines Xem

Dạng xem này chứa tất cả các hàm và thủ tục trong cơ sở dữ liệu hiện tại mà người dùng hiện tại có quyền truy cập (bằng cách là chủ sở hữu hoặc có một số đặc quyền).

Dưới đây là một ví dụ về việc trả về danh sách các thủ tục đã lưu trữ:

SELECT
    routine_schema,
    routine_name
FROM 
    information_schema.routines
WHERE 
    routine_type = 'PROCEDURE';

Vui lòng bao gồm nhiều cột hơn nếu được yêu cầu. Bạn có thể xem định nghĩa của thủ tục bằng routine_definition cột.

pg_proc Danh mục

pg_catalog.pg_proc danh mục lưu trữ thông tin về các hàm, thủ tục, hàm tổng hợp và các hàm cửa sổ.

Chúng ta có thể tham gia điều này bằng pg_catalog.pg_namespace danh mục để lọc kết quả thành chỉ các thủ tục có public không gian tên:

SELECT
    n.nspname,
    p.proname
FROM 
    pg_catalog.pg_namespace n
JOIN 
    pg_catalog.pg_proc p ON 
    p.pronamespace = n.oid
WHERE 
    p.prokind = 'p'
AND
    n.nspname = 'public';

Chúng tôi đã lọc thành một prokind trong tổng số p để giới hạn kết quả đối với các thủ tục được lưu trữ.

Các giá trị có thể là f cho một chức năng bình thường, p cho một thủ tục, a cho một hàm tổng hợp, hoặc w cho một chức năng cửa sổ.

Bạn có thể thêm p.prosrc để có được định nghĩa của thủ tục. Hoặc bạn có thể vượt qua p.oid vào cột pg_get_functiondef() hàm số. Hàm này sẽ tạo ra một CREATE OR REPLACE PROCEDURE câu lệnh cho thủ tục được lưu trữ.

\df Lệnh

Khi sử dụng psql, chúng ta có thể sử dụng \df lệnh:

\df

Theo mặc định, điều này chỉ trả về các đối tượng do người dùng tạo. Ngoài ra, bạn có thể cung cấp một mẫu hoặc S sửa đổi để bao gồm các đối tượng hệ thống.

Dưới đây là một ví dụ về việc cung cấp một mẫu:

\df *album*

Ví dụ đó thu hẹp kết quả chỉ thành các hàm / thủ tục đó với văn bản album nhân danh họ.

Lưu ý rằng lệnh này cũng trả về các hàm. Loại quy trình (ví dụ:func , proc ) được liệt kê trong một loại type trong đầu ra.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để ngăn không cho PDO diễn giải dấu chấm hỏi dưới dạng trình giữ chỗ?

  2. SQLalchemy không thực hiện các thay đổi khi thiết lập vai trò

  3. Đo điểm chuẩn Giải pháp đám mây được quản lý PostgreSQL - Phần một:Amazon Aurora

  4. Các thủ tục được lưu trữ có chạy trong giao dịch cơ sở dữ liệu trong Postgres không?

  5. LỖI trong Java SQL:Tên_bảng mối quan hệ không tồn tại