plpy
模組還提供了以下函式:
plpy.debug( |
plpy.log( |
plpy.info( |
plpy.notice( |
plpy.warning( |
plpy.error( |
plpy.fatal( |
plpy.error
和 plpy.fatal
實際上會引發一個 Python 異常,如果該異常未被捕獲,它將傳播到呼叫查詢,導致當前事務或子事務被中止。raise plpy.Error(
和 msg
)raise plpy.Fatal(
分別等同於呼叫 msg
)plpy.error(
和 msg
)plpy.fatal(
,但 msg
)raise
形式不允許傳遞關鍵字引數。其他函式僅生成不同優先順序級別的訊息。訊息是否會報告給客戶端、寫入伺服器日誌或兩者都會,由 log_min_messages 和 client_min_messages 配置變數控制。有關更多資訊,請參閱 第 19 章。
msg
引數作為位置引數給出。為了向後相容,可以給出多個位置引數。在這種情況下,位置引數元組的字串表示形式將成為報告給客戶端的訊息。
接受以下僅關鍵字引數:
detail |
hint |
sqlstate |
schema_name |
table_name |
column_name |
datatype_name |
constraint_name |
作為僅關鍵字引數傳遞的物件被用於豐富報告給客戶端的訊息。例如:
CREATE FUNCTION raise_custom_exception() RETURNS void AS $$ plpy.error("custom exception message", detail="some info about exception", hint="hint for users") $$ LANGUAGE plpython3u; =# SELECT raise_custom_exception(); ERROR: plpy.Error: custom exception message DETAIL: some info about exception HINT: hint for users CONTEXT: Traceback (most recent call last): PL/Python function "raise_custom_exception", line 4, in <module> hint="hint for users") PL/Python function "raise_custom_exception"
另一組實用函式是 plpy.quote_literal(
、string
)plpy.quote_nullable(
和 string
)plpy.quote_ident(
。它們等同於 第 9.4 節 中描述的內建引用函式。它們在構建臨時查詢時很有用。來自 示例 41.1 的動態 SQL 的 PL/Python 等價物將是:string
)
plpy.execute("UPDATE tbl SET %s = %s WHERE key = %s" % ( plpy.quote_ident(colname), plpy.quote_nullable(newvalue), plpy.quote_literal(keyvalue)))
如果您在文件中看到任何不正確、與您對特定功能的體驗不符或需要進一步澄清的內容,請使用 此表格 報告文件問題。