2010-12-15 7 views
14

PostgreSQL関数をリファクタリングする際に、関数定義内の特定の文字列を検索する関数を用意すると便利です。PostgreSQL関数を使用して 'grep-alike'を検索

これが最善のアプローチ(関数定義を 'grep'検索しようとしている)であるかどうかは知っていますか?

この機能はどのように実装されますか? PostgreSQLの中で正規表現を使用する方法について

答えて

27
SELECT 
    proname AS functionname, 
    prosrc AS source 
FROM 
    pg_proc 
WHERE 
    prosrc ~* 'your_string'; 

詳細は、manualで見つけることができます。

+0

+1(他のアプローチがポップアップした場合、私は見るために少し時間が待っています;-)この単純なことができ実現していませんしかし、これは完璧に動作しています! – ChristopheD

4

フランクの答えは素晴らしいです。さらに機能を見つけるのに役立ちますスキーマを一覧表示するには、この強化されたバージョンを使用してください:

SELECT 
    proname AS functionname, 
    prosrc AS source, 
    nspname AS schema 
FROM 
    pg_proc 
INNER JOIN pg_namespace ON (pg_proc.pronamespace = pg_namespace.oid) 
WHERE 
    prosrc ~* 'your_string'; 
関連する問題