PostgreSQL - 如何在pgAdmin中查看函数文本/源?

我希望能够选择函数的代码。 当我尝试这个查询时:
select prosrc from pg_proc where proname = 'my_proc'
我得到一个空列。 问题是,似乎列prosrc确实保存了函数文本。 当我尝试这个查询时:
select proname from pg_proc where prosrc ~* 'part of Function text'
我得到了正确的函数数量和名称。 它只是不显示prosrc。 任何的想法? PostgreSQL 8.2。 pgAdmin III 1.12.2。 谢谢。     
已邀请:
我在PostgreSQL 9.0.3上使用pgAdmin III也遇到了这个问题。在我看来,这与字符串太长,pgAdmin III无法正常显示有关。如果你在命令提示符下执行它,那么你应该没问题。许多数据库管理工具都会遇到字符串截断问题。 有趣的是,如果您在pgAdmin III中选择prosrc单元并使用键盘进行复制,则可以粘贴输出。这可能是某种奇怪的显示错误。     
这是因为
prosrc
的值通常以换行开始。通常在创建函数时,在$$(或$ whatever $)引用函数文本后开始一个新行:
CREATE FUNCTION myfunction() RETURNS integer AS $$
    SELECT 1
$$ LANGUAGE sql;
如果您将其定义为:
CREATE FUNCTION myfunction() RETURNS integer AS $$SELECT 1$$ LANGUAGE sql;
函数文本中没有换行符。 您可以使用ltrim函数切断前导换行符:
SELECT ltrim(prosrc, E'x0a') FROM pg_proc WHERE proname = 'myfunction';
或者,如果您在PGAdmin中垂直调整行的大小,则可以看到完整值。     
文件>选项>查询工具>查询编辑器>最大。每列的字符数 或者只是在对象浏览器中查看它。     

要回复问题请先登录注册