【问题标题】:Where I can find my PLPython functions in Postgres?在 Postgres 中哪里可以找到我的 PLPython 函数?
【发布时间】:2013-04-05 14:15:23
【问题描述】:

我在特定架构中创建了一些函数,但“函数”部分里面没有任何内容..

我像这个例子一样创建函数:

CREATE FUNCTION pymax (a integer, b integer)
  RETURNS integer
AS $$
  if a > b:
  return a
return b
$$ LANGUAGE plpythonu;

【问题讨论】:

  • 你能告诉我们用于创建函数的代码吗?
  • the "Functions" section 在哪里?在 pgAdmin 中?

标签: postgresql plpython


【解决方案1】:

如果名称不是模式限定的,则会在当前模式中创建一个函数(与其他对象一样)。您当前的架构由 search_path 的当前设置定义。

查看您当前的search_path

SHOW search_path;

有多种方法可以设置search_path,更多信息请参见此相关答案:
How does the search_path influence identifier resolution and the "current schema"

要找出您的数据库中是否存在任何具有相似名称的函数:

SELECT n.nspname, p.proname, pg_get_function_arguments(p.oid) As args
FROM   pg_proc p
JOIN   pg_namespace n ON n.oid = p.pronamespace
WHERE  p.proname ILIKE '%pymax%';

如果没有找到任何东西,则 this 数据库中不存在这些函数。可能是你错误地在另一个数据库中创建的?

【讨论】:

  • 谢谢,我已经编辑了在命名空间中搜索的答案。 (我不知道函数名 =D)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-30
  • 2017-11-14
  • 1970-01-01
  • 1970-01-01
  • 2014-07-16
相关资源
最近更新 更多