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