RSS
热门关键字:  数据挖掘  人工智能  数据仓库  搜索引擎  数据挖掘导论

PL/Python

来源: 作者: 时间:2007-12-30 点击:

本文由网龙AE产品自动生成 数据挖掘实验室

<< Back to man.ChinaUnix.net

PostgreSQL 8.0.0 中文文档(PostgreSQL 中国制作)
PrevFast BackwardFast ForwardNext

Chapter 38. PL/Python - 过程语言

Table of Contents
38.1. PL/Python 函数
38.2. 触发器函数
38.3. 数据库访问

PL/Python 过程语言允许用 Python 语言写 PostgreSQL 函数。

要在特定数据库里安装 PL/Python,使用 createlang plpython dbname

提示: 如果一门语言安装到了 template1 里面, 那么所有随后创建的数据库都会自动安装该语言。

PostgreSQL 7.4 为止,PL/Python 只能当作一种"不可信任的"语言 (意思是它没有提供任何限制用户可为与不可为的手段)。因此,它被重新命名为 plpythonu。 可信任的 plpython 可能在将来的某个时间能够获得,条件是在 Python 里开发出了新的安全执行机制。 数据挖掘研究院

注意: 使用源码包的用户必须在安装过程中声明打开 PL/Python 的制作。 (请参考安装指导获取更多信息。)二进制包的用户可能会在独立的子包中找到 PL/Python。

38.1. PL/Python 函数

PL/Python 写的函数用通常的方法声明。比如:

数据挖掘实验室

CREATE FUNCTION myfunc(text) RETURNS text
	AS "return args[0]"
LANGUAGE plpython; 数据挖掘实验室 

以函数体形式给出的 Python 转换成 Python 函数。比如,上面的转换成 数据挖掘研究院

def __plpython_procedure_myfunc_23456():
	return args[0]  

这里假设 23456 是 PostgreSQL 赋予这个函数的 OID。 数据挖掘研究院

如果你没有提供返回数值,Python 返回缺省的 NonePL/Python 把 Python 的None 转换成 SQL 的空值。 数据挖掘研究院

PostgreSQL函数变量可以通过全局的 args 列表获取. 在 myfunc 例子里, args[0] 包含当做文本参数传递的数值。对于 myfunc2(text, integer)args[0] 将包含 text 参数和整数变量 args[1]数据挖掘研究院

全局字典SD可以用于在函数调用中间存储数据。 这个变量是私有静态数据。全局字典GD是公共数据, 可以在一个后端里的所有 python 函数之间使用。用时小心。 数据挖掘研究院

每个函数都在 Python 解释器里获得自己的受限制的执行对象, 因此来自 myfunc 的全局数据很函数参数是 myfunc2 所看不到的。 这里的例外是我们上面提到的GD字典。 数据挖掘实验室


PrevHomeNext
限制及缺少的特性Up触发器函数

上一篇:PL/Perl
下一篇:服务器编程接口
最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
匿名?