PostgreSQL 9.3.1 中文手册 | ||||
---|---|---|---|---|
上一页 | 上一级 | 章 43. PL/Python - Python 过程语言 | 下一页 |
plpy模块也提供了函数plpy.debug(msg)、
plpy.log(msg)、plpy.info(msg)、
plpy.notice(msg)、plpy.warning(msg)、
plpy.error(msg)和plpy.fatal(msg)。
plpy.error
和
plpy.fatal
实际上抛出了一个Python异常,如果没有捕获这个异常,
则会传播到调用的查询,导致当前事务或者子事务退出。raise plpy.Error(msg)
和raise plpy.Fatal(msg)分别等效于调用plpy.error
和plpy.fatal
。其他函数只生成不同优先级的消息。特定优先级的消息是被报告给客户端、
写到服务器日志、还是两件事都做,是由log_min_messages和
client_min_messages配置参数控制的。参阅第 18 章获取更多信息。
另一个实用函数集是plpy.quote_literal(string)、 plpy.quote_nullable(string)和 plpy.quote_ident(string)。 它们相当于第 9.4 节中描述的内建引用函数。 它们在构造ad-hoc查询的时候是有用的。一个来自例 40-1 的动态SQL的PL/Python等效将是:
plpy.execute("UPDATE tbl SET %s = %s WHERE key = %s" % ( plpy.quote_ident(colname), plpy.quote_nullable(newvalue), plpy.quote_literal(keyvalue)))