【发布时间】:2021-11-29 19:47:51
【问题描述】:
我不确定CREATE FUNCTION 语句在 PostgreSQL 中是如何工作的。我想定义一个函数(仅供娱乐),这样给定一个数字 n,它会打印从 1 到 n 的星号
所以我写了这个:
CREATE FUNCTION asterisks(n int)
RETURNS CHAR AS
BEGIN
for i in range(1,n+1):
print("*"*i + "\n")
END
LANGUAGE python
我想要n=3的结果:
*
**
***
但是,我不确定这样调用 Python 是否可行。我在这里读到 Postgres 支持 Python 作为一种程序语言:
【问题讨论】:
-
有 PL/Python,通常用作“不受信任”的版本 (
LANGUAGE plpythonu)。请务必阅读当前手册(或您的 Postgres 版本的手册),9.4 已过时。 postgresql.org/docs/current/plpython.html 但LANGUAGE sql和LANGUAGE plpgsql更常用。 stackoverflow.com/a/24771561/939860您是在询问 PL/Python,还是只是实现您的功能的最佳方式? -
谢谢。如果您能给我实现该功能的最佳方法,我将不胜感激。
-
打印?为什么(以及在哪里)要从 Postgres 打印?!编写一个返回文本的函数。
标签: sql postgresql function plpgsql