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)))
如果您在文件中發現任何不正確、與特定功能的體驗不符或需要進一步澄清的地方,請使用此表單來回報文件問題。