{"kind": "language", "major": "18", "item": {"slug": "plpgsql", "name": "plpgsql", "name_zh": "", "category": "\u201c \u5916\u5c42\u5757 \u201d", "summary": "\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002", "aliases": [], "content_hash": "b13b8cc61e68aed69bbf670a4877c64571cd662f1bf8d542f0ccbb171c1f972a", "versions": {"10": {"facts": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "\u201c \u5916\u5c42\u5757 \u201d"}, {"label": "\u53ef\u4fe1", "value": "t"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plpgsql_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plpgsql_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plpgsql_validator"}, {"label": "\u5e93", "value": "$libdir/plpgsql"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plpgsql"}, {"label": "\u6ce8\u91ca", "value": "PL/pgSQL \u8fc7\u7a0b\u8bed\u8a00"}], "tables": [], "aliases": [], "related": [{"url": "/docs/10/plpgsql-control-structures.html", "label": "\u63a7\u5236\u7ed3\u6784"}, {"url": "/docs/10/plpgsql-cursors.html", "label": "\u6e38\u6807"}, {"url": "/docs/10/plpgsql-declarations.html", "label": "\u58f0\u660e"}, {"url": "/docs/10/plpgsql-development-tips.html", "label": "PL/pgSQL \u5f00\u53d1\u63d0\u793a"}, {"url": "/docs/10/plpgsql-errors-and-messages.html", "label": "\u9519\u8bef\u548c\u6d88\u606f"}, {"url": "/docs/10/plpgsql-expressions.html", "label": "\u8868\u8fbe\u5f0f"}, {"url": "/docs/10/plpgsql-implementation.html", "label": "PL/pgSQL \u5185\u90e8\u673a\u5236"}, {"url": "/docs/10/plpgsql-overview.html", "label": "plpgsql-overview"}, {"url": "/docs/10/plpgsql-porting.html", "label": "\u4ece Oracle PL/SQL \u79fb\u690d"}, {"url": "/docs/10/plpgsql-statements.html", "label": "\u57fa\u672c\u8bed\u53e5"}, {"url": "/docs/10/plpgsql-structure.html", "label": "PL/pgSQL \u7684\u7ed3\u6784"}, {"url": "/docs/10/plpgsql-trigger.html", "label": "\u89e6\u53d1\u5668\u51fd\u6570"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v10.23/postgresql-10.23.tar.bz2", "label": "10.23", "major": "10", "channel": "historical", "revision": "94a4b2528372458e5662c18d406629266667c437198160a18cdfd2c4a4d6eee9", "source_sha256": "94a4b2528372458e5662c18d406629266667c437198160a18cdfd2c4a4d6eee9", "catalog_fingerprint": "691be281b476dde4374d7f805b2bacc2e75bdef40f1e9d3d42e91f97fe95cfd0"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v10.23/postgresql-10.23.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "94a4b2528372458e5662c18d406629266667c437198160a18cdfd2c4a4d6eee9"}, {"url": "/docs/10/plpgsql-overview.html", "path": "plpgsql-overview.html", "label": "PostgreSQL 10 English manual", "sha256": "e4ff699e727c880b932806cb3db290bb884efb82573b94b585fdf08a6d89c00f"}], "zh_from": {"kind": "same-version-chinese-manual-with-source-derived-structured-summary", "manual": {"url": "/zh/docs/10/plpgsql.html#PLPGSQL-OVERVIEW", "anchor": "PLPGSQL-OVERVIEW", "locale": "zh-Hans", "version": "10", "build_id": 63, "page_key": "plpgsql.html", "extraction": "concept-introduction", "source_hash": "0fd662351b827e31b7439ab56938fb1adeb529e4fa87d2887765a90cc6755d23", "fragment_sha256": "3af41a54cde5a9ceea5d8ba6e2c973e07edf65469dcc1cd247098cd104d3f5b1", "source_revision": "unknown:rendered-translation-baseline", "translation_revision": "snapshot:sha256:62997ea80516ad012fbf6359de33f3b016b54c47e2df76e75606116b4baaf8e5", "translated_from_revision": null}, "body_sha256": "42223c5ad1b1c1bcb80bb33759d10b796756019bda9691eeeb267bd0ba32f0dd", "runtime_rerun": false, "authored_translation": "source-derived-structured-summary", "source_facts_revision": "94a4b2528372458e5662c18d406629266667c437198160a18cdfd2c4a4d6eee9"}, "facts_zh": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "\u201c \u5916\u5c42\u5757 \u201d"}, {"label": "\u53ef\u4fe1", "value": "t"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plpgsql_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plpgsql_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plpgsql_validator"}, {"label": "\u5e93", "value": "$libdir/plpgsql"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plpgsql"}, {"label": "\u6ce8\u91ca", "value": "PL/pgSQL \u8fc7\u7a0b\u8bed\u8a00"}], "sections": [{"code": "/* src/pl/plpgsql/src/plpgsql--1.0.sql */\n\n/*\n * Currently, all the interesting stuff is done by CREATE LANGUAGE.\n * Later we will probably \"dumb down\" that command and put more of the\n * knowledge into this script.\n */\n\nCREATE PROCEDURAL LANGUAGE plpgsql;\n\nCOMMENT ON PROCEDURAL LANGUAGE plpgsql IS 'PL/pgSQL procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "center_zh": {"title": "plpgsql", "locale": "zh-Hans", "source": {"key": "plpgsql", "locale": "zh-Hans", "version": "10", "text_hash": "c4418f09254d4f36e24a0b110b8efb9bd8782f164d2932f46430b8220d2c9a3f", "collection": "language", "dataset_hash": "7c31b524dfe136022d39a6ae8dcfac6b3bbd5f8fdaf422536599981252aff0c9", "source_database": "center", "source_revision": "94a4b2528372458e5662c18d406629266667c437198160a18cdfd2c4a4d6eee9"}, "payload": {"facts": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "\u201c \u5916\u5c42\u5757 \u201d"}, {"label": "\u53ef\u4fe1", "value": "t"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plpgsql_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plpgsql_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plpgsql_validator"}, {"label": "\u5e93", "value": "$libdir/plpgsql"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plpgsql"}, {"label": "\u6ce8\u91ca", "value": "PL/pgSQL \u8fc7\u7a0b\u8bed\u8a00"}], "tables": [], "zh_from": {"kind": "same-version-chinese-manual-with-source-derived-structured-summary", "manual": {"url": "/zh/docs/10/plpgsql.html#PLPGSQL-OVERVIEW", "anchor": "PLPGSQL-OVERVIEW", "locale": "zh-Hans", "version": "10", "build_id": 63, "page_key": "plpgsql.html", "extraction": "concept-introduction", "source_hash": "0fd662351b827e31b7439ab56938fb1adeb529e4fa87d2887765a90cc6755d23", "fragment_sha256": "3af41a54cde5a9ceea5d8ba6e2c973e07edf65469dcc1cd247098cd104d3f5b1", "source_revision": "unknown:rendered-translation-baseline", "translation_revision": "snapshot:sha256:62997ea80516ad012fbf6359de33f3b016b54c47e2df76e75606116b4baaf8e5", "translated_from_revision": null}, "body_sha256": "42223c5ad1b1c1bcb80bb33759d10b796756019bda9691eeeb267bd0ba32f0dd", "runtime_rerun": false, "authored_translation": "source-derived-structured-summary", "source_facts_revision": "94a4b2528372458e5662c18d406629266667c437198160a18cdfd2c4a4d6eee9"}, "sections": [{"code": "/* src/pl/plpgsql/src/plpgsql--1.0.sql */\n\n/*\n * Currently, all the interesting stuff is done by CREATE LANGUAGE.\n * Later we will probably \"dumb down\" that command and put more of the\n * knowledge into this script.\n */\n\nCREATE PROCEDURAL LANGUAGE plpgsql;\n\nCOMMENT ON PROCEDURAL LANGUAGE plpgsql IS 'PL/pgSQL procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "description_zh": "\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002", "description_zh_html": "<p>\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002</p><dl><dt>\u8fd0\u7b97\u7b26\u65cf</dt><dd><code>PL/pgSQL</code></dd><dt>\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_call_handler</code></dd><dt>\u5e93</dt><dd><code>$libdir/plpgsql</code></dd><dt>\u53d7\u4fe1\u4efb</dt><dd><code>\u662f</code></dd><dt>\u9a8c\u8bc1\u51fd\u6570</dt><dd><code>plpgsql_validator</code></dd><dt>\u5185\u8054\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_inline_handler</code></dd><dt>\u9ed8\u8ba4\u7248\u672c</dt><dd><code>1.0</code></dd><dt>\u6a21\u5757\u8def\u5f84</dt><dd><code>$libdir/plpgsql</code></dd></dl><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p> <span class=\"application\">PL/pgSQL</span> \u662f\u4e00\u79cd\u7528\u4e8e <span class=\"productname\">PostgreSQL</span> \u6570\u636e\u5e93\u7cfb\u7edf\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\u3002<span class=\"application\">PL/pgSQL</span> \u7684\u8bbe\u8ba1\u76ee\u6807\uff0c\u662f\u521b\u5efa\u4e00\u79cd\u5177\u5907\u4ee5\u4e0b\u7279\u6027\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\uff1a\n\n    </p><p>    \u7528 <span class=\"application\">PL/pgSQL</span> \u521b\u5efa\u7684\u51fd\u6570\uff0c\u53ef\u4ee5\u7528\u4e8e\u4efb\u4f55\u53ef\u4ee5\u4f7f\u7528\u5185\u7f6e\u51fd\u6570\u7684\u5730\u65b9\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u521b\u5efa\u5e26\u6709\u590d\u6742\u6761\u4ef6\u903b\u8f91\u7684\u8ba1\u7b97\u51fd\u6570\uff0c\u968f\u540e\u7528\u5b83\u4eec\u5b9a\u4e49\u64cd\u4f5c\u7b26\uff0c\u6216\u8005\u628a\u5b83\u4eec\u7528\u4e8e\u7d22\u5f15\u8868\u8fbe\u5f0f\u3002\n   </p><p>    \u5728 <span class=\"productname\">PostgreSQL</span> 9.0 \u53ca\u66f4\u9ad8\u7248\u672c\u4e2d\uff0c<span class=\"application\">PL/pgSQL</span> \u9ed8\u8ba4\u5b89\u88c5\u3002\u4e0d\u8fc7\u5b83\u4ecd\u7136\u662f\u4e00\u4e2a\u53ef\u8f7d\u5165\u6a21\u5757\uff0c\u56e0\u6b64\u5bf9\u5b89\u5168\u6027\u7279\u522b\u654f\u611f\u7684\u7ba1\u7406\u5458\u4e5f\u53ef\u4ee5\u9009\u62e9\u79fb\u9664\u5b83\u3002\n   </p><p><a href=\"/zh/docs/10/plpgsql.html#PLPGSQL-OVERVIEW\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>"}, "summary": "\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002", "version": "10", "link_map": {"/zh/docs/10/plpgsql.html#PLPGSQL-OVERVIEW": "/docs/10/plpgsql.html#PLPGSQL-OVERVIEW"}, "body_html": "<p>\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002</p><dl><dt>\u8fd0\u7b97\u7b26\u65cf</dt><dd><code>PL/pgSQL</code></dd><dt>\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_call_handler</code></dd><dt>\u5e93</dt><dd><code>$libdir/plpgsql</code></dd><dt>\u53d7\u4fe1\u4efb</dt><dd><code>\u662f</code></dd><dt>\u9a8c\u8bc1\u51fd\u6570</dt><dd><code>plpgsql_validator</code></dd><dt>\u5185\u8054\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_inline_handler</code></dd><dt>\u9ed8\u8ba4\u7248\u672c</dt><dd><code>1.0</code></dd><dt>\u6a21\u5757\u8def\u5f84</dt><dd><code>$libdir/plpgsql</code></dd></dl><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p> <span>PL/pgSQL</span> \u662f\u4e00\u79cd\u7528\u4e8e <span>PostgreSQL</span> \u6570\u636e\u5e93\u7cfb\u7edf\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\u3002<span>PL/pgSQL</span> \u7684\u8bbe\u8ba1\u76ee\u6807\uff0c\u662f\u521b\u5efa\u4e00\u79cd\u5177\u5907\u4ee5\u4e0b\u7279\u6027\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\uff1a\n\n    </p><p>    \u7528 <span>PL/pgSQL</span> \u521b\u5efa\u7684\u51fd\u6570\uff0c\u53ef\u4ee5\u7528\u4e8e\u4efb\u4f55\u53ef\u4ee5\u4f7f\u7528\u5185\u7f6e\u51fd\u6570\u7684\u5730\u65b9\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u521b\u5efa\u5e26\u6709\u590d\u6742\u6761\u4ef6\u903b\u8f91\u7684\u8ba1\u7b97\u51fd\u6570\uff0c\u968f\u540e\u7528\u5b83\u4eec\u5b9a\u4e49\u64cd\u4f5c\u7b26\uff0c\u6216\u8005\u628a\u5b83\u4eec\u7528\u4e8e\u7d22\u5f15\u8868\u8fbe\u5f0f\u3002\n   </p><p>    \u5728 <span>PostgreSQL</span> 9.0 \u53ca\u66f4\u9ad8\u7248\u672c\u4e2d\uff0c<span>PL/pgSQL</span> \u9ed8\u8ba4\u5b89\u88c5\u3002\u4e0d\u8fc7\u5b83\u4ecd\u7136\u662f\u4e00\u4e2a\u53ef\u8f7d\u5165\u6a21\u5757\uff0c\u56e0\u6b64\u5bf9\u5b89\u5168\u6027\u7279\u522b\u654f\u611f\u7684\u7ba1\u7406\u5458\u4e5f\u53ef\u4ee5\u9009\u62e9\u79fb\u9664\u5b83\u3002\n   </p><p><a href=\"/zh/docs/10/plpgsql.html#PLPGSQL-OVERVIEW\" rel=\"nofollow\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>", "body_sha256": "dd795587b7521a995d26cb59cc6044aa4ad449e10f7a60bb6d8fa7a9dd532b85", "content_hash": "c4418f09254d4f36e24a0b110b8efb9bd8782f164d2932f46430b8220d2c9a3f", "source_database": "center", "source_revision": "94a4b2528372458e5662c18d406629266667c437198160a18cdfd2c4a4d6eee9"}, "signature": "", "tables_zh": [], "attributes": {"kind": "Bundled procedural-language variant", "family": "PL/pgSQL", "comment": "PL/pgSQL procedural language", "handler": "plpgsql_call_handler", "library": "$libdir/plpgsql", "trusted": "t", "validator": "plpgsql_validator", "inline_handler": "plpgsql_inline_handler", "default_version": "1.0", "module_pathname": "$libdir/plpgsql"}, "description": ["\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002"], "manual_html": "", "manual_path": "/docs/10/plpgsql-overview.html", "sections_zh": [{"code": "/* src/pl/plpgsql/src/plpgsql--1.0.sql */\n\n/*\n * Currently, all the interesting stuff is done by CREATE LANGUAGE.\n * Later we will probably \"dumb down\" that command and put more of the\n * knowledge into this script.\n */\n\nCREATE PROCEDURAL LANGUAGE plpgsql;\n\nCOMMENT ON PROCEDURAL LANGUAGE plpgsql IS 'PL/pgSQL procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "localization": {"status": "complete", "sources": [{"url": "/docs/10/plpgsql-control-structures.html", "method": "same-major semantic node", "sha256": "1b53dac179eed808f8111e4b96da95af6975ecf8ec96340250740da8ba350729", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/10/plpgsql-cursors.html", "method": "same-major semantic node", "sha256": "e8e1bcbc7e9f22a3f50e2d34f5be608d26d78ac13e4a8c35d518ca50c4545505", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/10/plpgsql-declarations.html", "method": "same-major semantic node", "sha256": "8f5fc17edcfe5acd16c467249b05b2805c9f5291639aa0541f591b0a6877b3f1", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/10/plpgsql-development-tips.html", "method": "same-major semantic node", "sha256": "656d4b2c0bc1c715ac159437b055b986a57e55b7c047b6acafb622b44e361352", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/10/plpgsql-errors-and-messages.html", "method": "same-major semantic node", "sha256": "607a6aa69be922a111fb7f97965d25db0237e600d82685e2597c1aac6ce3cbf0", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/10/plpgsql-expressions.html", "method": "same-major semantic node", "sha256": "d6b2625eeef3554375c4111456caa0e635ca555e6c0f776ffac36d486af751c4", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/10/plpgsql-implementation.html", "method": "same-major semantic node", "sha256": "e0ad2629c94835cfc12b3bf507245c2c246ade5167775a31cc0dc73b7c7a8f0a", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/10/plpgsql-porting.html", "method": "same-major semantic node", "sha256": "e5db91712d5c4fc529542ee83dc77efe8e692ff370858b10f43b5aa45f84439f", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/10/plpgsql-statements.html", "method": "same-major semantic node", "sha256": "f24ee2538640f63da6a98694494b6b41dd222d0afe72e3a1e5a77c2ddb9b43b0", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/10/plpgsql-structure.html", "method": "same-major semantic node", "sha256": "3cdf3d3b963c81832929ba0a02a4c0c1580b7488213011c6d7f5b9daa774176c", "language": "zh", "matched_nodes": ["#PLPGSQL-STRUCTURE/div[13]/p[1]/span[1]", "page-title/h2"]}, {"url": "/docs/10/plpgsql-trigger.html", "method": "same-major semantic node", "sha256": "28508419f5314096be1932eb1950fffae38cda2371de2ae91f2ec1dc4bf5f299", "language": "zh", "matched_nodes": ["page-title/h2"]}], "language": "zh", "original_text": {"/versions/10/description/0": "PL/pgSQL procedural language", "/versions/10/facts/0/label": "Kind", "/versions/10/facts/0/value": "Bundled procedural-language variant", "/versions/10/facts/1/label": "Family", "/versions/10/facts/1/value": "PL/pgSQL", "/versions/10/facts/2/label": "Trusted", "/versions/10/facts/3/label": "Handler", "/versions/10/facts/4/label": "Inline handler", "/versions/10/facts/5/label": "Validator", "/versions/10/facts/6/label": "Library", "/versions/10/facts/7/label": "Default version", "/versions/10/facts/8/label": "Module pathname", "/versions/10/facts/9/label": "Comment", "/versions/10/facts/9/value": "PL/pgSQL procedural language", "/versions/10/related/0/label": "plpgsql-control-structures", "/versions/10/related/1/label": "plpgsql-cursors", "/versions/10/related/2/label": "plpgsql-declarations", "/versions/10/related/3/label": "plpgsql-development-tips", "/versions/10/related/4/label": "plpgsql-errors-and-messages", "/versions/10/related/5/label": "plpgsql-expressions", "/versions/10/related/6/label": "plpgsql-implementation", "/versions/10/related/8/label": "plpgsql-porting", "/versions/10/related/9/label": "plpgsql-statements", "/versions/10/related/10/label": "plpgsql-structure", "/versions/10/related/11/label": "plpgsql-trigger", "/versions/10/sections/0/title": "Installation definition from the matching source archive", "/versions/10/sections/0/paragraphs/0": "This extension is shipped with the source. Its presence does not establish that the language or external runtime is installed."}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "0b42a874cdd6d82725953451e73b9e88457fc201cd2c467e6f453e638386e49b", "canonical_center_text_hash": "c4418f09254d4f36e24a0b110b8efb9bd8782f164d2932f46430b8220d2c9a3f"}, "source_files": {"src/pl/plpgsql/src/plpgsql.control": "b48cd5aa8d87103b011dda42012b2aab62de061283272b2a454d676f041fa4c3", "src/pl/plpgsql/src/plpgsql--1.0.sql": "66f1dc2c4eaa9be9a512361d6171bd29f6ac078c9125e2d5b7014535e951a0e5"}, "description_zh": "\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002", "comparison_data": {"kind": "Bundled procedural-language variant", "family": "PL/pgSQL", "handler": "plpgsql_call_handler", "library": "$libdir/plpgsql", "trusted": "t", "validator": "plpgsql_validator", "inline_handler": "plpgsql_inline_handler", "default_version": "1.0"}, "comparison_hash": "e85051f39a242ce658cedd87ac97437817f0f1b2baf992d8d37c9d29df8b558b", "manual_language": "zh", "description_zh_html": "<p>\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002</p><dl><dt>\u8fd0\u7b97\u7b26\u65cf</dt><dd><code>PL/pgSQL</code></dd><dt>\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_call_handler</code></dd><dt>\u5e93</dt><dd><code>$libdir/plpgsql</code></dd><dt>\u53d7\u4fe1\u4efb</dt><dd><code>\u662f</code></dd><dt>\u9a8c\u8bc1\u51fd\u6570</dt><dd><code>plpgsql_validator</code></dd><dt>\u5185\u8054\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_inline_handler</code></dd><dt>\u9ed8\u8ba4\u7248\u672c</dt><dd><code>1.0</code></dd><dt>\u6a21\u5757\u8def\u5f84</dt><dd><code>$libdir/plpgsql</code></dd></dl><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p> <span>PL/pgSQL</span> \u662f\u4e00\u79cd\u7528\u4e8e <span>PostgreSQL</span> \u6570\u636e\u5e93\u7cfb\u7edf\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\u3002<span>PL/pgSQL</span> \u7684\u8bbe\u8ba1\u76ee\u6807\uff0c\u662f\u521b\u5efa\u4e00\u79cd\u5177\u5907\u4ee5\u4e0b\u7279\u6027\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\uff1a\n\n    </p><p>    \u7528 <span>PL/pgSQL</span> \u521b\u5efa\u7684\u51fd\u6570\uff0c\u53ef\u4ee5\u7528\u4e8e\u4efb\u4f55\u53ef\u4ee5\u4f7f\u7528\u5185\u7f6e\u51fd\u6570\u7684\u5730\u65b9\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u521b\u5efa\u5e26\u6709\u590d\u6742\u6761\u4ef6\u903b\u8f91\u7684\u8ba1\u7b97\u51fd\u6570\uff0c\u968f\u540e\u7528\u5b83\u4eec\u5b9a\u4e49\u64cd\u4f5c\u7b26\uff0c\u6216\u8005\u628a\u5b83\u4eec\u7528\u4e8e\u7d22\u5f15\u8868\u8fbe\u5f0f\u3002\n   </p><p>    \u5728 <span>PostgreSQL</span> 9.0 \u53ca\u66f4\u9ad8\u7248\u672c\u4e2d\uff0c<span>PL/pgSQL</span> \u9ed8\u8ba4\u5b89\u88c5\u3002\u4e0d\u8fc7\u5b83\u4ecd\u7136\u662f\u4e00\u4e2a\u53ef\u8f7d\u5165\u6a21\u5757\uff0c\u56e0\u6b64\u5bf9\u5b89\u5168\u6027\u7279\u522b\u654f\u611f\u7684\u7ba1\u7406\u5458\u4e5f\u53ef\u4ee5\u9009\u62e9\u79fb\u9664\u5b83\u3002\n   </p><p><a href=\"/zh/docs/10/plpgsql.html#PLPGSQL-OVERVIEW\" rel=\"nofollow\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>"}, "11": {"facts": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "\u201c \u5916\u5c42\u5757 \u201d"}, {"label": "\u53ef\u4fe1", "value": "t"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plpgsql_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plpgsql_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plpgsql_validator"}, {"label": "\u5e93", "value": "$libdir/plpgsql"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plpgsql"}, {"label": "\u6ce8\u91ca", "value": "PL/pgSQL \u8fc7\u7a0b\u8bed\u8a00"}], "tables": [], "aliases": [], "related": [{"url": "/docs/11/plpgsql-control-structures.html", "label": "\u63a7\u5236\u7ed3\u6784"}, {"url": "/docs/11/plpgsql-cursors.html", "label": "\u6e38\u6807"}, {"url": "/docs/11/plpgsql-declarations.html", "label": "\u58f0\u660e"}, {"url": "/docs/11/plpgsql-development-tips.html", "label": "PL/pgSQL \u5f00\u53d1\u63d0\u793a"}, {"url": "/docs/11/plpgsql-errors-and-messages.html", "label": "\u9519\u8bef\u548c\u6d88\u606f"}, {"url": "/docs/11/plpgsql-expressions.html", "label": "\u8868\u8fbe\u5f0f"}, {"url": "/docs/11/plpgsql-implementation.html", "label": "PL/pgSQL \u5185\u90e8\u673a\u5236"}, {"url": "/docs/11/plpgsql-overview.html", "label": "plpgsql-overview"}, {"url": "/docs/11/plpgsql-porting.html", "label": "\u4ece Oracle PL/SQL \u79fb\u690d"}, {"url": "/docs/11/plpgsql-statements.html", "label": "\u57fa\u672c\u8bed\u53e5"}, {"url": "/docs/11/plpgsql-structure.html", "label": "PL/pgSQL \u7684\u7ed3\u6784"}, {"url": "/docs/11/plpgsql-transactions.html", "label": "\u4e8b\u52a1\u7ba1\u7406"}, {"url": "/docs/11/plpgsql-trigger.html", "label": "\u89e6\u53d1\u5668\u51fd\u6570"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v11.22/postgresql-11.22.tar.bz2", "label": "11.22", "major": "11", "channel": "historical", "revision": "2cb7c97d7a0d7278851bbc9c61f467b69c094c72b81740b751108e7892ebe1f0", "source_sha256": "2cb7c97d7a0d7278851bbc9c61f467b69c094c72b81740b751108e7892ebe1f0", "catalog_fingerprint": "8f21f4444b7f68923f4762af0eb7937fa2907026e91249483e79050de012c901"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v11.22/postgresql-11.22.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "2cb7c97d7a0d7278851bbc9c61f467b69c094c72b81740b751108e7892ebe1f0"}, {"url": "/docs/11/plpgsql-overview.html", "path": "plpgsql-overview.html", "label": "PostgreSQL 11 English manual", "sha256": "25b2cf2b11ea6deb32e204af2c94948b6efc1830e66cea098ed0f6755735e6dd"}], "zh_from": {"kind": "same-version-chinese-manual-with-source-derived-structured-summary", "manual": {"url": "/zh/docs/11/plpgsql.html#PLPGSQL-OVERVIEW", "anchor": "PLPGSQL-OVERVIEW", "locale": "zh-Hans", "version": "11", "build_id": 64, "page_key": "plpgsql.html", "extraction": "concept-introduction", "source_hash": "aa0bb757d6b7ee6e92e7dbd0cbe92335a1171455a5a06fd90d586d6c4c6aa4df", "fragment_sha256": "99416e90c5ea4b3583ed48b35295883d16c6c2caba40c87e8761304b0590c308", "source_revision": "unknown:rendered-translation-baseline", "translation_revision": "snapshot:sha256:ef5c7bc074acae9795db16e6b7482aea3b222bd4bcce0f76831332b97a21e8a1", "translated_from_revision": null}, "body_sha256": "1d602b8da4d2e9bf2b0571fc6d3c6ea999d6e714e715bb057d5c16f95829f1a6", "runtime_rerun": false, "authored_translation": "source-derived-structured-summary", "source_facts_revision": "2cb7c97d7a0d7278851bbc9c61f467b69c094c72b81740b751108e7892ebe1f0"}, "facts_zh": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "\u201c \u5916\u5c42\u5757 \u201d"}, {"label": "\u53ef\u4fe1", "value": "t"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plpgsql_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plpgsql_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plpgsql_validator"}, {"label": "\u5e93", "value": "$libdir/plpgsql"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plpgsql"}, {"label": "\u6ce8\u91ca", "value": "PL/pgSQL \u8fc7\u7a0b\u8bed\u8a00"}], "sections": [{"code": "/* src/pl/plpgsql/src/plpgsql--1.0.sql */\n\n/*\n * Currently, all the interesting stuff is done by CREATE LANGUAGE.\n * Later we will probably \"dumb down\" that command and put more of the\n * knowledge into this script.\n */\n\nCREATE PROCEDURAL LANGUAGE plpgsql;\n\nCOMMENT ON PROCEDURAL LANGUAGE plpgsql IS 'PL/pgSQL procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "center_zh": {"title": "plpgsql", "locale": "zh-Hans", "source": {"key": "plpgsql", "locale": "zh-Hans", "version": "11", "text_hash": "f2f44b75466f429dbaab30b0a12ec04daeae888efd7d7aebf337e62f90333220", "collection": "language", "dataset_hash": "7c31b524dfe136022d39a6ae8dcfac6b3bbd5f8fdaf422536599981252aff0c9", "source_database": "center", "source_revision": "2cb7c97d7a0d7278851bbc9c61f467b69c094c72b81740b751108e7892ebe1f0"}, "payload": {"facts": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "\u201c \u5916\u5c42\u5757 \u201d"}, {"label": "\u53ef\u4fe1", "value": "t"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plpgsql_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plpgsql_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plpgsql_validator"}, {"label": "\u5e93", "value": "$libdir/plpgsql"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plpgsql"}, {"label": "\u6ce8\u91ca", "value": "PL/pgSQL \u8fc7\u7a0b\u8bed\u8a00"}], "tables": [], "zh_from": {"kind": "same-version-chinese-manual-with-source-derived-structured-summary", "manual": {"url": "/zh/docs/11/plpgsql.html#PLPGSQL-OVERVIEW", "anchor": "PLPGSQL-OVERVIEW", "locale": "zh-Hans", "version": "11", "build_id": 64, "page_key": "plpgsql.html", "extraction": "concept-introduction", "source_hash": "aa0bb757d6b7ee6e92e7dbd0cbe92335a1171455a5a06fd90d586d6c4c6aa4df", "fragment_sha256": "99416e90c5ea4b3583ed48b35295883d16c6c2caba40c87e8761304b0590c308", "source_revision": "unknown:rendered-translation-baseline", "translation_revision": "snapshot:sha256:ef5c7bc074acae9795db16e6b7482aea3b222bd4bcce0f76831332b97a21e8a1", "translated_from_revision": null}, "body_sha256": "1d602b8da4d2e9bf2b0571fc6d3c6ea999d6e714e715bb057d5c16f95829f1a6", "runtime_rerun": false, "authored_translation": "source-derived-structured-summary", "source_facts_revision": "2cb7c97d7a0d7278851bbc9c61f467b69c094c72b81740b751108e7892ebe1f0"}, "sections": [{"code": "/* src/pl/plpgsql/src/plpgsql--1.0.sql */\n\n/*\n * Currently, all the interesting stuff is done by CREATE LANGUAGE.\n * Later we will probably \"dumb down\" that command and put more of the\n * knowledge into this script.\n */\n\nCREATE PROCEDURAL LANGUAGE plpgsql;\n\nCOMMENT ON PROCEDURAL LANGUAGE plpgsql IS 'PL/pgSQL procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "description_zh": "\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002", "description_zh_html": "<p>\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002</p><dl><dt>\u8fd0\u7b97\u7b26\u65cf</dt><dd><code>PL/pgSQL</code></dd><dt>\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_call_handler</code></dd><dt>\u5e93</dt><dd><code>$libdir/plpgsql</code></dd><dt>\u53d7\u4fe1\u4efb</dt><dd><code>\u662f</code></dd><dt>\u9a8c\u8bc1\u51fd\u6570</dt><dd><code>plpgsql_validator</code></dd><dt>\u5185\u8054\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_inline_handler</code></dd><dt>\u9ed8\u8ba4\u7248\u672c</dt><dd><code>1.0</code></dd><dt>\u6a21\u5757\u8def\u5f84</dt><dd><code>$libdir/plpgsql</code></dd></dl><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n<span class=\"application\">PL/pgSQL</span> \u662f\u4e00\u79cd\u7528\u4e8e <span class=\"productname\">PostgreSQL</span> \u6570\u636e\u5e93\u7cfb\u7edf\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\u3002<span class=\"application\">PL/pgSQL</span> \u7684\u8bbe\u8ba1\u76ee\u6807\uff0c\u662f\u521b\u5efa\u4e00\u79cd\u5177\u5907\u4ee5\u4e0b\u7279\u6027\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\uff1a\n\n    </p><p>\n    \u7528 <span class=\"application\">PL/pgSQL</span> \u521b\u5efa\u7684\u51fd\u6570\uff0c\u53ef\u4ee5\u7528\u4e8e\u4efb\u4f55\u53ef\u4ee5\u4f7f\u7528\u5185\u7f6e\u51fd\u6570\u7684\u5730\u65b9\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u521b\u5efa\u5e26\u6709\u590d\u6742\u6761\u4ef6\u903b\u8f91\u7684\u8ba1\u7b97\u51fd\u6570\uff0c\u968f\u540e\u7528\u5b83\u4eec\u5b9a\u4e49\u64cd\u4f5c\u7b26\uff0c\u6216\u8005\u628a\u5b83\u4eec\u7528\u4e8e\u7d22\u5f15\u8868\u8fbe\u5f0f\u3002\n   </p><p>\n    \u5728 <span class=\"productname\">PostgreSQL</span> 9.0 \u53ca\u66f4\u9ad8\u7248\u672c\u4e2d\uff0c<span class=\"application\">PL/pgSQL</span> \u9ed8\u8ba4\u5b89\u88c5\u3002\u4e0d\u8fc7\u5b83\u4ecd\u7136\u662f\u4e00\u4e2a\u53ef\u8f7d\u5165\u6a21\u5757\uff0c\u56e0\u6b64\u5bf9\u5b89\u5168\u6027\u7279\u522b\u654f\u611f\u7684\u7ba1\u7406\u5458\u4e5f\u53ef\u4ee5\u9009\u62e9\u79fb\u9664\u5b83\u3002\n   </p><p><a href=\"/zh/docs/11/plpgsql.html#PLPGSQL-OVERVIEW\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>"}, "summary": "\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002", "version": "11", "link_map": {"/zh/docs/11/plpgsql.html#PLPGSQL-OVERVIEW": "/docs/11/plpgsql.html#PLPGSQL-OVERVIEW"}, "body_html": "<p>\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002</p><dl><dt>\u8fd0\u7b97\u7b26\u65cf</dt><dd><code>PL/pgSQL</code></dd><dt>\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_call_handler</code></dd><dt>\u5e93</dt><dd><code>$libdir/plpgsql</code></dd><dt>\u53d7\u4fe1\u4efb</dt><dd><code>\u662f</code></dd><dt>\u9a8c\u8bc1\u51fd\u6570</dt><dd><code>plpgsql_validator</code></dd><dt>\u5185\u8054\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_inline_handler</code></dd><dt>\u9ed8\u8ba4\u7248\u672c</dt><dd><code>1.0</code></dd><dt>\u6a21\u5757\u8def\u5f84</dt><dd><code>$libdir/plpgsql</code></dd></dl><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n<span>PL/pgSQL</span> \u662f\u4e00\u79cd\u7528\u4e8e <span>PostgreSQL</span> \u6570\u636e\u5e93\u7cfb\u7edf\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\u3002<span>PL/pgSQL</span> \u7684\u8bbe\u8ba1\u76ee\u6807\uff0c\u662f\u521b\u5efa\u4e00\u79cd\u5177\u5907\u4ee5\u4e0b\u7279\u6027\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\uff1a\n\n    </p><p>\n    \u7528 <span>PL/pgSQL</span> \u521b\u5efa\u7684\u51fd\u6570\uff0c\u53ef\u4ee5\u7528\u4e8e\u4efb\u4f55\u53ef\u4ee5\u4f7f\u7528\u5185\u7f6e\u51fd\u6570\u7684\u5730\u65b9\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u521b\u5efa\u5e26\u6709\u590d\u6742\u6761\u4ef6\u903b\u8f91\u7684\u8ba1\u7b97\u51fd\u6570\uff0c\u968f\u540e\u7528\u5b83\u4eec\u5b9a\u4e49\u64cd\u4f5c\u7b26\uff0c\u6216\u8005\u628a\u5b83\u4eec\u7528\u4e8e\u7d22\u5f15\u8868\u8fbe\u5f0f\u3002\n   </p><p>\n    \u5728 <span>PostgreSQL</span> 9.0 \u53ca\u66f4\u9ad8\u7248\u672c\u4e2d\uff0c<span>PL/pgSQL</span> \u9ed8\u8ba4\u5b89\u88c5\u3002\u4e0d\u8fc7\u5b83\u4ecd\u7136\u662f\u4e00\u4e2a\u53ef\u8f7d\u5165\u6a21\u5757\uff0c\u56e0\u6b64\u5bf9\u5b89\u5168\u6027\u7279\u522b\u654f\u611f\u7684\u7ba1\u7406\u5458\u4e5f\u53ef\u4ee5\u9009\u62e9\u79fb\u9664\u5b83\u3002\n   </p><p><a href=\"/zh/docs/11/plpgsql.html#PLPGSQL-OVERVIEW\" rel=\"nofollow\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>", "body_sha256": "4e5212e6d52395ef697ac15546c97de0a1d4b0c0ba041a0a2ed87946d42c4928", "content_hash": "f2f44b75466f429dbaab30b0a12ec04daeae888efd7d7aebf337e62f90333220", "source_database": "center", "source_revision": "2cb7c97d7a0d7278851bbc9c61f467b69c094c72b81740b751108e7892ebe1f0"}, "signature": "", "tables_zh": [], "attributes": {"kind": "Bundled procedural-language variant", "family": "PL/pgSQL", "comment": "PL/pgSQL procedural language", "handler": "plpgsql_call_handler", "library": "$libdir/plpgsql", "trusted": "t", "validator": "plpgsql_validator", "inline_handler": "plpgsql_inline_handler", "default_version": "1.0", "module_pathname": "$libdir/plpgsql"}, "description": ["\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002"], "manual_html": "", "manual_path": "/docs/11/plpgsql-overview.html", "sections_zh": [{"code": "/* src/pl/plpgsql/src/plpgsql--1.0.sql */\n\n/*\n * Currently, all the interesting stuff is done by CREATE LANGUAGE.\n * Later we will probably \"dumb down\" that command and put more of the\n * knowledge into this script.\n */\n\nCREATE PROCEDURAL LANGUAGE plpgsql;\n\nCOMMENT ON PROCEDURAL LANGUAGE plpgsql IS 'PL/pgSQL procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "localization": {"status": "complete", "sources": [{"url": "/docs/11/plpgsql-control-structures.html", "method": "same-major semantic node", "sha256": "6c58c48636a65a5b5746d451951231d085470adb4523064f5f7dcaf593f36717", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/11/plpgsql-cursors.html", "method": "same-major semantic node", "sha256": "4f4f02be7ae583cecf32fbcf26bc0f401b5717ead006eeafb7251361597275ea", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/11/plpgsql-declarations.html", "method": "same-major semantic node", "sha256": "5efc1b25b1bfd1b108c9d51d022c59afa066b106b22eac9d8ddb4e4d8096bf26", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/11/plpgsql-development-tips.html", "method": "same-major semantic node", "sha256": "77e7b12dbac8100ba740d7dd8c40632ad516bcf94975f4f12cd2584a7e174efe", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/11/plpgsql-errors-and-messages.html", "method": "same-major semantic node", "sha256": "fdc58f4913e882e19c2eaeb85edc23f612fec2133037ebb4f0ee93f4df37c705", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/11/plpgsql-expressions.html", "method": "same-major semantic node", "sha256": "65eff4e7642ad7b3a41b3ce26074f53b8227c7dcb625b33dc3d8dbfbed4b7d71", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/11/plpgsql-implementation.html", "method": "same-major semantic node", "sha256": "2951864877099a13b83dce0e4eb195b7ecdd73a913e7597bcf1401f861643640", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/11/plpgsql-porting.html", "method": "same-major semantic node", "sha256": "93e8060cc01208ce158c76eb60e38e7ec3dea925b7a0fdfb3ba9ee9d64f7ada1", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/11/plpgsql-statements.html", "method": "same-major semantic node", "sha256": "ab7d3ceee15a893dd6dcc6c9eb89edb37817dafe7bc15e77a77fd520ca870dd1", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/11/plpgsql-structure.html", "method": "same-major semantic node", "sha256": "0ea1942bad5eb7c41cd47d16a3b708b42e4fa5d534c0a2b1d2e48c7bf11d7586", "language": "zh", "matched_nodes": ["#PLPGSQL-STRUCTURE/div[13]/p[1]/span[1]", "page-title/h2"]}, {"url": "/docs/11/plpgsql-transactions.html", "method": "same-major semantic node", "sha256": "d194998d1639aeabf6b5bb9497522fa4a40c36277ce3580f672fb3d425d0091f", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/11/plpgsql-trigger.html", "method": "same-major semantic node", "sha256": "588b221369d882b1634ee99fdfa0caf57e3947bced7023ffaafdf4d82bf51181", "language": "zh", "matched_nodes": ["page-title/h2"]}], "language": "zh", "original_text": {"/versions/11/description/0": "PL/pgSQL procedural language", "/versions/11/facts/0/label": "Kind", "/versions/11/facts/0/value": "Bundled procedural-language variant", "/versions/11/facts/1/label": "Family", "/versions/11/facts/1/value": "PL/pgSQL", "/versions/11/facts/2/label": "Trusted", "/versions/11/facts/3/label": "Handler", "/versions/11/facts/4/label": "Inline handler", "/versions/11/facts/5/label": "Validator", "/versions/11/facts/6/label": "Library", "/versions/11/facts/7/label": "Default version", "/versions/11/facts/8/label": "Module pathname", "/versions/11/facts/9/label": "Comment", "/versions/11/facts/9/value": "PL/pgSQL procedural language", "/versions/11/related/0/label": "plpgsql-control-structures", "/versions/11/related/1/label": "plpgsql-cursors", "/versions/11/related/2/label": "plpgsql-declarations", "/versions/11/related/3/label": "plpgsql-development-tips", "/versions/11/related/4/label": "plpgsql-errors-and-messages", "/versions/11/related/5/label": "plpgsql-expressions", "/versions/11/related/6/label": "plpgsql-implementation", "/versions/11/related/8/label": "plpgsql-porting", "/versions/11/related/9/label": "plpgsql-statements", "/versions/11/related/10/label": "plpgsql-structure", "/versions/11/related/11/label": "plpgsql-transactions", "/versions/11/related/12/label": "plpgsql-trigger", "/versions/11/sections/0/title": "Installation definition from the matching source archive", "/versions/11/sections/0/paragraphs/0": "This extension is shipped with the source. Its presence does not establish that the language or external runtime is installed."}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "c78e6479abdbdb4f2efc91ba5beaa6daee75f9976b4178afe1f0e0b256f2190e", "canonical_center_text_hash": "f2f44b75466f429dbaab30b0a12ec04daeae888efd7d7aebf337e62f90333220"}, "source_files": {"src/pl/plpgsql/src/plpgsql.control": "b48cd5aa8d87103b011dda42012b2aab62de061283272b2a454d676f041fa4c3", "src/pl/plpgsql/src/plpgsql--1.0.sql": "66f1dc2c4eaa9be9a512361d6171bd29f6ac078c9125e2d5b7014535e951a0e5"}, "description_zh": "\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002", "comparison_data": {"kind": "Bundled procedural-language variant", "family": "PL/pgSQL", "handler": "plpgsql_call_handler", "library": "$libdir/plpgsql", "trusted": "t", "validator": "plpgsql_validator", "inline_handler": "plpgsql_inline_handler", "default_version": "1.0"}, "comparison_hash": "e85051f39a242ce658cedd87ac97437817f0f1b2baf992d8d37c9d29df8b558b", "manual_language": "zh", "description_zh_html": "<p>\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002</p><dl><dt>\u8fd0\u7b97\u7b26\u65cf</dt><dd><code>PL/pgSQL</code></dd><dt>\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_call_handler</code></dd><dt>\u5e93</dt><dd><code>$libdir/plpgsql</code></dd><dt>\u53d7\u4fe1\u4efb</dt><dd><code>\u662f</code></dd><dt>\u9a8c\u8bc1\u51fd\u6570</dt><dd><code>plpgsql_validator</code></dd><dt>\u5185\u8054\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_inline_handler</code></dd><dt>\u9ed8\u8ba4\u7248\u672c</dt><dd><code>1.0</code></dd><dt>\u6a21\u5757\u8def\u5f84</dt><dd><code>$libdir/plpgsql</code></dd></dl><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n<span>PL/pgSQL</span> \u662f\u4e00\u79cd\u7528\u4e8e <span>PostgreSQL</span> \u6570\u636e\u5e93\u7cfb\u7edf\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\u3002<span>PL/pgSQL</span> \u7684\u8bbe\u8ba1\u76ee\u6807\uff0c\u662f\u521b\u5efa\u4e00\u79cd\u5177\u5907\u4ee5\u4e0b\u7279\u6027\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\uff1a\n\n    </p><p>\n    \u7528 <span>PL/pgSQL</span> \u521b\u5efa\u7684\u51fd\u6570\uff0c\u53ef\u4ee5\u7528\u4e8e\u4efb\u4f55\u53ef\u4ee5\u4f7f\u7528\u5185\u7f6e\u51fd\u6570\u7684\u5730\u65b9\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u521b\u5efa\u5e26\u6709\u590d\u6742\u6761\u4ef6\u903b\u8f91\u7684\u8ba1\u7b97\u51fd\u6570\uff0c\u968f\u540e\u7528\u5b83\u4eec\u5b9a\u4e49\u64cd\u4f5c\u7b26\uff0c\u6216\u8005\u628a\u5b83\u4eec\u7528\u4e8e\u7d22\u5f15\u8868\u8fbe\u5f0f\u3002\n   </p><p>\n    \u5728 <span>PostgreSQL</span> 9.0 \u53ca\u66f4\u9ad8\u7248\u672c\u4e2d\uff0c<span>PL/pgSQL</span> \u9ed8\u8ba4\u5b89\u88c5\u3002\u4e0d\u8fc7\u5b83\u4ecd\u7136\u662f\u4e00\u4e2a\u53ef\u8f7d\u5165\u6a21\u5757\uff0c\u56e0\u6b64\u5bf9\u5b89\u5168\u6027\u7279\u522b\u654f\u611f\u7684\u7ba1\u7406\u5458\u4e5f\u53ef\u4ee5\u9009\u62e9\u79fb\u9664\u5b83\u3002\n   </p><p><a href=\"/zh/docs/11/plpgsql.html#PLPGSQL-OVERVIEW\" rel=\"nofollow\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>"}, "12": {"facts": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "\u201c \u5916\u5c42\u5757 \u201d"}, {"label": "\u53ef\u4fe1", "value": "t"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plpgsql_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plpgsql_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plpgsql_validator"}, {"label": "\u5e93", "value": "$libdir/plpgsql"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plpgsql"}, {"label": "\u6ce8\u91ca", "value": "PL/pgSQL \u8fc7\u7a0b\u8bed\u8a00"}], "tables": [], "aliases": [], "related": [{"url": "/docs/12/plpgsql-control-structures.html", "label": "\u63a7\u5236\u7ed3\u6784"}, {"url": "/docs/12/plpgsql-cursors.html", "label": "\u6e38\u6807"}, {"url": "/docs/12/plpgsql-declarations.html", "label": "\u58f0\u660e"}, {"url": "/docs/12/plpgsql-development-tips.html", "label": "PL/pgSQL \u5f00\u53d1\u63d0\u793a"}, {"url": "/docs/12/plpgsql-errors-and-messages.html", "label": "\u9519\u8bef\u548c\u6d88\u606f"}, {"url": "/docs/12/plpgsql-expressions.html", "label": "\u8868\u8fbe\u5f0f"}, {"url": "/docs/12/plpgsql-implementation.html", "label": "PL/pgSQL \u5185\u90e8\u673a\u5236"}, {"url": "/docs/12/plpgsql-overview.html", "label": "plpgsql-overview"}, {"url": "/docs/12/plpgsql-porting.html", "label": "\u4ece Oracle PL/SQL \u79fb\u690d"}, {"url": "/docs/12/plpgsql-statements.html", "label": "\u57fa\u672c\u8bed\u53e5"}, {"url": "/docs/12/plpgsql-structure.html", "label": "PL/pgSQL \u7684\u7ed3\u6784"}, {"url": "/docs/12/plpgsql-transactions.html", "label": "\u4e8b\u52a1\u7ba1\u7406"}, {"url": "/docs/12/plpgsql-trigger.html", "label": "\u89e6\u53d1\u5668\u51fd\u6570"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v12.22/postgresql-12.22.tar.bz2", "label": "12.22", "major": "12", "channel": "historical", "revision": "8df3c0474782589d3c6f374b5133b1bd14d168086edbc13c6e72e67dd4527a3b", "source_sha256": "8df3c0474782589d3c6f374b5133b1bd14d168086edbc13c6e72e67dd4527a3b", "catalog_fingerprint": "9f857f4ee4875f9c7de6bfc9df4b757dec8b3a0bb88eadb519c7bd267bd56149"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v12.22/postgresql-12.22.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "8df3c0474782589d3c6f374b5133b1bd14d168086edbc13c6e72e67dd4527a3b"}, {"url": "/docs/12/plpgsql-overview.html", "path": "plpgsql-overview.html", "label": "PostgreSQL 12 English manual", "sha256": "51f96fb54896071d8d8601865ff2d11b3517059744801c31cbac4e4fa842b920"}], "zh_from": {"kind": "same-version-chinese-manual-with-source-derived-structured-summary", "manual": {"url": "/zh/docs/12/plpgsql.html#PLPGSQL-OVERVIEW", "anchor": "PLPGSQL-OVERVIEW", "locale": "zh-Hans", "version": "12", "build_id": 65, "page_key": "plpgsql.html", "extraction": "concept-introduction", "source_hash": "45552cc28f91eeb94c24eb8ed13cd5763f8422bd9aed15ea94ddafe17379690d", "fragment_sha256": "99416e90c5ea4b3583ed48b35295883d16c6c2caba40c87e8761304b0590c308", "source_revision": "unknown:rendered-translation-baseline", "translation_revision": "snapshot:sha256:86d2ff781f93e1de17122ebc514d5e64fcb63fed15941f496d7e146c6dcc7a49", "translated_from_revision": null}, "body_sha256": "ab218cbe85dd53eeac9ec6f916df80edd1e5b8d45f3dada1cca3bfc57a6b4e77", "runtime_rerun": false, "authored_translation": "source-derived-structured-summary", "source_facts_revision": "8df3c0474782589d3c6f374b5133b1bd14d168086edbc13c6e72e67dd4527a3b"}, "facts_zh": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "\u201c \u5916\u5c42\u5757 \u201d"}, {"label": "\u53ef\u4fe1", "value": "t"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plpgsql_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plpgsql_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plpgsql_validator"}, {"label": "\u5e93", "value": "$libdir/plpgsql"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plpgsql"}, {"label": "\u6ce8\u91ca", "value": "PL/pgSQL \u8fc7\u7a0b\u8bed\u8a00"}], "sections": [{"code": "/* src/pl/plpgsql/src/plpgsql--1.0.sql */\n\n/*\n * Currently, all the interesting stuff is done by CREATE LANGUAGE.\n * Later we will probably \"dumb down\" that command and put more of the\n * knowledge into this script.\n */\n\nCREATE LANGUAGE plpgsql;\n\nCOMMENT ON LANGUAGE plpgsql IS 'PL/pgSQL procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "center_zh": {"title": "plpgsql", "locale": "zh-Hans", "source": {"key": "plpgsql", "locale": "zh-Hans", "version": "12", "text_hash": "b50b3070a7ca88e0baf281f7f5fd3652de0a76ae08ba4665a7c0fe62ba513bb8", "collection": "language", "dataset_hash": "7c31b524dfe136022d39a6ae8dcfac6b3bbd5f8fdaf422536599981252aff0c9", "source_database": "center", "source_revision": "8df3c0474782589d3c6f374b5133b1bd14d168086edbc13c6e72e67dd4527a3b"}, "payload": {"facts": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "\u201c \u5916\u5c42\u5757 \u201d"}, {"label": "\u53ef\u4fe1", "value": "t"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plpgsql_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plpgsql_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plpgsql_validator"}, {"label": "\u5e93", "value": "$libdir/plpgsql"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plpgsql"}, {"label": "\u6ce8\u91ca", "value": "PL/pgSQL \u8fc7\u7a0b\u8bed\u8a00"}], "tables": [], "zh_from": {"kind": "same-version-chinese-manual-with-source-derived-structured-summary", "manual": {"url": "/zh/docs/12/plpgsql.html#PLPGSQL-OVERVIEW", "anchor": "PLPGSQL-OVERVIEW", "locale": "zh-Hans", "version": "12", "build_id": 65, "page_key": "plpgsql.html", "extraction": "concept-introduction", "source_hash": "45552cc28f91eeb94c24eb8ed13cd5763f8422bd9aed15ea94ddafe17379690d", "fragment_sha256": "99416e90c5ea4b3583ed48b35295883d16c6c2caba40c87e8761304b0590c308", "source_revision": "unknown:rendered-translation-baseline", "translation_revision": "snapshot:sha256:86d2ff781f93e1de17122ebc514d5e64fcb63fed15941f496d7e146c6dcc7a49", "translated_from_revision": null}, "body_sha256": "ab218cbe85dd53eeac9ec6f916df80edd1e5b8d45f3dada1cca3bfc57a6b4e77", "runtime_rerun": false, "authored_translation": "source-derived-structured-summary", "source_facts_revision": "8df3c0474782589d3c6f374b5133b1bd14d168086edbc13c6e72e67dd4527a3b"}, "sections": [{"code": "/* src/pl/plpgsql/src/plpgsql--1.0.sql */\n\n/*\n * Currently, all the interesting stuff is done by CREATE LANGUAGE.\n * Later we will probably \"dumb down\" that command and put more of the\n * knowledge into this script.\n */\n\nCREATE LANGUAGE plpgsql;\n\nCOMMENT ON LANGUAGE plpgsql IS 'PL/pgSQL procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "description_zh": "\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002", "description_zh_html": "<p>\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002</p><dl><dt>\u8fd0\u7b97\u7b26\u65cf</dt><dd><code>PL/pgSQL</code></dd><dt>\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_call_handler</code></dd><dt>\u5e93</dt><dd><code>$libdir/plpgsql</code></dd><dt>\u53d7\u4fe1\u4efb</dt><dd><code>\u662f</code></dd><dt>\u9a8c\u8bc1\u51fd\u6570</dt><dd><code>plpgsql_validator</code></dd><dt>\u5185\u8054\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_inline_handler</code></dd><dt>\u9ed8\u8ba4\u7248\u672c</dt><dd><code>1.0</code></dd><dt>\u6a21\u5757\u8def\u5f84</dt><dd><code>$libdir/plpgsql</code></dd></dl><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n<span class=\"application\">PL/pgSQL</span> \u662f\u4e00\u79cd\u7528\u4e8e <span class=\"productname\">PostgreSQL</span> \u6570\u636e\u5e93\u7cfb\u7edf\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\u3002<span class=\"application\">PL/pgSQL</span> \u7684\u8bbe\u8ba1\u76ee\u6807\uff0c\u662f\u521b\u5efa\u4e00\u79cd\u5177\u5907\u4ee5\u4e0b\u7279\u6027\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\uff1a\n\n    </p><p>\n    \u7528 <span class=\"application\">PL/pgSQL</span> \u521b\u5efa\u7684\u51fd\u6570\uff0c\u53ef\u4ee5\u7528\u4e8e\u4efb\u4f55\u53ef\u4ee5\u4f7f\u7528\u5185\u7f6e\u51fd\u6570\u7684\u5730\u65b9\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u521b\u5efa\u5e26\u6709\u590d\u6742\u6761\u4ef6\u903b\u8f91\u7684\u8ba1\u7b97\u51fd\u6570\uff0c\u968f\u540e\u7528\u5b83\u4eec\u5b9a\u4e49\u64cd\u4f5c\u7b26\uff0c\u6216\u8005\u628a\u5b83\u4eec\u7528\u4e8e\u7d22\u5f15\u8868\u8fbe\u5f0f\u3002\n   </p><p>\n    \u5728 <span class=\"productname\">PostgreSQL</span> 9.0 \u53ca\u66f4\u9ad8\u7248\u672c\u4e2d\uff0c<span class=\"application\">PL/pgSQL</span> \u9ed8\u8ba4\u5b89\u88c5\u3002\u4e0d\u8fc7\u5b83\u4ecd\u7136\u662f\u4e00\u4e2a\u53ef\u8f7d\u5165\u6a21\u5757\uff0c\u56e0\u6b64\u5bf9\u5b89\u5168\u6027\u7279\u522b\u654f\u611f\u7684\u7ba1\u7406\u5458\u4e5f\u53ef\u4ee5\u9009\u62e9\u79fb\u9664\u5b83\u3002\n   </p><p><a href=\"/zh/docs/12/plpgsql.html#PLPGSQL-OVERVIEW\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>"}, "summary": "\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002", "version": "12", "link_map": {"/zh/docs/12/plpgsql.html#PLPGSQL-OVERVIEW": "/docs/12/plpgsql.html#PLPGSQL-OVERVIEW"}, "body_html": "<p>\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002</p><dl><dt>\u8fd0\u7b97\u7b26\u65cf</dt><dd><code>PL/pgSQL</code></dd><dt>\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_call_handler</code></dd><dt>\u5e93</dt><dd><code>$libdir/plpgsql</code></dd><dt>\u53d7\u4fe1\u4efb</dt><dd><code>\u662f</code></dd><dt>\u9a8c\u8bc1\u51fd\u6570</dt><dd><code>plpgsql_validator</code></dd><dt>\u5185\u8054\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_inline_handler</code></dd><dt>\u9ed8\u8ba4\u7248\u672c</dt><dd><code>1.0</code></dd><dt>\u6a21\u5757\u8def\u5f84</dt><dd><code>$libdir/plpgsql</code></dd></dl><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n<span>PL/pgSQL</span> \u662f\u4e00\u79cd\u7528\u4e8e <span>PostgreSQL</span> \u6570\u636e\u5e93\u7cfb\u7edf\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\u3002<span>PL/pgSQL</span> \u7684\u8bbe\u8ba1\u76ee\u6807\uff0c\u662f\u521b\u5efa\u4e00\u79cd\u5177\u5907\u4ee5\u4e0b\u7279\u6027\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\uff1a\n\n    </p><p>\n    \u7528 <span>PL/pgSQL</span> \u521b\u5efa\u7684\u51fd\u6570\uff0c\u53ef\u4ee5\u7528\u4e8e\u4efb\u4f55\u53ef\u4ee5\u4f7f\u7528\u5185\u7f6e\u51fd\u6570\u7684\u5730\u65b9\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u521b\u5efa\u5e26\u6709\u590d\u6742\u6761\u4ef6\u903b\u8f91\u7684\u8ba1\u7b97\u51fd\u6570\uff0c\u968f\u540e\u7528\u5b83\u4eec\u5b9a\u4e49\u64cd\u4f5c\u7b26\uff0c\u6216\u8005\u628a\u5b83\u4eec\u7528\u4e8e\u7d22\u5f15\u8868\u8fbe\u5f0f\u3002\n   </p><p>\n    \u5728 <span>PostgreSQL</span> 9.0 \u53ca\u66f4\u9ad8\u7248\u672c\u4e2d\uff0c<span>PL/pgSQL</span> \u9ed8\u8ba4\u5b89\u88c5\u3002\u4e0d\u8fc7\u5b83\u4ecd\u7136\u662f\u4e00\u4e2a\u53ef\u8f7d\u5165\u6a21\u5757\uff0c\u56e0\u6b64\u5bf9\u5b89\u5168\u6027\u7279\u522b\u654f\u611f\u7684\u7ba1\u7406\u5458\u4e5f\u53ef\u4ee5\u9009\u62e9\u79fb\u9664\u5b83\u3002\n   </p><p><a href=\"/zh/docs/12/plpgsql.html#PLPGSQL-OVERVIEW\" rel=\"nofollow\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>", "body_sha256": "65ecedaeabbb5d2844e4a2bdbcfcf38153672c01163cca7d9f95f689546c07f4", "content_hash": "b50b3070a7ca88e0baf281f7f5fd3652de0a76ae08ba4665a7c0fe62ba513bb8", "source_database": "center", "source_revision": "8df3c0474782589d3c6f374b5133b1bd14d168086edbc13c6e72e67dd4527a3b"}, "signature": "", "tables_zh": [], "attributes": {"kind": "Bundled procedural-language variant", "family": "PL/pgSQL", "comment": "PL/pgSQL procedural language", "handler": "plpgsql_call_handler", "library": "$libdir/plpgsql", "trusted": "t", "validator": "plpgsql_validator", "inline_handler": "plpgsql_inline_handler", "default_version": "1.0", "module_pathname": "$libdir/plpgsql"}, "description": ["\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002"], "manual_html": "", "manual_path": "/docs/12/plpgsql-overview.html", "sections_zh": [{"code": "/* src/pl/plpgsql/src/plpgsql--1.0.sql */\n\n/*\n * Currently, all the interesting stuff is done by CREATE LANGUAGE.\n * Later we will probably \"dumb down\" that command and put more of the\n * knowledge into this script.\n */\n\nCREATE LANGUAGE plpgsql;\n\nCOMMENT ON LANGUAGE plpgsql IS 'PL/pgSQL procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "localization": {"status": "complete", "sources": [{"url": "/docs/12/plpgsql-control-structures.html", "method": "same-major semantic node", "sha256": "c26209f3ac6a4f96ad29b0f703fc0ed924ee2f7fe458c3caba3000e7ea3a3819", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/12/plpgsql-cursors.html", "method": "same-major semantic node", "sha256": "73a78698314628d41dfec7dc5cd7552a99cb2bf63d5b27cc364a86ff1035a1bf", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/12/plpgsql-declarations.html", "method": "same-major semantic node", "sha256": "3696bfae4051305b27655d516bb71062bc38e5f0bcf0a7ddab5358c7850b474f", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/12/plpgsql-development-tips.html", "method": "same-major semantic node", "sha256": "0e6bcf59ca823203507cf562250a10fff4cfa969f19fe795dde1347e940d0395", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/12/plpgsql-errors-and-messages.html", "method": "same-major semantic node", "sha256": "ea5fac093355fbcade17e706570de6eaf87ce72065816cafc56d11e4f53da462", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/12/plpgsql-expressions.html", "method": "same-major semantic node", "sha256": "87d1e7d3b830c9622be0ee7521d8bd55e87d09a3e6cb835de1b01d009b1a6801", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/12/plpgsql-implementation.html", "method": "same-major semantic node", "sha256": "7100feda2bd5f7bc6b2f4f836a4f00ec0da3b58210957606dcfe21898c175d87", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/12/plpgsql-porting.html", "method": "same-major semantic node", "sha256": "5af0d90872f2b189eb743d8b3afc22ae44256518c18fa5ed00c61126b30541f8", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/12/plpgsql-statements.html", "method": "same-major semantic node", "sha256": "bb01af05f6f12315e9a8417cfdcf2d548f086ff9a7649303531fc1804b3ede6b", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/12/plpgsql-structure.html", "method": "same-major semantic node", "sha256": "9f462762340fb211aa9da41a413b90de73dfc5003abcd7deea83232c7d984265", "language": "zh", "matched_nodes": ["#PLPGSQL-STRUCTURE/div[13]/p[1]/span[1]", "page-title/h2"]}, {"url": "/docs/12/plpgsql-transactions.html", "method": "same-major semantic node", "sha256": "bae0e1f07d89e8c6cd91e68f3b4508465f37f9f2af168ac857c2cffdb907541a", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/12/plpgsql-trigger.html", "method": "same-major semantic node", "sha256": "e318193efff0e8eef4e7bc18a47f02dd45d62faeddedcc67507d75c5b13fe169", "language": "zh", "matched_nodes": ["page-title/h2"]}], "language": "zh", "original_text": {"/versions/12/description/0": "PL/pgSQL procedural language", "/versions/12/facts/0/label": "Kind", "/versions/12/facts/0/value": "Bundled procedural-language variant", "/versions/12/facts/1/label": "Family", "/versions/12/facts/1/value": "PL/pgSQL", "/versions/12/facts/2/label": "Trusted", "/versions/12/facts/3/label": "Handler", "/versions/12/facts/4/label": "Inline handler", "/versions/12/facts/5/label": "Validator", "/versions/12/facts/6/label": "Library", "/versions/12/facts/7/label": "Default version", "/versions/12/facts/8/label": "Module pathname", "/versions/12/facts/9/label": "Comment", "/versions/12/facts/9/value": "PL/pgSQL procedural language", "/versions/12/related/0/label": "plpgsql-control-structures", "/versions/12/related/1/label": "plpgsql-cursors", "/versions/12/related/2/label": "plpgsql-declarations", "/versions/12/related/3/label": "plpgsql-development-tips", "/versions/12/related/4/label": "plpgsql-errors-and-messages", "/versions/12/related/5/label": "plpgsql-expressions", "/versions/12/related/6/label": "plpgsql-implementation", "/versions/12/related/8/label": "plpgsql-porting", "/versions/12/related/9/label": "plpgsql-statements", "/versions/12/related/10/label": "plpgsql-structure", "/versions/12/related/11/label": "plpgsql-transactions", "/versions/12/related/12/label": "plpgsql-trigger", "/versions/12/sections/0/title": "Installation definition from the matching source archive", "/versions/12/sections/0/paragraphs/0": "This extension is shipped with the source. Its presence does not establish that the language or external runtime is installed."}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "6261bb27dc93bf9105529d5f1a87b02e716f39d06e2f3a48ebd61292e4c70f7e", "canonical_center_text_hash": "b50b3070a7ca88e0baf281f7f5fd3652de0a76ae08ba4665a7c0fe62ba513bb8"}, "source_files": {"src/pl/plpgsql/src/plpgsql.control": "b48cd5aa8d87103b011dda42012b2aab62de061283272b2a454d676f041fa4c3", "src/pl/plpgsql/src/plpgsql--1.0.sql": "c1fd03aa2fdd5db25d025d83cd5ee52a335a532dfbf0f72554c0df7a18188b1e"}, "description_zh": "\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002", "comparison_data": {"kind": "Bundled procedural-language variant", "family": "PL/pgSQL", "handler": "plpgsql_call_handler", "library": "$libdir/plpgsql", "trusted": "t", "validator": "plpgsql_validator", "inline_handler": "plpgsql_inline_handler", "default_version": "1.0"}, "comparison_hash": "e85051f39a242ce658cedd87ac97437817f0f1b2baf992d8d37c9d29df8b558b", "manual_language": "zh", "description_zh_html": "<p>\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002</p><dl><dt>\u8fd0\u7b97\u7b26\u65cf</dt><dd><code>PL/pgSQL</code></dd><dt>\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_call_handler</code></dd><dt>\u5e93</dt><dd><code>$libdir/plpgsql</code></dd><dt>\u53d7\u4fe1\u4efb</dt><dd><code>\u662f</code></dd><dt>\u9a8c\u8bc1\u51fd\u6570</dt><dd><code>plpgsql_validator</code></dd><dt>\u5185\u8054\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_inline_handler</code></dd><dt>\u9ed8\u8ba4\u7248\u672c</dt><dd><code>1.0</code></dd><dt>\u6a21\u5757\u8def\u5f84</dt><dd><code>$libdir/plpgsql</code></dd></dl><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n<span>PL/pgSQL</span> \u662f\u4e00\u79cd\u7528\u4e8e <span>PostgreSQL</span> \u6570\u636e\u5e93\u7cfb\u7edf\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\u3002<span>PL/pgSQL</span> \u7684\u8bbe\u8ba1\u76ee\u6807\uff0c\u662f\u521b\u5efa\u4e00\u79cd\u5177\u5907\u4ee5\u4e0b\u7279\u6027\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\uff1a\n\n    </p><p>\n    \u7528 <span>PL/pgSQL</span> \u521b\u5efa\u7684\u51fd\u6570\uff0c\u53ef\u4ee5\u7528\u4e8e\u4efb\u4f55\u53ef\u4ee5\u4f7f\u7528\u5185\u7f6e\u51fd\u6570\u7684\u5730\u65b9\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u521b\u5efa\u5e26\u6709\u590d\u6742\u6761\u4ef6\u903b\u8f91\u7684\u8ba1\u7b97\u51fd\u6570\uff0c\u968f\u540e\u7528\u5b83\u4eec\u5b9a\u4e49\u64cd\u4f5c\u7b26\uff0c\u6216\u8005\u628a\u5b83\u4eec\u7528\u4e8e\u7d22\u5f15\u8868\u8fbe\u5f0f\u3002\n   </p><p>\n    \u5728 <span>PostgreSQL</span> 9.0 \u53ca\u66f4\u9ad8\u7248\u672c\u4e2d\uff0c<span>PL/pgSQL</span> \u9ed8\u8ba4\u5b89\u88c5\u3002\u4e0d\u8fc7\u5b83\u4ecd\u7136\u662f\u4e00\u4e2a\u53ef\u8f7d\u5165\u6a21\u5757\uff0c\u56e0\u6b64\u5bf9\u5b89\u5168\u6027\u7279\u522b\u654f\u611f\u7684\u7ba1\u7406\u5458\u4e5f\u53ef\u4ee5\u9009\u62e9\u79fb\u9664\u5b83\u3002\n   </p><p><a href=\"/zh/docs/12/plpgsql.html#PLPGSQL-OVERVIEW\" rel=\"nofollow\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>"}, "13": {"facts": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "\u201c \u5916\u5c42\u5757 \u201d"}, {"label": "\u53ef\u4fe1", "value": "t"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plpgsql_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plpgsql_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plpgsql_validator"}, {"label": "\u5e93", "value": "$libdir/plpgsql"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plpgsql"}, {"label": "\u6ce8\u91ca", "value": "PL/pgSQL \u8fc7\u7a0b\u8bed\u8a00"}], "tables": [], "aliases": [], "related": [{"url": "/docs/13/plpgsql-control-structures.html", "label": "\u63a7\u5236\u7ed3\u6784"}, {"url": "/docs/13/plpgsql-cursors.html", "label": "\u6e38\u6807"}, {"url": "/docs/13/plpgsql-declarations.html", "label": "\u58f0\u660e"}, {"url": "/docs/13/plpgsql-development-tips.html", "label": "PL/pgSQL \u5f00\u53d1\u63d0\u793a"}, {"url": "/docs/13/plpgsql-errors-and-messages.html", "label": "\u9519\u8bef\u548c\u6d88\u606f"}, {"url": "/docs/13/plpgsql-expressions.html", "label": "\u8868\u8fbe\u5f0f"}, {"url": "/docs/13/plpgsql-implementation.html", "label": "PL/pgSQL \u5185\u90e8\u673a\u5236"}, {"url": "/docs/13/plpgsql-overview.html", "label": "plpgsql-overview"}, {"url": "/docs/13/plpgsql-porting.html", "label": "\u4ece Oracle PL/SQL \u79fb\u690d"}, {"url": "/docs/13/plpgsql-statements.html", "label": "\u57fa\u672c\u8bed\u53e5"}, {"url": "/docs/13/plpgsql-structure.html", "label": "PL/pgSQL \u7684\u7ed3\u6784"}, {"url": "/docs/13/plpgsql-transactions.html", "label": "\u4e8b\u52a1\u7ba1\u7406"}, {"url": "/docs/13/plpgsql-trigger.html", "label": "\u89e6\u53d1\u5668\u51fd\u6570"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v13.23/postgresql-13.23.tar.bz2", "label": "13.23", "major": "13", "channel": "historical", "revision": "6ec3c82726af92b7dec873fa1cdf881eca92a4219787dfad05acb6b10e041fd6", "source_sha256": "6ec3c82726af92b7dec873fa1cdf881eca92a4219787dfad05acb6b10e041fd6", "catalog_fingerprint": "c7015c845255c9d721c547c8ab9ef37825d332588c9691d982e6906b7d571002"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v13.23/postgresql-13.23.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "6ec3c82726af92b7dec873fa1cdf881eca92a4219787dfad05acb6b10e041fd6"}, {"url": "/docs/13/plpgsql-overview.html", "path": "plpgsql-overview.html", "label": "PostgreSQL 13 English manual", "sha256": "93a9e509a9511632f4896600769c872d388284a91d1ae3b01b51744ed5ea2092"}], "zh_from": {"kind": "same-version-chinese-manual-with-source-derived-structured-summary", "manual": {"url": "/zh/docs/13/plpgsql.html#PLPGSQL-OVERVIEW", "anchor": "PLPGSQL-OVERVIEW", "locale": "zh-Hans", "version": "13", "build_id": 66, "page_key": "plpgsql.html", "extraction": "concept-introduction", "source_hash": "1c82ca4eee98446859ca99bfa615ac089958bca21883cd646d9e2217e133f21b", "fragment_sha256": "99416e90c5ea4b3583ed48b35295883d16c6c2caba40c87e8761304b0590c308", "source_revision": "unknown:rendered-translation-baseline", "translation_revision": "snapshot:sha256:a13a825c39f0268ef1cfe9137e283e38d0da73b2d7894f0733c7b26372a4f6a4", "translated_from_revision": null}, "body_sha256": "4f1c9709dd84235ce2795c3d59f57457d5b58594fbcbf3dfa72dd846974d2132", "runtime_rerun": false, "authored_translation": "source-derived-structured-summary", "source_facts_revision": "6ec3c82726af92b7dec873fa1cdf881eca92a4219787dfad05acb6b10e041fd6"}, "facts_zh": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "\u201c \u5916\u5c42\u5757 \u201d"}, {"label": "\u53ef\u4fe1", "value": "t"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plpgsql_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plpgsql_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plpgsql_validator"}, {"label": "\u5e93", "value": "$libdir/plpgsql"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plpgsql"}, {"label": "\u6ce8\u91ca", "value": "PL/pgSQL \u8fc7\u7a0b\u8bed\u8a00"}], "sections": [{"code": "/* src/pl/plpgsql/src/plpgsql--1.0.sql */\n\nCREATE FUNCTION plpgsql_call_handler() RETURNS language_handler\n  LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_inline_handler(internal) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_validator(oid) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE TRUSTED LANGUAGE plpgsql\n  HANDLER plpgsql_call_handler\n  INLINE plpgsql_inline_handler\n  VALIDATOR plpgsql_validator;\n\n-- The language object, but not the functions, can be owned by a non-superuser.\nALTER LANGUAGE plpgsql OWNER TO @extowner@;\n\nCOMMENT ON LANGUAGE plpgsql IS 'PL/pgSQL procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "center_zh": {"title": "plpgsql", "locale": "zh-Hans", "source": {"key": "plpgsql", "locale": "zh-Hans", "version": "13", "text_hash": "1b0f0c5b3cc3087c43c012a3dda443308ba6958b28f45035ede1ded0dad14b88", "collection": "language", "dataset_hash": "7c31b524dfe136022d39a6ae8dcfac6b3bbd5f8fdaf422536599981252aff0c9", "source_database": "center", "source_revision": "6ec3c82726af92b7dec873fa1cdf881eca92a4219787dfad05acb6b10e041fd6"}, "payload": {"facts": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "\u201c \u5916\u5c42\u5757 \u201d"}, {"label": "\u53ef\u4fe1", "value": "t"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plpgsql_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plpgsql_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plpgsql_validator"}, {"label": "\u5e93", "value": "$libdir/plpgsql"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plpgsql"}, {"label": "\u6ce8\u91ca", "value": "PL/pgSQL \u8fc7\u7a0b\u8bed\u8a00"}], "tables": [], "zh_from": {"kind": "same-version-chinese-manual-with-source-derived-structured-summary", "manual": {"url": "/zh/docs/13/plpgsql.html#PLPGSQL-OVERVIEW", "anchor": "PLPGSQL-OVERVIEW", "locale": "zh-Hans", "version": "13", "build_id": 66, "page_key": "plpgsql.html", "extraction": "concept-introduction", "source_hash": "1c82ca4eee98446859ca99bfa615ac089958bca21883cd646d9e2217e133f21b", "fragment_sha256": "99416e90c5ea4b3583ed48b35295883d16c6c2caba40c87e8761304b0590c308", "source_revision": "unknown:rendered-translation-baseline", "translation_revision": "snapshot:sha256:a13a825c39f0268ef1cfe9137e283e38d0da73b2d7894f0733c7b26372a4f6a4", "translated_from_revision": null}, "body_sha256": "4f1c9709dd84235ce2795c3d59f57457d5b58594fbcbf3dfa72dd846974d2132", "runtime_rerun": false, "authored_translation": "source-derived-structured-summary", "source_facts_revision": "6ec3c82726af92b7dec873fa1cdf881eca92a4219787dfad05acb6b10e041fd6"}, "sections": [{"code": "/* src/pl/plpgsql/src/plpgsql--1.0.sql */\n\nCREATE FUNCTION plpgsql_call_handler() RETURNS language_handler\n  LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_inline_handler(internal) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_validator(oid) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE TRUSTED LANGUAGE plpgsql\n  HANDLER plpgsql_call_handler\n  INLINE plpgsql_inline_handler\n  VALIDATOR plpgsql_validator;\n\n-- The language object, but not the functions, can be owned by a non-superuser.\nALTER LANGUAGE plpgsql OWNER TO @extowner@;\n\nCOMMENT ON LANGUAGE plpgsql IS 'PL/pgSQL procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "description_zh": "\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002", "description_zh_html": "<p>\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002</p><dl><dt>\u8fd0\u7b97\u7b26\u65cf</dt><dd><code>PL/pgSQL</code></dd><dt>\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_call_handler</code></dd><dt>\u5e93</dt><dd><code>$libdir/plpgsql</code></dd><dt>\u53d7\u4fe1\u4efb</dt><dd><code>\u662f</code></dd><dt>\u9a8c\u8bc1\u51fd\u6570</dt><dd><code>plpgsql_validator</code></dd><dt>\u5185\u8054\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_inline_handler</code></dd><dt>\u9ed8\u8ba4\u7248\u672c</dt><dd><code>1.0</code></dd><dt>\u6a21\u5757\u8def\u5f84</dt><dd><code>$libdir/plpgsql</code></dd></dl><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n<span class=\"application\">PL/pgSQL</span> \u662f\u4e00\u79cd\u7528\u4e8e <span class=\"productname\">PostgreSQL</span> \u6570\u636e\u5e93\u7cfb\u7edf\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\u3002<span class=\"application\">PL/pgSQL</span> \u7684\u8bbe\u8ba1\u76ee\u6807\uff0c\u662f\u521b\u5efa\u4e00\u79cd\u5177\u5907\u4ee5\u4e0b\u7279\u6027\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\uff1a\n\n    </p><p>\n    \u7528 <span class=\"application\">PL/pgSQL</span> \u521b\u5efa\u7684\u51fd\u6570\uff0c\u53ef\u4ee5\u7528\u4e8e\u4efb\u4f55\u53ef\u4ee5\u4f7f\u7528\u5185\u7f6e\u51fd\u6570\u7684\u5730\u65b9\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u521b\u5efa\u5e26\u6709\u590d\u6742\u6761\u4ef6\u903b\u8f91\u7684\u8ba1\u7b97\u51fd\u6570\uff0c\u968f\u540e\u7528\u5b83\u4eec\u5b9a\u4e49\u64cd\u4f5c\u7b26\uff0c\u6216\u8005\u628a\u5b83\u4eec\u7528\u4e8e\u7d22\u5f15\u8868\u8fbe\u5f0f\u3002\n   </p><p>\n    \u5728 <span class=\"productname\">PostgreSQL</span> 9.0 \u53ca\u66f4\u9ad8\u7248\u672c\u4e2d\uff0c<span class=\"application\">PL/pgSQL</span> \u9ed8\u8ba4\u5b89\u88c5\u3002\u4e0d\u8fc7\u5b83\u4ecd\u7136\u662f\u4e00\u4e2a\u53ef\u8f7d\u5165\u6a21\u5757\uff0c\u56e0\u6b64\u5bf9\u5b89\u5168\u6027\u7279\u522b\u654f\u611f\u7684\u7ba1\u7406\u5458\u4e5f\u53ef\u4ee5\u9009\u62e9\u79fb\u9664\u5b83\u3002\n   </p><p><a href=\"/zh/docs/13/plpgsql.html#PLPGSQL-OVERVIEW\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>"}, "summary": "\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002", "version": "13", "link_map": {"/zh/docs/13/plpgsql.html#PLPGSQL-OVERVIEW": "/docs/13/plpgsql.html#PLPGSQL-OVERVIEW"}, "body_html": "<p>\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002</p><dl><dt>\u8fd0\u7b97\u7b26\u65cf</dt><dd><code>PL/pgSQL</code></dd><dt>\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_call_handler</code></dd><dt>\u5e93</dt><dd><code>$libdir/plpgsql</code></dd><dt>\u53d7\u4fe1\u4efb</dt><dd><code>\u662f</code></dd><dt>\u9a8c\u8bc1\u51fd\u6570</dt><dd><code>plpgsql_validator</code></dd><dt>\u5185\u8054\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_inline_handler</code></dd><dt>\u9ed8\u8ba4\u7248\u672c</dt><dd><code>1.0</code></dd><dt>\u6a21\u5757\u8def\u5f84</dt><dd><code>$libdir/plpgsql</code></dd></dl><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n<span>PL/pgSQL</span> \u662f\u4e00\u79cd\u7528\u4e8e <span>PostgreSQL</span> \u6570\u636e\u5e93\u7cfb\u7edf\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\u3002<span>PL/pgSQL</span> \u7684\u8bbe\u8ba1\u76ee\u6807\uff0c\u662f\u521b\u5efa\u4e00\u79cd\u5177\u5907\u4ee5\u4e0b\u7279\u6027\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\uff1a\n\n    </p><p>\n    \u7528 <span>PL/pgSQL</span> \u521b\u5efa\u7684\u51fd\u6570\uff0c\u53ef\u4ee5\u7528\u4e8e\u4efb\u4f55\u53ef\u4ee5\u4f7f\u7528\u5185\u7f6e\u51fd\u6570\u7684\u5730\u65b9\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u521b\u5efa\u5e26\u6709\u590d\u6742\u6761\u4ef6\u903b\u8f91\u7684\u8ba1\u7b97\u51fd\u6570\uff0c\u968f\u540e\u7528\u5b83\u4eec\u5b9a\u4e49\u64cd\u4f5c\u7b26\uff0c\u6216\u8005\u628a\u5b83\u4eec\u7528\u4e8e\u7d22\u5f15\u8868\u8fbe\u5f0f\u3002\n   </p><p>\n    \u5728 <span>PostgreSQL</span> 9.0 \u53ca\u66f4\u9ad8\u7248\u672c\u4e2d\uff0c<span>PL/pgSQL</span> \u9ed8\u8ba4\u5b89\u88c5\u3002\u4e0d\u8fc7\u5b83\u4ecd\u7136\u662f\u4e00\u4e2a\u53ef\u8f7d\u5165\u6a21\u5757\uff0c\u56e0\u6b64\u5bf9\u5b89\u5168\u6027\u7279\u522b\u654f\u611f\u7684\u7ba1\u7406\u5458\u4e5f\u53ef\u4ee5\u9009\u62e9\u79fb\u9664\u5b83\u3002\n   </p><p><a href=\"/zh/docs/13/plpgsql.html#PLPGSQL-OVERVIEW\" rel=\"nofollow\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>", "body_sha256": "57dc8b905c5fca966f6551dba89907f816f8fbbaa1fa312a58001b2c23315065", "content_hash": "1b0f0c5b3cc3087c43c012a3dda443308ba6958b28f45035ede1ded0dad14b88", "source_database": "center", "source_revision": "6ec3c82726af92b7dec873fa1cdf881eca92a4219787dfad05acb6b10e041fd6"}, "signature": "", "tables_zh": [], "attributes": {"kind": "Bundled procedural-language variant", "family": "PL/pgSQL", "comment": "PL/pgSQL procedural language", "handler": "plpgsql_call_handler", "library": "$libdir/plpgsql", "trusted": "t", "validator": "plpgsql_validator", "inline_handler": "plpgsql_inline_handler", "default_version": "1.0", "module_pathname": "$libdir/plpgsql"}, "description": ["\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002"], "manual_html": "", "manual_path": "/docs/13/plpgsql-overview.html", "sections_zh": [{"code": "/* src/pl/plpgsql/src/plpgsql--1.0.sql */\n\nCREATE FUNCTION plpgsql_call_handler() RETURNS language_handler\n  LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_inline_handler(internal) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_validator(oid) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE TRUSTED LANGUAGE plpgsql\n  HANDLER plpgsql_call_handler\n  INLINE plpgsql_inline_handler\n  VALIDATOR plpgsql_validator;\n\n-- The language object, but not the functions, can be owned by a non-superuser.\nALTER LANGUAGE plpgsql OWNER TO @extowner@;\n\nCOMMENT ON LANGUAGE plpgsql IS 'PL/pgSQL procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "localization": {"status": "complete", "sources": [{"url": "/docs/13/plpgsql-control-structures.html", "method": "same-major semantic node", "sha256": "67f8be7481c937c7a1fa5bf59d370fb96fd65b27f6896cb2b46c21f242f2615d", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/13/plpgsql-cursors.html", "method": "same-major semantic node", "sha256": "a71c89aec959149eed0b28226fc88ca21e37b85e4ff672a7f9a1bc658140e586", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/13/plpgsql-declarations.html", "method": "same-major semantic node", "sha256": "6b2e074d61b8c8ccc1fe8cc5f0d04f2f4a5ffcbe3a1f128e4c3346d7f6fd7bfb", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/13/plpgsql-development-tips.html", "method": "same-major semantic node", "sha256": "ceb67d920a9c8323aea244d7402caeca91bb277c7609635c650323b228dff70c", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/13/plpgsql-errors-and-messages.html", "method": "same-major semantic node", "sha256": "9c6ca83cfdcdeeeb02e15cc72f4d4d0f4a7d20b34377e1310b916bc2c2ffcb77", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/13/plpgsql-expressions.html", "method": "same-major semantic node", "sha256": "f095c4430568973465db369a473d8b41860aa93372addce8183548a94ebb892d", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/13/plpgsql-implementation.html", "method": "same-major semantic node", "sha256": "a5381b1b249f800d9d06d077940ba1cc41fe279270bebb5bef52614414ffa7cf", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/13/plpgsql-porting.html", "method": "same-major semantic node", "sha256": "a496150f5f2b7749805eea134a2c0136453b30d824b2f9d6f866c5c1608de3f4", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/13/plpgsql-statements.html", "method": "same-major semantic node", "sha256": "b8bb310fc597927e36956bf70644b2a64c04070384f8f6ad564f2b4ed5344f69", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/13/plpgsql-structure.html", "method": "same-major semantic node", "sha256": "770e09ec4e3f26023efcebb435d349cd3333cf563772029f29e12f1cc8786d40", "language": "zh", "matched_nodes": ["#PLPGSQL-STRUCTURE/div[13]/p[1]/span[1]", "page-title/h2"]}, {"url": "/docs/13/plpgsql-transactions.html", "method": "same-major semantic node", "sha256": "f3cbafd9039f16f246a5ca4cb9487aba19a4f334af1144748d7c8d5d97038d1c", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/13/plpgsql-trigger.html", "method": "same-major semantic node", "sha256": "b244fbf9d3379f2e309264a34f5833a9ac2d33399f3a701c31be02036c766c20", "language": "zh", "matched_nodes": ["page-title/h2"]}], "language": "zh", "original_text": {"/versions/13/description/0": "PL/pgSQL procedural language", "/versions/13/facts/0/label": "Kind", "/versions/13/facts/0/value": "Bundled procedural-language variant", "/versions/13/facts/1/label": "Family", "/versions/13/facts/1/value": "PL/pgSQL", "/versions/13/facts/2/label": "Trusted", "/versions/13/facts/3/label": "Handler", "/versions/13/facts/4/label": "Inline handler", "/versions/13/facts/5/label": "Validator", "/versions/13/facts/6/label": "Library", "/versions/13/facts/7/label": "Default version", "/versions/13/facts/8/label": "Module pathname", "/versions/13/facts/9/label": "Comment", "/versions/13/facts/9/value": "PL/pgSQL procedural language", "/versions/13/related/0/label": "plpgsql-control-structures", "/versions/13/related/1/label": "plpgsql-cursors", "/versions/13/related/2/label": "plpgsql-declarations", "/versions/13/related/3/label": "plpgsql-development-tips", "/versions/13/related/4/label": "plpgsql-errors-and-messages", "/versions/13/related/5/label": "plpgsql-expressions", "/versions/13/related/6/label": "plpgsql-implementation", "/versions/13/related/8/label": "plpgsql-porting", "/versions/13/related/9/label": "plpgsql-statements", "/versions/13/related/10/label": "plpgsql-structure", "/versions/13/related/11/label": "plpgsql-transactions", "/versions/13/related/12/label": "plpgsql-trigger", "/versions/13/sections/0/title": "Installation definition from the matching source archive", "/versions/13/sections/0/paragraphs/0": "This extension is shipped with the source. Its presence does not establish that the language or external runtime is installed."}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "d3ef3719d32b13944729c840232d23fe2a56d9502d5656ef184c62a3911116d1", "canonical_center_text_hash": "1b0f0c5b3cc3087c43c012a3dda443308ba6958b28f45035ede1ded0dad14b88"}, "source_files": {"src/pl/plpgsql/src/plpgsql.control": "9457c3f51d6bdfab93f13080d177795a9274c025e378fb613218342e3a3c7b45", "src/pl/plpgsql/src/plpgsql--1.0.sql": "f4e7e05438808ac0da0b3801397d16e36102969af7e2ffc982def5b7524fb557"}, "description_zh": "\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002", "comparison_data": {"kind": "Bundled procedural-language variant", "family": "PL/pgSQL", "handler": "plpgsql_call_handler", "library": "$libdir/plpgsql", "trusted": "t", "validator": "plpgsql_validator", "inline_handler": "plpgsql_inline_handler", "default_version": "1.0"}, "comparison_hash": "e85051f39a242ce658cedd87ac97437817f0f1b2baf992d8d37c9d29df8b558b", "manual_language": "zh", "description_zh_html": "<p>\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002</p><dl><dt>\u8fd0\u7b97\u7b26\u65cf</dt><dd><code>PL/pgSQL</code></dd><dt>\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_call_handler</code></dd><dt>\u5e93</dt><dd><code>$libdir/plpgsql</code></dd><dt>\u53d7\u4fe1\u4efb</dt><dd><code>\u662f</code></dd><dt>\u9a8c\u8bc1\u51fd\u6570</dt><dd><code>plpgsql_validator</code></dd><dt>\u5185\u8054\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_inline_handler</code></dd><dt>\u9ed8\u8ba4\u7248\u672c</dt><dd><code>1.0</code></dd><dt>\u6a21\u5757\u8def\u5f84</dt><dd><code>$libdir/plpgsql</code></dd></dl><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n<span>PL/pgSQL</span> \u662f\u4e00\u79cd\u7528\u4e8e <span>PostgreSQL</span> \u6570\u636e\u5e93\u7cfb\u7edf\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\u3002<span>PL/pgSQL</span> \u7684\u8bbe\u8ba1\u76ee\u6807\uff0c\u662f\u521b\u5efa\u4e00\u79cd\u5177\u5907\u4ee5\u4e0b\u7279\u6027\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\uff1a\n\n    </p><p>\n    \u7528 <span>PL/pgSQL</span> \u521b\u5efa\u7684\u51fd\u6570\uff0c\u53ef\u4ee5\u7528\u4e8e\u4efb\u4f55\u53ef\u4ee5\u4f7f\u7528\u5185\u7f6e\u51fd\u6570\u7684\u5730\u65b9\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u521b\u5efa\u5e26\u6709\u590d\u6742\u6761\u4ef6\u903b\u8f91\u7684\u8ba1\u7b97\u51fd\u6570\uff0c\u968f\u540e\u7528\u5b83\u4eec\u5b9a\u4e49\u64cd\u4f5c\u7b26\uff0c\u6216\u8005\u628a\u5b83\u4eec\u7528\u4e8e\u7d22\u5f15\u8868\u8fbe\u5f0f\u3002\n   </p><p>\n    \u5728 <span>PostgreSQL</span> 9.0 \u53ca\u66f4\u9ad8\u7248\u672c\u4e2d\uff0c<span>PL/pgSQL</span> \u9ed8\u8ba4\u5b89\u88c5\u3002\u4e0d\u8fc7\u5b83\u4ecd\u7136\u662f\u4e00\u4e2a\u53ef\u8f7d\u5165\u6a21\u5757\uff0c\u56e0\u6b64\u5bf9\u5b89\u5168\u6027\u7279\u522b\u654f\u611f\u7684\u7ba1\u7406\u5458\u4e5f\u53ef\u4ee5\u9009\u62e9\u79fb\u9664\u5b83\u3002\n   </p><p><a href=\"/zh/docs/13/plpgsql.html#PLPGSQL-OVERVIEW\" rel=\"nofollow\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>"}, "14": {"facts": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "\u201c \u5916\u5c42\u5757 \u201d"}, {"label": "\u53ef\u4fe1", "value": "t"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plpgsql_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plpgsql_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plpgsql_validator"}, {"label": "\u5e93", "value": "$libdir/plpgsql"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plpgsql"}, {"label": "\u6ce8\u91ca", "value": "PL/pgSQL \u8fc7\u7a0b\u8bed\u8a00"}], "tables": [], "aliases": [], "related": [{"url": "/docs/14/plpgsql-control-structures.html", "label": "\u63a7\u5236\u7ed3\u6784"}, {"url": "/docs/14/plpgsql-cursors.html", "label": "\u6e38\u6807"}, {"url": "/docs/14/plpgsql-declarations.html", "label": "\u58f0\u660e"}, {"url": "/docs/14/plpgsql-development-tips.html", "label": "PL/pgSQL \u5f00\u53d1\u63d0\u793a"}, {"url": "/docs/14/plpgsql-errors-and-messages.html", "label": "\u9519\u8bef\u548c\u6d88\u606f"}, {"url": "/docs/14/plpgsql-expressions.html", "label": "\u8868\u8fbe\u5f0f"}, {"url": "/docs/14/plpgsql-implementation.html", "label": "PL/pgSQL \u5185\u90e8\u673a\u5236"}, {"url": "/docs/14/plpgsql-overview.html", "label": "plpgsql-overview"}, {"url": "/docs/14/plpgsql-porting.html", "label": "\u4ece Oracle PL/SQL \u79fb\u690d"}, {"url": "/docs/14/plpgsql-statements.html", "label": "\u57fa\u672c\u8bed\u53e5"}, {"url": "/docs/14/plpgsql-structure.html", "label": "PL/pgSQL \u7684\u7ed3\u6784"}, {"url": "/docs/14/plpgsql-transactions.html", "label": "\u4e8b\u52a1\u7ba1\u7406"}, {"url": "/docs/14/plpgsql-trigger.html", "label": "\u89e6\u53d1\u5668\u51fd\u6570"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v14.24/postgresql-14.24.tar.bz2", "label": "14.24", "major": "14", "channel": "stable", "revision": "a7fa7ed3d558172355f51406097a7bd4f6b473be80f311ef7cda96bf383d8897", "source_sha256": "a7fa7ed3d558172355f51406097a7bd4f6b473be80f311ef7cda96bf383d8897", "catalog_fingerprint": "b272e6a82e4c46efda81c3a6a4cdf7de6a83dfff7f02f226a392fbe9acdd3adb"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v14.24/postgresql-14.24.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "a7fa7ed3d558172355f51406097a7bd4f6b473be80f311ef7cda96bf383d8897"}, {"url": "/docs/14/plpgsql-overview.html", "path": "plpgsql-overview.html", "label": "PostgreSQL 14 English manual", "sha256": "a2491e8906b1f45815dce416711ecf6925da80b2daa518de513f9350b9ca5062"}], "zh_from": {"kind": "same-version-chinese-manual-with-source-derived-structured-summary", "manual": {"url": "/zh/docs/14/plpgsql.html#PLPGSQL-OVERVIEW", "anchor": "PLPGSQL-OVERVIEW", "locale": "zh-Hans", "version": "14", "build_id": 99, "page_key": "plpgsql.html", "extraction": "concept-introduction", "source_hash": "972ee4e85e36081848a8635a50d23807d18fd246b57dfa42ad9aed136367699f", "fragment_sha256": "99416e90c5ea4b3583ed48b35295883d16c6c2caba40c87e8761304b0590c308", "source_revision": "unknown:rendered-translation-baseline", "translation_revision": "git:b1b500221dbe5437cfca004d6b04d3f6e422765d;html-sha256:87e6aa4fd6e1ec85c5f4a6de4f5647cfd9e5de734ca2c266d32b6d6192c662ef", "translated_from_revision": null}, "body_sha256": "6191dd9acd4888f606fa0648cbe3cc6bf842fb44c3ca1071b4f388bc15d6976b", "runtime_rerun": false, "authored_translation": "source-derived-structured-summary", "source_facts_revision": "a7fa7ed3d558172355f51406097a7bd4f6b473be80f311ef7cda96bf383d8897"}, "facts_zh": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "\u201c \u5916\u5c42\u5757 \u201d"}, {"label": "\u53ef\u4fe1", "value": "t"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plpgsql_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plpgsql_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plpgsql_validator"}, {"label": "\u5e93", "value": "$libdir/plpgsql"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plpgsql"}, {"label": "\u6ce8\u91ca", "value": "PL/pgSQL \u8fc7\u7a0b\u8bed\u8a00"}], "sections": [{"code": "/* src/pl/plpgsql/src/plpgsql--1.0.sql */\n\nCREATE FUNCTION plpgsql_call_handler() RETURNS language_handler\n  LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_inline_handler(internal) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_validator(oid) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE TRUSTED LANGUAGE plpgsql\n  HANDLER plpgsql_call_handler\n  INLINE plpgsql_inline_handler\n  VALIDATOR plpgsql_validator;\n\n-- The language object, but not the functions, can be owned by a non-superuser.\nALTER LANGUAGE plpgsql OWNER TO @extowner@;\n\nCOMMENT ON LANGUAGE plpgsql IS 'PL/pgSQL procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "center_zh": {"title": "plpgsql", "locale": "zh-Hans", "source": {"key": "plpgsql", "locale": "zh-Hans", "version": "14", "text_hash": "8f54293a7bc29418f9ee51790963d64015d37cbee5b1d43f227dfa565cd3a074", "collection": "language", "dataset_hash": "7c31b524dfe136022d39a6ae8dcfac6b3bbd5f8fdaf422536599981252aff0c9", "source_database": "center", "source_revision": "a7fa7ed3d558172355f51406097a7bd4f6b473be80f311ef7cda96bf383d8897"}, "payload": {"facts": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "\u201c \u5916\u5c42\u5757 \u201d"}, {"label": "\u53ef\u4fe1", "value": "t"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plpgsql_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plpgsql_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plpgsql_validator"}, {"label": "\u5e93", "value": "$libdir/plpgsql"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plpgsql"}, {"label": "\u6ce8\u91ca", "value": "PL/pgSQL \u8fc7\u7a0b\u8bed\u8a00"}], "tables": [], "zh_from": {"kind": "same-version-chinese-manual-with-source-derived-structured-summary", "manual": {"url": "/zh/docs/14/plpgsql.html#PLPGSQL-OVERVIEW", "anchor": "PLPGSQL-OVERVIEW", "locale": "zh-Hans", "version": "14", "build_id": 99, "page_key": "plpgsql.html", "extraction": "concept-introduction", "source_hash": "972ee4e85e36081848a8635a50d23807d18fd246b57dfa42ad9aed136367699f", "fragment_sha256": "99416e90c5ea4b3583ed48b35295883d16c6c2caba40c87e8761304b0590c308", "source_revision": "unknown:rendered-translation-baseline", "translation_revision": "git:b1b500221dbe5437cfca004d6b04d3f6e422765d;html-sha256:87e6aa4fd6e1ec85c5f4a6de4f5647cfd9e5de734ca2c266d32b6d6192c662ef", "translated_from_revision": null}, "body_sha256": "6191dd9acd4888f606fa0648cbe3cc6bf842fb44c3ca1071b4f388bc15d6976b", "runtime_rerun": false, "authored_translation": "source-derived-structured-summary", "source_facts_revision": "a7fa7ed3d558172355f51406097a7bd4f6b473be80f311ef7cda96bf383d8897"}, "sections": [{"code": "/* src/pl/plpgsql/src/plpgsql--1.0.sql */\n\nCREATE FUNCTION plpgsql_call_handler() RETURNS language_handler\n  LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_inline_handler(internal) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_validator(oid) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE TRUSTED LANGUAGE plpgsql\n  HANDLER plpgsql_call_handler\n  INLINE plpgsql_inline_handler\n  VALIDATOR plpgsql_validator;\n\n-- The language object, but not the functions, can be owned by a non-superuser.\nALTER LANGUAGE plpgsql OWNER TO @extowner@;\n\nCOMMENT ON LANGUAGE plpgsql IS 'PL/pgSQL procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "description_zh": "\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002", "description_zh_html": "<p>\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002</p><dl><dt>\u8fd0\u7b97\u7b26\u65cf</dt><dd><code>PL/pgSQL</code></dd><dt>\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_call_handler</code></dd><dt>\u5e93</dt><dd><code>$libdir/plpgsql</code></dd><dt>\u53d7\u4fe1\u4efb</dt><dd><code>\u662f</code></dd><dt>\u9a8c\u8bc1\u51fd\u6570</dt><dd><code>plpgsql_validator</code></dd><dt>\u5185\u8054\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_inline_handler</code></dd><dt>\u9ed8\u8ba4\u7248\u672c</dt><dd><code>1.0</code></dd><dt>\u6a21\u5757\u8def\u5f84</dt><dd><code>$libdir/plpgsql</code></dd></dl><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n<span class=\"application\">PL/pgSQL</span> \u662f\u4e00\u79cd\u7528\u4e8e <span class=\"productname\">PostgreSQL</span> \u6570\u636e\u5e93\u7cfb\u7edf\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\u3002<span class=\"application\">PL/pgSQL</span> \u7684\u8bbe\u8ba1\u76ee\u6807\uff0c\u662f\u521b\u5efa\u4e00\u79cd\u5177\u5907\u4ee5\u4e0b\u7279\u6027\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\uff1a\n\n    </p><p>\n    \u7528 <span class=\"application\">PL/pgSQL</span> \u521b\u5efa\u7684\u51fd\u6570\uff0c\u53ef\u4ee5\u7528\u4e8e\u4efb\u4f55\u53ef\u4ee5\u4f7f\u7528\u5185\u7f6e\u51fd\u6570\u7684\u5730\u65b9\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u521b\u5efa\u5e26\u6709\u590d\u6742\u6761\u4ef6\u903b\u8f91\u7684\u8ba1\u7b97\u51fd\u6570\uff0c\u968f\u540e\u7528\u5b83\u4eec\u5b9a\u4e49\u64cd\u4f5c\u7b26\uff0c\u6216\u8005\u628a\u5b83\u4eec\u7528\u4e8e\u7d22\u5f15\u8868\u8fbe\u5f0f\u3002\n   </p><p>\n    \u5728 <span class=\"productname\">PostgreSQL</span> 9.0 \u53ca\u66f4\u9ad8\u7248\u672c\u4e2d\uff0c<span class=\"application\">PL/pgSQL</span> \u9ed8\u8ba4\u5b89\u88c5\u3002\u4e0d\u8fc7\u5b83\u4ecd\u7136\u662f\u4e00\u4e2a\u53ef\u8f7d\u5165\u6a21\u5757\uff0c\u56e0\u6b64\u5bf9\u5b89\u5168\u6027\u7279\u522b\u654f\u611f\u7684\u7ba1\u7406\u5458\u4e5f\u53ef\u4ee5\u9009\u62e9\u79fb\u9664\u5b83\u3002\n   </p><p><a href=\"/zh/docs/14/plpgsql.html#PLPGSQL-OVERVIEW\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>"}, "summary": "\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002", "version": "14", "link_map": {"/zh/docs/14/plpgsql.html#PLPGSQL-OVERVIEW": "/docs/14/plpgsql.html#PLPGSQL-OVERVIEW"}, "body_html": "<p>\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002</p><dl><dt>\u8fd0\u7b97\u7b26\u65cf</dt><dd><code>PL/pgSQL</code></dd><dt>\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_call_handler</code></dd><dt>\u5e93</dt><dd><code>$libdir/plpgsql</code></dd><dt>\u53d7\u4fe1\u4efb</dt><dd><code>\u662f</code></dd><dt>\u9a8c\u8bc1\u51fd\u6570</dt><dd><code>plpgsql_validator</code></dd><dt>\u5185\u8054\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_inline_handler</code></dd><dt>\u9ed8\u8ba4\u7248\u672c</dt><dd><code>1.0</code></dd><dt>\u6a21\u5757\u8def\u5f84</dt><dd><code>$libdir/plpgsql</code></dd></dl><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n<span>PL/pgSQL</span> \u662f\u4e00\u79cd\u7528\u4e8e <span>PostgreSQL</span> \u6570\u636e\u5e93\u7cfb\u7edf\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\u3002<span>PL/pgSQL</span> \u7684\u8bbe\u8ba1\u76ee\u6807\uff0c\u662f\u521b\u5efa\u4e00\u79cd\u5177\u5907\u4ee5\u4e0b\u7279\u6027\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\uff1a\n\n    </p><p>\n    \u7528 <span>PL/pgSQL</span> \u521b\u5efa\u7684\u51fd\u6570\uff0c\u53ef\u4ee5\u7528\u4e8e\u4efb\u4f55\u53ef\u4ee5\u4f7f\u7528\u5185\u7f6e\u51fd\u6570\u7684\u5730\u65b9\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u521b\u5efa\u5e26\u6709\u590d\u6742\u6761\u4ef6\u903b\u8f91\u7684\u8ba1\u7b97\u51fd\u6570\uff0c\u968f\u540e\u7528\u5b83\u4eec\u5b9a\u4e49\u64cd\u4f5c\u7b26\uff0c\u6216\u8005\u628a\u5b83\u4eec\u7528\u4e8e\u7d22\u5f15\u8868\u8fbe\u5f0f\u3002\n   </p><p>\n    \u5728 <span>PostgreSQL</span> 9.0 \u53ca\u66f4\u9ad8\u7248\u672c\u4e2d\uff0c<span>PL/pgSQL</span> \u9ed8\u8ba4\u5b89\u88c5\u3002\u4e0d\u8fc7\u5b83\u4ecd\u7136\u662f\u4e00\u4e2a\u53ef\u8f7d\u5165\u6a21\u5757\uff0c\u56e0\u6b64\u5bf9\u5b89\u5168\u6027\u7279\u522b\u654f\u611f\u7684\u7ba1\u7406\u5458\u4e5f\u53ef\u4ee5\u9009\u62e9\u79fb\u9664\u5b83\u3002\n   </p><p><a href=\"/zh/docs/14/plpgsql.html#PLPGSQL-OVERVIEW\" rel=\"nofollow\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>", "body_sha256": "115ac379b2865ac7889182097b880fe0fd6ab6cb9c2c25868bbc2db46ad77ee8", "content_hash": "8f54293a7bc29418f9ee51790963d64015d37cbee5b1d43f227dfa565cd3a074", "source_database": "center", "source_revision": "a7fa7ed3d558172355f51406097a7bd4f6b473be80f311ef7cda96bf383d8897"}, "signature": "", "tables_zh": [], "attributes": {"kind": "Bundled procedural-language variant", "family": "PL/pgSQL", "comment": "PL/pgSQL procedural language", "handler": "plpgsql_call_handler", "library": "$libdir/plpgsql", "trusted": "t", "validator": "plpgsql_validator", "inline_handler": "plpgsql_inline_handler", "default_version": "1.0", "module_pathname": "$libdir/plpgsql"}, "description": ["\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002"], "manual_html": "", "manual_path": "/docs/14/plpgsql-overview.html", "sections_zh": [{"code": "/* src/pl/plpgsql/src/plpgsql--1.0.sql */\n\nCREATE FUNCTION plpgsql_call_handler() RETURNS language_handler\n  LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_inline_handler(internal) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_validator(oid) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE TRUSTED LANGUAGE plpgsql\n  HANDLER plpgsql_call_handler\n  INLINE plpgsql_inline_handler\n  VALIDATOR plpgsql_validator;\n\n-- The language object, but not the functions, can be owned by a non-superuser.\nALTER LANGUAGE plpgsql OWNER TO @extowner@;\n\nCOMMENT ON LANGUAGE plpgsql IS 'PL/pgSQL procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "localization": {"status": "complete", "sources": [{"url": "/docs/14/plpgsql-control-structures.html", "method": "same-major semantic node", "sha256": "3f91abd4a34e0e21630a314f687464d78dd7dd3cbf30c7f7e02b9125b9a89556", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/14/plpgsql-cursors.html", "method": "same-major semantic node", "sha256": "8100854157071ff715eb40ac77aacca3cf446f61d2f0965a6964962193f1952e", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/14/plpgsql-declarations.html", "method": "same-major semantic node", "sha256": "9c01741b0d294447b6a246a4e26e8806f7111c3fe2c20ca98e6e403cfd90ca63", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/14/plpgsql-development-tips.html", "method": "same-major semantic node", "sha256": "d39ac5e06254f56133733ae05ce75857682203e4dc554420050ced0d1c03d1df", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/14/plpgsql-errors-and-messages.html", "method": "same-major semantic node", "sha256": "5974e8ee45cde0c455af56dcabe7230861e34f83177a6b8378ff2cfde671223c", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/14/plpgsql-expressions.html", "method": "same-major semantic node", "sha256": "de92c0c5ec8a1fb677d798e3a29ce0380ee9ec64417a6c764697bb48088f6503", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/14/plpgsql-implementation.html", "method": "same-major semantic node", "sha256": "9829be24d0e2cc437650ef814857870ad1d589faee4242387f6e19d81003948e", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/14/plpgsql-porting.html", "method": "same-major semantic node", "sha256": "46123c5d669065a7a257b697e6ce1ad3cd0573cd5c322522a336776d791ad9e6", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/14/plpgsql-statements.html", "method": "same-major semantic node", "sha256": "ebaa2599b9e77608a5702f8a3c66812548c9b8a336acb6f45b6f2d3889a798b6", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/14/plpgsql-structure.html", "method": "same-major semantic node", "sha256": "1773a76d352dbf8c976601091122fe00f678e15652d63558b8d8f066aeb94edb", "language": "zh", "matched_nodes": ["#PLPGSQL-STRUCTURE/div[13]/p[1]/span[1]", "page-title/h2"]}, {"url": "/docs/14/plpgsql-transactions.html", "method": "same-major semantic node", "sha256": "8818a6d73a1a846050bfb0c4a7d0ed64dc318a01127b272002d44f8e4a6fe7ba", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/14/plpgsql-trigger.html", "method": "same-major semantic node", "sha256": "8f33daa94c2a02fcde0a22fc6eda32b7a78c3667bda53152a909f2b4f3b1d7a0", "language": "zh", "matched_nodes": ["page-title/h2"]}], "language": "zh", "original_text": {"/versions/14/description/0": "PL/pgSQL procedural language", "/versions/14/facts/0/label": "Kind", "/versions/14/facts/0/value": "Bundled procedural-language variant", "/versions/14/facts/1/label": "Family", "/versions/14/facts/1/value": "PL/pgSQL", "/versions/14/facts/2/label": "Trusted", "/versions/14/facts/3/label": "Handler", "/versions/14/facts/4/label": "Inline handler", "/versions/14/facts/5/label": "Validator", "/versions/14/facts/6/label": "Library", "/versions/14/facts/7/label": "Default version", "/versions/14/facts/8/label": "Module pathname", "/versions/14/facts/9/label": "Comment", "/versions/14/facts/9/value": "PL/pgSQL procedural language", "/versions/14/related/0/label": "plpgsql-control-structures", "/versions/14/related/1/label": "plpgsql-cursors", "/versions/14/related/2/label": "plpgsql-declarations", "/versions/14/related/3/label": "plpgsql-development-tips", "/versions/14/related/4/label": "plpgsql-errors-and-messages", "/versions/14/related/5/label": "plpgsql-expressions", "/versions/14/related/6/label": "plpgsql-implementation", "/versions/14/related/8/label": "plpgsql-porting", "/versions/14/related/9/label": "plpgsql-statements", "/versions/14/related/10/label": "plpgsql-structure", "/versions/14/related/11/label": "plpgsql-transactions", "/versions/14/related/12/label": "plpgsql-trigger", "/versions/14/sections/0/title": "Installation definition from the matching source archive", "/versions/14/sections/0/paragraphs/0": "This extension is shipped with the source. Its presence does not establish that the language or external runtime is installed."}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "639fdd49ef4b39727fb065656243a12b6ed1952207113d4de143b09b51ce1e10", "canonical_center_text_hash": "8f54293a7bc29418f9ee51790963d64015d37cbee5b1d43f227dfa565cd3a074"}, "source_files": {"src/pl/plpgsql/src/plpgsql.control": "9457c3f51d6bdfab93f13080d177795a9274c025e378fb613218342e3a3c7b45", "src/pl/plpgsql/src/plpgsql--1.0.sql": "f4e7e05438808ac0da0b3801397d16e36102969af7e2ffc982def5b7524fb557"}, "description_zh": "\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002", "comparison_data": {"kind": "Bundled procedural-language variant", "family": "PL/pgSQL", "handler": "plpgsql_call_handler", "library": "$libdir/plpgsql", "trusted": "t", "validator": "plpgsql_validator", "inline_handler": "plpgsql_inline_handler", "default_version": "1.0"}, "comparison_hash": "e85051f39a242ce658cedd87ac97437817f0f1b2baf992d8d37c9d29df8b558b", "manual_language": "zh", "description_zh_html": "<p>\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002</p><dl><dt>\u8fd0\u7b97\u7b26\u65cf</dt><dd><code>PL/pgSQL</code></dd><dt>\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_call_handler</code></dd><dt>\u5e93</dt><dd><code>$libdir/plpgsql</code></dd><dt>\u53d7\u4fe1\u4efb</dt><dd><code>\u662f</code></dd><dt>\u9a8c\u8bc1\u51fd\u6570</dt><dd><code>plpgsql_validator</code></dd><dt>\u5185\u8054\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_inline_handler</code></dd><dt>\u9ed8\u8ba4\u7248\u672c</dt><dd><code>1.0</code></dd><dt>\u6a21\u5757\u8def\u5f84</dt><dd><code>$libdir/plpgsql</code></dd></dl><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n<span>PL/pgSQL</span> \u662f\u4e00\u79cd\u7528\u4e8e <span>PostgreSQL</span> \u6570\u636e\u5e93\u7cfb\u7edf\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\u3002<span>PL/pgSQL</span> \u7684\u8bbe\u8ba1\u76ee\u6807\uff0c\u662f\u521b\u5efa\u4e00\u79cd\u5177\u5907\u4ee5\u4e0b\u7279\u6027\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\uff1a\n\n    </p><p>\n    \u7528 <span>PL/pgSQL</span> \u521b\u5efa\u7684\u51fd\u6570\uff0c\u53ef\u4ee5\u7528\u4e8e\u4efb\u4f55\u53ef\u4ee5\u4f7f\u7528\u5185\u7f6e\u51fd\u6570\u7684\u5730\u65b9\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u521b\u5efa\u5e26\u6709\u590d\u6742\u6761\u4ef6\u903b\u8f91\u7684\u8ba1\u7b97\u51fd\u6570\uff0c\u968f\u540e\u7528\u5b83\u4eec\u5b9a\u4e49\u64cd\u4f5c\u7b26\uff0c\u6216\u8005\u628a\u5b83\u4eec\u7528\u4e8e\u7d22\u5f15\u8868\u8fbe\u5f0f\u3002\n   </p><p>\n    \u5728 <span>PostgreSQL</span> 9.0 \u53ca\u66f4\u9ad8\u7248\u672c\u4e2d\uff0c<span>PL/pgSQL</span> \u9ed8\u8ba4\u5b89\u88c5\u3002\u4e0d\u8fc7\u5b83\u4ecd\u7136\u662f\u4e00\u4e2a\u53ef\u8f7d\u5165\u6a21\u5757\uff0c\u56e0\u6b64\u5bf9\u5b89\u5168\u6027\u7279\u522b\u654f\u611f\u7684\u7ba1\u7406\u5458\u4e5f\u53ef\u4ee5\u9009\u62e9\u79fb\u9664\u5b83\u3002\n   </p><p><a href=\"/zh/docs/14/plpgsql.html#PLPGSQL-OVERVIEW\" rel=\"nofollow\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>"}, "15": {"facts": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "\u201c \u5916\u5c42\u5757 \u201d"}, {"label": "\u53ef\u4fe1", "value": "t"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plpgsql_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plpgsql_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plpgsql_validator"}, {"label": "\u5e93", "value": "$libdir/plpgsql"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plpgsql"}, {"label": "\u6ce8\u91ca", "value": "PL/pgSQL \u8fc7\u7a0b\u8bed\u8a00"}], "tables": [], "aliases": [], "related": [{"url": "/docs/15/plpgsql-control-structures.html", "label": "\u63a7\u5236\u7ed3\u6784"}, {"url": "/docs/15/plpgsql-cursors.html", "label": "\u6e38\u6807"}, {"url": "/docs/15/plpgsql-declarations.html", "label": "\u58f0\u660e"}, {"url": "/docs/15/plpgsql-development-tips.html", "label": "PL/pgSQL \u5f00\u53d1\u63d0\u793a"}, {"url": "/docs/15/plpgsql-errors-and-messages.html", "label": "\u9519\u8bef\u548c\u6d88\u606f"}, {"url": "/docs/15/plpgsql-expressions.html", "label": "\u8868\u8fbe\u5f0f"}, {"url": "/docs/15/plpgsql-implementation.html", "label": "PL/pgSQL \u5185\u90e8\u673a\u5236"}, {"url": "/docs/15/plpgsql-overview.html", "label": "plpgsql-overview"}, {"url": "/docs/15/plpgsql-porting.html", "label": "\u4ece Oracle PL/SQL \u79fb\u690d"}, {"url": "/docs/15/plpgsql-statements.html", "label": "\u57fa\u672c\u8bed\u53e5"}, {"url": "/docs/15/plpgsql-structure.html", "label": "PL/pgSQL \u7684\u7ed3\u6784"}, {"url": "/docs/15/plpgsql-transactions.html", "label": "\u4e8b\u52a1\u7ba1\u7406"}, {"url": "/docs/15/plpgsql-trigger.html", "label": "\u89e6\u53d1\u5668\u51fd\u6570"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v15.19/postgresql-15.19.tar.bz2", "label": "15.19", "major": "15", "channel": "stable", "revision": "e1a64a87a46b825b88c082e4518161a47aab53c45694964f8ba1df28f7859f89", "source_sha256": "e1a64a87a46b825b88c082e4518161a47aab53c45694964f8ba1df28f7859f89", "catalog_fingerprint": "fefe3c425147a86defada190c9b0663cfe02caa1724f5dede93e46457572252d"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v15.19/postgresql-15.19.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "e1a64a87a46b825b88c082e4518161a47aab53c45694964f8ba1df28f7859f89"}, {"url": "/docs/15/plpgsql-overview.html", "path": "plpgsql-overview.html", "label": "PostgreSQL 15 English manual", "sha256": "b3add032f57b9d2701c25fa619d069a219d4d752ab87a39e71c7e5d376eae66c"}], "zh_from": {"kind": "same-version-chinese-manual-with-source-derived-structured-summary", "manual": {"url": "/zh/docs/15/plpgsql.html#PLPGSQL-OVERVIEW", "anchor": "PLPGSQL-OVERVIEW", "locale": "zh-Hans", "version": "15", "build_id": 101, "page_key": "plpgsql.html", "extraction": "concept-introduction", "source_hash": "11207ea48e7a6bbc638e2495e45dbd859935e3a3d701c61e035dd21cd8f8590a", "fragment_sha256": "99416e90c5ea4b3583ed48b35295883d16c6c2caba40c87e8761304b0590c308", "source_revision": "unknown:rendered-translation-baseline", "translation_revision": "git:b1b500221dbe5437cfca004d6b04d3f6e422765d;html-sha256:6bce1a2df9170cb1146a1411c5547190856638221a6539e618ee1016c9f493ad", "translated_from_revision": null}, "body_sha256": "a93e36de6c6fce99404355e966f9d7a80ca5670cd3e75013015702aca09d7d2c", "runtime_rerun": false, "authored_translation": "source-derived-structured-summary", "source_facts_revision": "e1a64a87a46b825b88c082e4518161a47aab53c45694964f8ba1df28f7859f89"}, "facts_zh": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "\u201c \u5916\u5c42\u5757 \u201d"}, {"label": "\u53ef\u4fe1", "value": "t"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plpgsql_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plpgsql_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plpgsql_validator"}, {"label": "\u5e93", "value": "$libdir/plpgsql"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plpgsql"}, {"label": "\u6ce8\u91ca", "value": "PL/pgSQL \u8fc7\u7a0b\u8bed\u8a00"}], "sections": [{"code": "/* src/pl/plpgsql/src/plpgsql--1.0.sql */\n\nCREATE FUNCTION plpgsql_call_handler() RETURNS language_handler\n  LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_inline_handler(internal) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_validator(oid) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE TRUSTED LANGUAGE plpgsql\n  HANDLER plpgsql_call_handler\n  INLINE plpgsql_inline_handler\n  VALIDATOR plpgsql_validator;\n\n-- The language object, but not the functions, can be owned by a non-superuser.\nALTER LANGUAGE plpgsql OWNER TO @extowner@;\n\nCOMMENT ON LANGUAGE plpgsql IS 'PL/pgSQL procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "center_zh": {"title": "plpgsql", "locale": "zh-Hans", "source": {"key": "plpgsql", "locale": "zh-Hans", "version": "15", "text_hash": "ac0246f9ff39d4d423c75d5dc46e938cfece3bdce76a8cb3c2c603bb9328b66c", "collection": "language", "dataset_hash": "7c31b524dfe136022d39a6ae8dcfac6b3bbd5f8fdaf422536599981252aff0c9", "source_database": "center", "source_revision": "e1a64a87a46b825b88c082e4518161a47aab53c45694964f8ba1df28f7859f89"}, "payload": {"facts": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "\u201c \u5916\u5c42\u5757 \u201d"}, {"label": "\u53ef\u4fe1", "value": "t"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plpgsql_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plpgsql_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plpgsql_validator"}, {"label": "\u5e93", "value": "$libdir/plpgsql"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plpgsql"}, {"label": "\u6ce8\u91ca", "value": "PL/pgSQL \u8fc7\u7a0b\u8bed\u8a00"}], "tables": [], "zh_from": {"kind": "same-version-chinese-manual-with-source-derived-structured-summary", "manual": {"url": "/zh/docs/15/plpgsql.html#PLPGSQL-OVERVIEW", "anchor": "PLPGSQL-OVERVIEW", "locale": "zh-Hans", "version": "15", "build_id": 101, "page_key": "plpgsql.html", "extraction": "concept-introduction", "source_hash": "11207ea48e7a6bbc638e2495e45dbd859935e3a3d701c61e035dd21cd8f8590a", "fragment_sha256": "99416e90c5ea4b3583ed48b35295883d16c6c2caba40c87e8761304b0590c308", "source_revision": "unknown:rendered-translation-baseline", "translation_revision": "git:b1b500221dbe5437cfca004d6b04d3f6e422765d;html-sha256:6bce1a2df9170cb1146a1411c5547190856638221a6539e618ee1016c9f493ad", "translated_from_revision": null}, "body_sha256": "a93e36de6c6fce99404355e966f9d7a80ca5670cd3e75013015702aca09d7d2c", "runtime_rerun": false, "authored_translation": "source-derived-structured-summary", "source_facts_revision": "e1a64a87a46b825b88c082e4518161a47aab53c45694964f8ba1df28f7859f89"}, "sections": [{"code": "/* src/pl/plpgsql/src/plpgsql--1.0.sql */\n\nCREATE FUNCTION plpgsql_call_handler() RETURNS language_handler\n  LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_inline_handler(internal) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_validator(oid) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE TRUSTED LANGUAGE plpgsql\n  HANDLER plpgsql_call_handler\n  INLINE plpgsql_inline_handler\n  VALIDATOR plpgsql_validator;\n\n-- The language object, but not the functions, can be owned by a non-superuser.\nALTER LANGUAGE plpgsql OWNER TO @extowner@;\n\nCOMMENT ON LANGUAGE plpgsql IS 'PL/pgSQL procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "description_zh": "\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002", "description_zh_html": "<p>\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002</p><dl><dt>\u8fd0\u7b97\u7b26\u65cf</dt><dd><code>PL/pgSQL</code></dd><dt>\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_call_handler</code></dd><dt>\u5e93</dt><dd><code>$libdir/plpgsql</code></dd><dt>\u53d7\u4fe1\u4efb</dt><dd><code>\u662f</code></dd><dt>\u9a8c\u8bc1\u51fd\u6570</dt><dd><code>plpgsql_validator</code></dd><dt>\u5185\u8054\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_inline_handler</code></dd><dt>\u9ed8\u8ba4\u7248\u672c</dt><dd><code>1.0</code></dd><dt>\u6a21\u5757\u8def\u5f84</dt><dd><code>$libdir/plpgsql</code></dd></dl><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n<span class=\"application\">PL/pgSQL</span> \u662f\u4e00\u79cd\u7528\u4e8e <span class=\"productname\">PostgreSQL</span> \u6570\u636e\u5e93\u7cfb\u7edf\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\u3002<span class=\"application\">PL/pgSQL</span> \u7684\u8bbe\u8ba1\u76ee\u6807\uff0c\u662f\u521b\u5efa\u4e00\u79cd\u5177\u5907\u4ee5\u4e0b\u7279\u6027\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\uff1a\n\n    </p><p>\n    \u7528 <span class=\"application\">PL/pgSQL</span> \u521b\u5efa\u7684\u51fd\u6570\uff0c\u53ef\u4ee5\u7528\u4e8e\u4efb\u4f55\u53ef\u4ee5\u4f7f\u7528\u5185\u7f6e\u51fd\u6570\u7684\u5730\u65b9\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u521b\u5efa\u5e26\u6709\u590d\u6742\u6761\u4ef6\u903b\u8f91\u7684\u8ba1\u7b97\u51fd\u6570\uff0c\u968f\u540e\u7528\u5b83\u4eec\u5b9a\u4e49\u64cd\u4f5c\u7b26\uff0c\u6216\u8005\u628a\u5b83\u4eec\u7528\u4e8e\u7d22\u5f15\u8868\u8fbe\u5f0f\u3002\n   </p><p>\n    \u5728 <span class=\"productname\">PostgreSQL</span> 9.0 \u53ca\u66f4\u9ad8\u7248\u672c\u4e2d\uff0c<span class=\"application\">PL/pgSQL</span> \u9ed8\u8ba4\u5b89\u88c5\u3002\u4e0d\u8fc7\u5b83\u4ecd\u7136\u662f\u4e00\u4e2a\u53ef\u8f7d\u5165\u6a21\u5757\uff0c\u56e0\u6b64\u5bf9\u5b89\u5168\u6027\u7279\u522b\u654f\u611f\u7684\u7ba1\u7406\u5458\u4e5f\u53ef\u4ee5\u9009\u62e9\u79fb\u9664\u5b83\u3002\n   </p><p><a href=\"/zh/docs/15/plpgsql.html#PLPGSQL-OVERVIEW\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>"}, "summary": "\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002", "version": "15", "link_map": {"/zh/docs/15/plpgsql.html#PLPGSQL-OVERVIEW": "/docs/15/plpgsql.html#PLPGSQL-OVERVIEW"}, "body_html": "<p>\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002</p><dl><dt>\u8fd0\u7b97\u7b26\u65cf</dt><dd><code>PL/pgSQL</code></dd><dt>\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_call_handler</code></dd><dt>\u5e93</dt><dd><code>$libdir/plpgsql</code></dd><dt>\u53d7\u4fe1\u4efb</dt><dd><code>\u662f</code></dd><dt>\u9a8c\u8bc1\u51fd\u6570</dt><dd><code>plpgsql_validator</code></dd><dt>\u5185\u8054\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_inline_handler</code></dd><dt>\u9ed8\u8ba4\u7248\u672c</dt><dd><code>1.0</code></dd><dt>\u6a21\u5757\u8def\u5f84</dt><dd><code>$libdir/plpgsql</code></dd></dl><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n<span>PL/pgSQL</span> \u662f\u4e00\u79cd\u7528\u4e8e <span>PostgreSQL</span> \u6570\u636e\u5e93\u7cfb\u7edf\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\u3002<span>PL/pgSQL</span> \u7684\u8bbe\u8ba1\u76ee\u6807\uff0c\u662f\u521b\u5efa\u4e00\u79cd\u5177\u5907\u4ee5\u4e0b\u7279\u6027\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\uff1a\n\n    </p><p>\n    \u7528 <span>PL/pgSQL</span> \u521b\u5efa\u7684\u51fd\u6570\uff0c\u53ef\u4ee5\u7528\u4e8e\u4efb\u4f55\u53ef\u4ee5\u4f7f\u7528\u5185\u7f6e\u51fd\u6570\u7684\u5730\u65b9\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u521b\u5efa\u5e26\u6709\u590d\u6742\u6761\u4ef6\u903b\u8f91\u7684\u8ba1\u7b97\u51fd\u6570\uff0c\u968f\u540e\u7528\u5b83\u4eec\u5b9a\u4e49\u64cd\u4f5c\u7b26\uff0c\u6216\u8005\u628a\u5b83\u4eec\u7528\u4e8e\u7d22\u5f15\u8868\u8fbe\u5f0f\u3002\n   </p><p>\n    \u5728 <span>PostgreSQL</span> 9.0 \u53ca\u66f4\u9ad8\u7248\u672c\u4e2d\uff0c<span>PL/pgSQL</span> \u9ed8\u8ba4\u5b89\u88c5\u3002\u4e0d\u8fc7\u5b83\u4ecd\u7136\u662f\u4e00\u4e2a\u53ef\u8f7d\u5165\u6a21\u5757\uff0c\u56e0\u6b64\u5bf9\u5b89\u5168\u6027\u7279\u522b\u654f\u611f\u7684\u7ba1\u7406\u5458\u4e5f\u53ef\u4ee5\u9009\u62e9\u79fb\u9664\u5b83\u3002\n   </p><p><a href=\"/zh/docs/15/plpgsql.html#PLPGSQL-OVERVIEW\" rel=\"nofollow\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>", "body_sha256": "eb7a2569a91d237c76fe9896c5469e07fd843ae76019a401cf097f045fee2550", "content_hash": "ac0246f9ff39d4d423c75d5dc46e938cfece3bdce76a8cb3c2c603bb9328b66c", "source_database": "center", "source_revision": "e1a64a87a46b825b88c082e4518161a47aab53c45694964f8ba1df28f7859f89"}, "signature": "", "tables_zh": [], "attributes": {"kind": "Bundled procedural-language variant", "family": "PL/pgSQL", "comment": "PL/pgSQL procedural language", "handler": "plpgsql_call_handler", "library": "$libdir/plpgsql", "trusted": "t", "validator": "plpgsql_validator", "inline_handler": "plpgsql_inline_handler", "default_version": "1.0", "module_pathname": "$libdir/plpgsql"}, "description": ["\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002"], "manual_html": "", "manual_path": "/docs/15/plpgsql-overview.html", "sections_zh": [{"code": "/* src/pl/plpgsql/src/plpgsql--1.0.sql */\n\nCREATE FUNCTION plpgsql_call_handler() RETURNS language_handler\n  LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_inline_handler(internal) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_validator(oid) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE TRUSTED LANGUAGE plpgsql\n  HANDLER plpgsql_call_handler\n  INLINE plpgsql_inline_handler\n  VALIDATOR plpgsql_validator;\n\n-- The language object, but not the functions, can be owned by a non-superuser.\nALTER LANGUAGE plpgsql OWNER TO @extowner@;\n\nCOMMENT ON LANGUAGE plpgsql IS 'PL/pgSQL procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "localization": {"status": "complete", "sources": [{"url": "/docs/15/plpgsql-control-structures.html", "method": "same-major semantic node", "sha256": "11c998a27fafe9839ced1e87c4a6d656e2f782eeb5807298857d43b2b5e07819", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/15/plpgsql-cursors.html", "method": "same-major semantic node", "sha256": "afd47c14fc7e22a11a560848bd56fe8249f6efe0e672909a19a9b44a3f563590", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/15/plpgsql-declarations.html", "method": "same-major semantic node", "sha256": "baed45a6496a477aae9f31fed8bb3c910d37fc474c1adb0888e263b17f25035d", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/15/plpgsql-development-tips.html", "method": "same-major semantic node", "sha256": "ff0bbfa8731f473dbfe79ce191b719b8b2d163f343002c32b96d9d51dfc826cc", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/15/plpgsql-errors-and-messages.html", "method": "same-major semantic node", "sha256": "c1a460ca21dcf6e8892317afed1fbf74d2f5b5a6d4b7f91cfb8265877e84f25f", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/15/plpgsql-expressions.html", "method": "same-major semantic node", "sha256": "85fefc3cfd49b646932a11724b829b57a652ec73c096455d94990fc4266b2402", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/15/plpgsql-implementation.html", "method": "same-major semantic node", "sha256": "36de54e31de362c90a65d0f85629b31e05ec558057fdc885b18439216bfce293", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/15/plpgsql-porting.html", "method": "same-major semantic node", "sha256": "e9e38697dc40cbb0f4d6fde0c04aa83312dd6c7d176f8beab8cb8751ff375161", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/15/plpgsql-statements.html", "method": "same-major semantic node", "sha256": "919fb4c186b4f047797e7ac9a13bf60aab8dc913a105fd17891116a350a7079d", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/15/plpgsql-structure.html", "method": "same-major semantic node", "sha256": "456a324119f7a7952afabc048e0a0a8d70532428f583e886a78a504c03b2e1e4", "language": "zh", "matched_nodes": ["#PLPGSQL-STRUCTURE/div[13]/p[1]/span[1]", "page-title/h2"]}, {"url": "/docs/15/plpgsql-transactions.html", "method": "same-major semantic node", "sha256": "039174c2c2a4d6e378ca7b36f48f71c36ea728d48c950d826e6ba03cf641a625", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/15/plpgsql-trigger.html", "method": "same-major semantic node", "sha256": "eae721cfde2e521a1202d38c7428269ba4b93d62adfefedccf8add045fc5046c", "language": "zh", "matched_nodes": ["page-title/h2"]}], "language": "zh", "original_text": {"/versions/15/description/0": "PL/pgSQL procedural language", "/versions/15/facts/0/label": "Kind", "/versions/15/facts/0/value": "Bundled procedural-language variant", "/versions/15/facts/1/label": "Family", "/versions/15/facts/1/value": "PL/pgSQL", "/versions/15/facts/2/label": "Trusted", "/versions/15/facts/3/label": "Handler", "/versions/15/facts/4/label": "Inline handler", "/versions/15/facts/5/label": "Validator", "/versions/15/facts/6/label": "Library", "/versions/15/facts/7/label": "Default version", "/versions/15/facts/8/label": "Module pathname", "/versions/15/facts/9/label": "Comment", "/versions/15/facts/9/value": "PL/pgSQL procedural language", "/versions/15/related/0/label": "plpgsql-control-structures", "/versions/15/related/1/label": "plpgsql-cursors", "/versions/15/related/2/label": "plpgsql-declarations", "/versions/15/related/3/label": "plpgsql-development-tips", "/versions/15/related/4/label": "plpgsql-errors-and-messages", "/versions/15/related/5/label": "plpgsql-expressions", "/versions/15/related/6/label": "plpgsql-implementation", "/versions/15/related/8/label": "plpgsql-porting", "/versions/15/related/9/label": "plpgsql-statements", "/versions/15/related/10/label": "plpgsql-structure", "/versions/15/related/11/label": "plpgsql-transactions", "/versions/15/related/12/label": "plpgsql-trigger", "/versions/15/sections/0/title": "Installation definition from the matching source archive", "/versions/15/sections/0/paragraphs/0": "This extension is shipped with the source. Its presence does not establish that the language or external runtime is installed."}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "d79b5b1518bfc3da2b613c6e3819442f819c87d62ee6f1759ff87df13700b270", "canonical_center_text_hash": "ac0246f9ff39d4d423c75d5dc46e938cfece3bdce76a8cb3c2c603bb9328b66c"}, "source_files": {"src/pl/plpgsql/src/plpgsql.control": "9457c3f51d6bdfab93f13080d177795a9274c025e378fb613218342e3a3c7b45", "src/pl/plpgsql/src/plpgsql--1.0.sql": "f4e7e05438808ac0da0b3801397d16e36102969af7e2ffc982def5b7524fb557"}, "description_zh": "\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002", "comparison_data": {"kind": "Bundled procedural-language variant", "family": "PL/pgSQL", "handler": "plpgsql_call_handler", "library": "$libdir/plpgsql", "trusted": "t", "validator": "plpgsql_validator", "inline_handler": "plpgsql_inline_handler", "default_version": "1.0"}, "comparison_hash": "e85051f39a242ce658cedd87ac97437817f0f1b2baf992d8d37c9d29df8b558b", "manual_language": "zh", "description_zh_html": "<p>\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002</p><dl><dt>\u8fd0\u7b97\u7b26\u65cf</dt><dd><code>PL/pgSQL</code></dd><dt>\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_call_handler</code></dd><dt>\u5e93</dt><dd><code>$libdir/plpgsql</code></dd><dt>\u53d7\u4fe1\u4efb</dt><dd><code>\u662f</code></dd><dt>\u9a8c\u8bc1\u51fd\u6570</dt><dd><code>plpgsql_validator</code></dd><dt>\u5185\u8054\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_inline_handler</code></dd><dt>\u9ed8\u8ba4\u7248\u672c</dt><dd><code>1.0</code></dd><dt>\u6a21\u5757\u8def\u5f84</dt><dd><code>$libdir/plpgsql</code></dd></dl><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n<span>PL/pgSQL</span> \u662f\u4e00\u79cd\u7528\u4e8e <span>PostgreSQL</span> \u6570\u636e\u5e93\u7cfb\u7edf\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\u3002<span>PL/pgSQL</span> \u7684\u8bbe\u8ba1\u76ee\u6807\uff0c\u662f\u521b\u5efa\u4e00\u79cd\u5177\u5907\u4ee5\u4e0b\u7279\u6027\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\uff1a\n\n    </p><p>\n    \u7528 <span>PL/pgSQL</span> \u521b\u5efa\u7684\u51fd\u6570\uff0c\u53ef\u4ee5\u7528\u4e8e\u4efb\u4f55\u53ef\u4ee5\u4f7f\u7528\u5185\u7f6e\u51fd\u6570\u7684\u5730\u65b9\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u521b\u5efa\u5e26\u6709\u590d\u6742\u6761\u4ef6\u903b\u8f91\u7684\u8ba1\u7b97\u51fd\u6570\uff0c\u968f\u540e\u7528\u5b83\u4eec\u5b9a\u4e49\u64cd\u4f5c\u7b26\uff0c\u6216\u8005\u628a\u5b83\u4eec\u7528\u4e8e\u7d22\u5f15\u8868\u8fbe\u5f0f\u3002\n   </p><p>\n    \u5728 <span>PostgreSQL</span> 9.0 \u53ca\u66f4\u9ad8\u7248\u672c\u4e2d\uff0c<span>PL/pgSQL</span> \u9ed8\u8ba4\u5b89\u88c5\u3002\u4e0d\u8fc7\u5b83\u4ecd\u7136\u662f\u4e00\u4e2a\u53ef\u8f7d\u5165\u6a21\u5757\uff0c\u56e0\u6b64\u5bf9\u5b89\u5168\u6027\u7279\u522b\u654f\u611f\u7684\u7ba1\u7406\u5458\u4e5f\u53ef\u4ee5\u9009\u62e9\u79fb\u9664\u5b83\u3002\n   </p><p><a href=\"/zh/docs/15/plpgsql.html#PLPGSQL-OVERVIEW\" rel=\"nofollow\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>"}, "16": {"facts": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "\u201c \u5916\u5c42\u5757 \u201d"}, {"label": "\u53ef\u4fe1", "value": "t"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plpgsql_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plpgsql_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plpgsql_validator"}, {"label": "\u5e93", "value": "$libdir/plpgsql"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plpgsql"}, {"label": "\u6ce8\u91ca", "value": "PL/pgSQL \u8fc7\u7a0b\u8bed\u8a00"}], "tables": [], "aliases": [], "related": [{"url": "/docs/16/plpgsql-control-structures.html", "label": "\u63a7\u5236\u7ed3\u6784"}, {"url": "/docs/16/plpgsql-cursors.html", "label": "\u6e38\u6807"}, {"url": "/docs/16/plpgsql-declarations.html", "label": "\u58f0\u660e"}, {"url": "/docs/16/plpgsql-development-tips.html", "label": "PL/pgSQL \u5f00\u53d1\u63d0\u793a"}, {"url": "/docs/16/plpgsql-errors-and-messages.html", "label": "\u9519\u8bef\u548c\u6d88\u606f"}, {"url": "/docs/16/plpgsql-expressions.html", "label": "\u8868\u8fbe\u5f0f"}, {"url": "/docs/16/plpgsql-implementation.html", "label": "PL/pgSQL \u5185\u90e8\u673a\u5236"}, {"url": "/docs/16/plpgsql-overview.html", "label": "\u6982\u8ff0"}, {"url": "/docs/16/plpgsql-porting.html", "label": "\u4ece Oracle PL/SQL \u79fb\u690d"}, {"url": "/docs/16/plpgsql-statements.html", "label": "\u57fa\u672c\u8bed\u53e5"}, {"url": "/docs/16/plpgsql-structure.html", "label": "PL/pgSQL \u7684\u7ed3\u6784"}, {"url": "/docs/16/plpgsql-transactions.html", "label": "\u4e8b\u52a1\u7ba1\u7406"}, {"url": "/docs/16/plpgsql-trigger.html", "label": "\u89e6\u53d1\u5668\u51fd\u6570"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v16.15/postgresql-16.15.tar.bz2", "label": "16.15", "major": "16", "channel": "stable", "revision": "c1575341fa7bd40f5274ea465b34390f4dc64cdd0770af327005caaeb9f6b7ed", "source_sha256": "c1575341fa7bd40f5274ea465b34390f4dc64cdd0770af327005caaeb9f6b7ed", "catalog_fingerprint": "fa133458dc8f52e15083b4f59b7a582e2e378b608d3ac5c53054df458a374e23"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v16.15/postgresql-16.15.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "c1575341fa7bd40f5274ea465b34390f4dc64cdd0770af327005caaeb9f6b7ed"}, {"url": "/docs/16/plpgsql-overview.html", "path": "plpgsql-overview.html", "label": "PostgreSQL 16 English manual", "sha256": "c273d4a8ffbd67c5c7aad1d78032becad542a5b9ed22a8784c4eaa1860d86d31"}], "zh_from": {"kind": "same-version-chinese-manual-with-source-derived-structured-summary", "manual": {"url": "/zh/docs/16/plpgsql-overview.html", "anchor": "", "locale": "zh-Hans", "version": "16", "build_id": 103, "page_key": "plpgsql-overview.html", "extraction": "concept-introduction", "source_hash": "1369eead2af16641839120645b87300cb991b2e9b5ff08aa1caf401e8bc742ae", "fragment_sha256": "99416e90c5ea4b3583ed48b35295883d16c6c2caba40c87e8761304b0590c308", "source_revision": "unknown:rendered-translation-baseline", "translation_revision": "git:b1b500221dbe5437cfca004d6b04d3f6e422765d;html-sha256:80579a071736780f9c4022bb5148e1fb1256f1a33591306af67816e9e9bf3a9b", "translated_from_revision": null}, "body_sha256": "6da93fc2dd2703b624953b0082e9d4eb3a9b81fc24515b346c5f6f2e4b5ece9e", "runtime_rerun": false, "authored_translation": "source-derived-structured-summary", "source_facts_revision": "c1575341fa7bd40f5274ea465b34390f4dc64cdd0770af327005caaeb9f6b7ed"}, "facts_zh": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "\u201c \u5916\u5c42\u5757 \u201d"}, {"label": "\u53ef\u4fe1", "value": "t"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plpgsql_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plpgsql_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plpgsql_validator"}, {"label": "\u5e93", "value": "$libdir/plpgsql"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plpgsql"}, {"label": "\u6ce8\u91ca", "value": "PL/pgSQL \u8fc7\u7a0b\u8bed\u8a00"}], "sections": [{"code": "/* src/pl/plpgsql/src/plpgsql--1.0.sql */\n\nCREATE FUNCTION plpgsql_call_handler() RETURNS language_handler\n  LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_inline_handler(internal) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_validator(oid) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE TRUSTED LANGUAGE plpgsql\n  HANDLER plpgsql_call_handler\n  INLINE plpgsql_inline_handler\n  VALIDATOR plpgsql_validator;\n\n-- The language object, but not the functions, can be owned by a non-superuser.\nALTER LANGUAGE plpgsql OWNER TO @extowner@;\n\nCOMMENT ON LANGUAGE plpgsql IS 'PL/pgSQL procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "center_zh": {"title": "plpgsql", "locale": "zh-Hans", "source": {"key": "plpgsql", "locale": "zh-Hans", "version": "16", "text_hash": "3d135b27ca9ef37f819d0976ea89abab5c9de50413a007d09b45f9a78facaa46", "collection": "language", "dataset_hash": "7c31b524dfe136022d39a6ae8dcfac6b3bbd5f8fdaf422536599981252aff0c9", "source_database": "center", "source_revision": "c1575341fa7bd40f5274ea465b34390f4dc64cdd0770af327005caaeb9f6b7ed"}, "payload": {"facts": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "\u201c \u5916\u5c42\u5757 \u201d"}, {"label": "\u53ef\u4fe1", "value": "t"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plpgsql_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plpgsql_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plpgsql_validator"}, {"label": "\u5e93", "value": "$libdir/plpgsql"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plpgsql"}, {"label": "\u6ce8\u91ca", "value": "PL/pgSQL \u8fc7\u7a0b\u8bed\u8a00"}], "tables": [], "zh_from": {"kind": "same-version-chinese-manual-with-source-derived-structured-summary", "manual": {"url": "/zh/docs/16/plpgsql-overview.html", "anchor": "", "locale": "zh-Hans", "version": "16", "build_id": 103, "page_key": "plpgsql-overview.html", "extraction": "concept-introduction", "source_hash": "1369eead2af16641839120645b87300cb991b2e9b5ff08aa1caf401e8bc742ae", "fragment_sha256": "99416e90c5ea4b3583ed48b35295883d16c6c2caba40c87e8761304b0590c308", "source_revision": "unknown:rendered-translation-baseline", "translation_revision": "git:b1b500221dbe5437cfca004d6b04d3f6e422765d;html-sha256:80579a071736780f9c4022bb5148e1fb1256f1a33591306af67816e9e9bf3a9b", "translated_from_revision": null}, "body_sha256": "6da93fc2dd2703b624953b0082e9d4eb3a9b81fc24515b346c5f6f2e4b5ece9e", "runtime_rerun": false, "authored_translation": "source-derived-structured-summary", "source_facts_revision": "c1575341fa7bd40f5274ea465b34390f4dc64cdd0770af327005caaeb9f6b7ed"}, "sections": [{"code": "/* src/pl/plpgsql/src/plpgsql--1.0.sql */\n\nCREATE FUNCTION plpgsql_call_handler() RETURNS language_handler\n  LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_inline_handler(internal) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_validator(oid) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE TRUSTED LANGUAGE plpgsql\n  HANDLER plpgsql_call_handler\n  INLINE plpgsql_inline_handler\n  VALIDATOR plpgsql_validator;\n\n-- The language object, but not the functions, can be owned by a non-superuser.\nALTER LANGUAGE plpgsql OWNER TO @extowner@;\n\nCOMMENT ON LANGUAGE plpgsql IS 'PL/pgSQL procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "description_zh": "\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002", "description_zh_html": "<p>\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002</p><dl><dt>\u8fd0\u7b97\u7b26\u65cf</dt><dd><code>PL/pgSQL</code></dd><dt>\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_call_handler</code></dd><dt>\u5e93</dt><dd><code>$libdir/plpgsql</code></dd><dt>\u53d7\u4fe1\u4efb</dt><dd><code>\u662f</code></dd><dt>\u9a8c\u8bc1\u51fd\u6570</dt><dd><code>plpgsql_validator</code></dd><dt>\u5185\u8054\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_inline_handler</code></dd><dt>\u9ed8\u8ba4\u7248\u672c</dt><dd><code>1.0</code></dd><dt>\u6a21\u5757\u8def\u5f84</dt><dd><code>$libdir/plpgsql</code></dd></dl><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n<span class=\"application\">PL/pgSQL</span> \u662f\u4e00\u79cd\u7528\u4e8e <span class=\"productname\">PostgreSQL</span> \u6570\u636e\u5e93\u7cfb\u7edf\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\u3002<span class=\"application\">PL/pgSQL</span> \u7684\u8bbe\u8ba1\u76ee\u6807\uff0c\u662f\u521b\u5efa\u4e00\u79cd\u5177\u5907\u4ee5\u4e0b\u7279\u6027\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\uff1a\n\n    </p><p>\n    \u7528 <span class=\"application\">PL/pgSQL</span> \u521b\u5efa\u7684\u51fd\u6570\uff0c\u53ef\u4ee5\u7528\u4e8e\u4efb\u4f55\u53ef\u4ee5\u4f7f\u7528\u5185\u7f6e\u51fd\u6570\u7684\u5730\u65b9\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u521b\u5efa\u5e26\u6709\u590d\u6742\u6761\u4ef6\u903b\u8f91\u7684\u8ba1\u7b97\u51fd\u6570\uff0c\u968f\u540e\u7528\u5b83\u4eec\u5b9a\u4e49\u64cd\u4f5c\u7b26\uff0c\u6216\u8005\u628a\u5b83\u4eec\u7528\u4e8e\u7d22\u5f15\u8868\u8fbe\u5f0f\u3002\n   </p><p>\n    \u5728 <span class=\"productname\">PostgreSQL</span> 9.0 \u53ca\u66f4\u9ad8\u7248\u672c\u4e2d\uff0c<span class=\"application\">PL/pgSQL</span> \u9ed8\u8ba4\u5b89\u88c5\u3002\u4e0d\u8fc7\u5b83\u4ecd\u7136\u662f\u4e00\u4e2a\u53ef\u8f7d\u5165\u6a21\u5757\uff0c\u56e0\u6b64\u5bf9\u5b89\u5168\u6027\u7279\u522b\u654f\u611f\u7684\u7ba1\u7406\u5458\u4e5f\u53ef\u4ee5\u9009\u62e9\u79fb\u9664\u5b83\u3002\n   </p><p><a href=\"/zh/docs/16/plpgsql-overview.html\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>"}, "summary": "\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002", "version": "16", "link_map": {"/zh/docs/16/plpgsql-overview.html": "/docs/16/plpgsql-overview.html"}, "body_html": "<p>\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002</p><dl><dt>\u8fd0\u7b97\u7b26\u65cf</dt><dd><code>PL/pgSQL</code></dd><dt>\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_call_handler</code></dd><dt>\u5e93</dt><dd><code>$libdir/plpgsql</code></dd><dt>\u53d7\u4fe1\u4efb</dt><dd><code>\u662f</code></dd><dt>\u9a8c\u8bc1\u51fd\u6570</dt><dd><code>plpgsql_validator</code></dd><dt>\u5185\u8054\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_inline_handler</code></dd><dt>\u9ed8\u8ba4\u7248\u672c</dt><dd><code>1.0</code></dd><dt>\u6a21\u5757\u8def\u5f84</dt><dd><code>$libdir/plpgsql</code></dd></dl><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n<span>PL/pgSQL</span> \u662f\u4e00\u79cd\u7528\u4e8e <span>PostgreSQL</span> \u6570\u636e\u5e93\u7cfb\u7edf\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\u3002<span>PL/pgSQL</span> \u7684\u8bbe\u8ba1\u76ee\u6807\uff0c\u662f\u521b\u5efa\u4e00\u79cd\u5177\u5907\u4ee5\u4e0b\u7279\u6027\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\uff1a\n\n    </p><p>\n    \u7528 <span>PL/pgSQL</span> \u521b\u5efa\u7684\u51fd\u6570\uff0c\u53ef\u4ee5\u7528\u4e8e\u4efb\u4f55\u53ef\u4ee5\u4f7f\u7528\u5185\u7f6e\u51fd\u6570\u7684\u5730\u65b9\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u521b\u5efa\u5e26\u6709\u590d\u6742\u6761\u4ef6\u903b\u8f91\u7684\u8ba1\u7b97\u51fd\u6570\uff0c\u968f\u540e\u7528\u5b83\u4eec\u5b9a\u4e49\u64cd\u4f5c\u7b26\uff0c\u6216\u8005\u628a\u5b83\u4eec\u7528\u4e8e\u7d22\u5f15\u8868\u8fbe\u5f0f\u3002\n   </p><p>\n    \u5728 <span>PostgreSQL</span> 9.0 \u53ca\u66f4\u9ad8\u7248\u672c\u4e2d\uff0c<span>PL/pgSQL</span> \u9ed8\u8ba4\u5b89\u88c5\u3002\u4e0d\u8fc7\u5b83\u4ecd\u7136\u662f\u4e00\u4e2a\u53ef\u8f7d\u5165\u6a21\u5757\uff0c\u56e0\u6b64\u5bf9\u5b89\u5168\u6027\u7279\u522b\u654f\u611f\u7684\u7ba1\u7406\u5458\u4e5f\u53ef\u4ee5\u9009\u62e9\u79fb\u9664\u5b83\u3002\n   </p><p><a href=\"/zh/docs/16/plpgsql-overview.html\" rel=\"nofollow\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>", "body_sha256": "6a0dac38aa105c1425837af745aca8a0c89f674cee0f597001dc9daca1a472e4", "content_hash": "3d135b27ca9ef37f819d0976ea89abab5c9de50413a007d09b45f9a78facaa46", "source_database": "center", "source_revision": "c1575341fa7bd40f5274ea465b34390f4dc64cdd0770af327005caaeb9f6b7ed"}, "signature": "", "tables_zh": [], "attributes": {"kind": "Bundled procedural-language variant", "family": "PL/pgSQL", "comment": "PL/pgSQL procedural language", "handler": "plpgsql_call_handler", "library": "$libdir/plpgsql", "trusted": "t", "validator": "plpgsql_validator", "inline_handler": "plpgsql_inline_handler", "default_version": "1.0", "module_pathname": "$libdir/plpgsql"}, "description": ["\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002"], "manual_html": "", "manual_path": "/docs/16/plpgsql-overview.html", "sections_zh": [{"code": "/* src/pl/plpgsql/src/plpgsql--1.0.sql */\n\nCREATE FUNCTION plpgsql_call_handler() RETURNS language_handler\n  LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_inline_handler(internal) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_validator(oid) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE TRUSTED LANGUAGE plpgsql\n  HANDLER plpgsql_call_handler\n  INLINE plpgsql_inline_handler\n  VALIDATOR plpgsql_validator;\n\n-- The language object, but not the functions, can be owned by a non-superuser.\nALTER LANGUAGE plpgsql OWNER TO @extowner@;\n\nCOMMENT ON LANGUAGE plpgsql IS 'PL/pgSQL procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "localization": {"status": "complete", "sources": [{"url": "/docs/16/plpgsql-control-structures.html", "method": "same-major semantic node", "sha256": "03d346611efc38b245bf966ae9b1b5d2d04b62d7bac7944daa1e5234480e7e79", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/16/plpgsql-cursors.html", "method": "same-major semantic node", "sha256": "ee022ea3ff5268e258b7f6ac761f5d3bfe96e1cb58fb36e4e53dcb9085a6fa64", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/16/plpgsql-declarations.html", "method": "same-major semantic node", "sha256": "a87927774372e6aac5722b9c696e6b69ab383b341e9c75a5a18a5ea6b28e0d6c", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/16/plpgsql-development-tips.html", "method": "same-major semantic node", "sha256": "04b39753c8d9964d05cc1b7575c5b38626a86a098c5d2f4cd480998eb1900750", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/16/plpgsql-errors-and-messages.html", "method": "same-major semantic node", "sha256": "87f411ee6d98fe0b37bc68cea244661a39c5bb9457594edb4616f0ceb1f093fd", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/16/plpgsql-expressions.html", "method": "same-major semantic node", "sha256": "dc7861559c5f227fb15909917ea2f151e9f30b7193ff2f2bd994bff5f070ac7b", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/16/plpgsql-implementation.html", "method": "same-major semantic node", "sha256": "d0f9cf9a21e90d3a8e98e0f52d842827bba8b6067f91362a0b91f99355f85649", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/16/plpgsql-overview.html", "method": "same-major semantic node", "sha256": "14abf87c49c2ba06756cb0893c43712f9b2179226550ed15322029c738712b51", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/16/plpgsql-porting.html", "method": "same-major semantic node", "sha256": "bcb7ed9fdd3f5907ad4d1dfbfe23d4fa08ea013cd491a115591bd80309b04f14", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/16/plpgsql-statements.html", "method": "same-major semantic node", "sha256": "94c0db86dddf533c5c164a174bf9f0a35d4b78dd0bdf0d56f1aaf033e9c4c7d1", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/16/plpgsql-structure.html", "method": "same-major semantic node", "sha256": "c107204fd6bb49104f8aa690b6ba3a9343a0fb75c3d2bebdff9f6647b7ab02e8", "language": "zh", "matched_nodes": ["#PLPGSQL-STRUCTURE/div[13]/p[1]/span[1]", "page-title/h2"]}, {"url": "/docs/16/plpgsql-transactions.html", "method": "same-major semantic node", "sha256": "d1ebdc23a45690d5efb89098fd59a400e11d5aa7e501b691db614ec4723e17f1", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/16/plpgsql-trigger.html", "method": "same-major semantic node", "sha256": "31d74a87040c3e9f26433e09586b34b0bb8a3170fddd45b3315619510ff72d53", "language": "zh", "matched_nodes": ["page-title/h2"]}], "language": "zh", "original_text": {"/versions/16/description/0": "PL/pgSQL procedural language", "/versions/16/facts/0/label": "Kind", "/versions/16/facts/0/value": "Bundled procedural-language variant", "/versions/16/facts/1/label": "Family", "/versions/16/facts/1/value": "PL/pgSQL", "/versions/16/facts/2/label": "Trusted", "/versions/16/facts/3/label": "Handler", "/versions/16/facts/4/label": "Inline handler", "/versions/16/facts/5/label": "Validator", "/versions/16/facts/6/label": "Library", "/versions/16/facts/7/label": "Default version", "/versions/16/facts/8/label": "Module pathname", "/versions/16/facts/9/label": "Comment", "/versions/16/facts/9/value": "PL/pgSQL procedural language", "/versions/16/related/0/label": "plpgsql-control-structures", "/versions/16/related/1/label": "plpgsql-cursors", "/versions/16/related/2/label": "plpgsql-declarations", "/versions/16/related/3/label": "plpgsql-development-tips", "/versions/16/related/4/label": "plpgsql-errors-and-messages", "/versions/16/related/5/label": "plpgsql-expressions", "/versions/16/related/6/label": "plpgsql-implementation", "/versions/16/related/7/label": "plpgsql-overview", "/versions/16/related/8/label": "plpgsql-porting", "/versions/16/related/9/label": "plpgsql-statements", "/versions/16/related/10/label": "plpgsql-structure", "/versions/16/related/11/label": "plpgsql-transactions", "/versions/16/related/12/label": "plpgsql-trigger", "/versions/16/sections/0/title": "Installation definition from the matching source archive", "/versions/16/sections/0/paragraphs/0": "This extension is shipped with the source. Its presence does not establish that the language or external runtime is installed."}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "3f17556a937e8bbf158e664312b7517959b4a3cf8449867752a0dc8ba4710adf", "canonical_center_text_hash": "3d135b27ca9ef37f819d0976ea89abab5c9de50413a007d09b45f9a78facaa46"}, "source_files": {"src/pl/plpgsql/src/plpgsql.control": "9457c3f51d6bdfab93f13080d177795a9274c025e378fb613218342e3a3c7b45", "src/pl/plpgsql/src/plpgsql--1.0.sql": "f4e7e05438808ac0da0b3801397d16e36102969af7e2ffc982def5b7524fb557"}, "description_zh": "\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002", "comparison_data": {"kind": "Bundled procedural-language variant", "family": "PL/pgSQL", "handler": "plpgsql_call_handler", "library": "$libdir/plpgsql", "trusted": "t", "validator": "plpgsql_validator", "inline_handler": "plpgsql_inline_handler", "default_version": "1.0"}, "comparison_hash": "e85051f39a242ce658cedd87ac97437817f0f1b2baf992d8d37c9d29df8b558b", "manual_language": "zh", "description_zh_html": "<p>\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002</p><dl><dt>\u8fd0\u7b97\u7b26\u65cf</dt><dd><code>PL/pgSQL</code></dd><dt>\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_call_handler</code></dd><dt>\u5e93</dt><dd><code>$libdir/plpgsql</code></dd><dt>\u53d7\u4fe1\u4efb</dt><dd><code>\u662f</code></dd><dt>\u9a8c\u8bc1\u51fd\u6570</dt><dd><code>plpgsql_validator</code></dd><dt>\u5185\u8054\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_inline_handler</code></dd><dt>\u9ed8\u8ba4\u7248\u672c</dt><dd><code>1.0</code></dd><dt>\u6a21\u5757\u8def\u5f84</dt><dd><code>$libdir/plpgsql</code></dd></dl><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n<span>PL/pgSQL</span> \u662f\u4e00\u79cd\u7528\u4e8e <span>PostgreSQL</span> \u6570\u636e\u5e93\u7cfb\u7edf\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\u3002<span>PL/pgSQL</span> \u7684\u8bbe\u8ba1\u76ee\u6807\uff0c\u662f\u521b\u5efa\u4e00\u79cd\u5177\u5907\u4ee5\u4e0b\u7279\u6027\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\uff1a\n\n    </p><p>\n    \u7528 <span>PL/pgSQL</span> \u521b\u5efa\u7684\u51fd\u6570\uff0c\u53ef\u4ee5\u7528\u4e8e\u4efb\u4f55\u53ef\u4ee5\u4f7f\u7528\u5185\u7f6e\u51fd\u6570\u7684\u5730\u65b9\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u521b\u5efa\u5e26\u6709\u590d\u6742\u6761\u4ef6\u903b\u8f91\u7684\u8ba1\u7b97\u51fd\u6570\uff0c\u968f\u540e\u7528\u5b83\u4eec\u5b9a\u4e49\u64cd\u4f5c\u7b26\uff0c\u6216\u8005\u628a\u5b83\u4eec\u7528\u4e8e\u7d22\u5f15\u8868\u8fbe\u5f0f\u3002\n   </p><p>\n    \u5728 <span>PostgreSQL</span> 9.0 \u53ca\u66f4\u9ad8\u7248\u672c\u4e2d\uff0c<span>PL/pgSQL</span> \u9ed8\u8ba4\u5b89\u88c5\u3002\u4e0d\u8fc7\u5b83\u4ecd\u7136\u662f\u4e00\u4e2a\u53ef\u8f7d\u5165\u6a21\u5757\uff0c\u56e0\u6b64\u5bf9\u5b89\u5168\u6027\u7279\u522b\u654f\u611f\u7684\u7ba1\u7406\u5458\u4e5f\u53ef\u4ee5\u9009\u62e9\u79fb\u9664\u5b83\u3002\n   </p><p><a href=\"/zh/docs/16/plpgsql-overview.html\" rel=\"nofollow\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>"}, "17": {"facts": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "\u201c \u5916\u5c42\u5757 \u201d"}, {"label": "\u53ef\u4fe1", "value": "t"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plpgsql_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plpgsql_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plpgsql_validator"}, {"label": "\u5e93", "value": "$libdir/plpgsql"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plpgsql"}, {"label": "\u6ce8\u91ca", "value": "PL/pgSQL \u8fc7\u7a0b\u8bed\u8a00"}], "tables": [], "aliases": [], "related": [{"url": "/docs/17/plpgsql-control-structures.html", "label": "\u63a7\u5236\u7ed3\u6784"}, {"url": "/docs/17/plpgsql-cursors.html", "label": "\u6e38\u6807"}, {"url": "/docs/17/plpgsql-declarations.html", "label": "\u58f0\u660e"}, {"url": "/docs/17/plpgsql-development-tips.html", "label": "PL/pgSQL \u5f00\u53d1\u63d0\u793a"}, {"url": "/docs/17/plpgsql-errors-and-messages.html", "label": "\u9519\u8bef\u548c\u6d88\u606f"}, {"url": "/docs/17/plpgsql-expressions.html", "label": "\u8868\u8fbe\u5f0f"}, {"url": "/docs/17/plpgsql-implementation.html", "label": "PL/pgSQL \u5185\u90e8\u673a\u5236"}, {"url": "/docs/17/plpgsql-overview.html", "label": "\u6982\u8ff0"}, {"url": "/docs/17/plpgsql-porting.html", "label": "\u4ece Oracle PL/SQL \u79fb\u690d"}, {"url": "/docs/17/plpgsql-statements.html", "label": "\u57fa\u672c\u8bed\u53e5"}, {"url": "/docs/17/plpgsql-structure.html", "label": "PL/pgSQL \u7684\u7ed3\u6784"}, {"url": "/docs/17/plpgsql-transactions.html", "label": "\u4e8b\u52a1\u7ba1\u7406"}, {"url": "/docs/17/plpgsql-trigger.html", "label": "\u89e6\u53d1\u5668\u51fd\u6570"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v17.11/postgresql-17.11.tar.bz2", "label": "17.11", "major": "17", "channel": "stable", "revision": "dd27f2b3c59e73ed14aa3324901242bf69a032a6347805f274e6260322d42979", "source_sha256": "dd27f2b3c59e73ed14aa3324901242bf69a032a6347805f274e6260322d42979", "catalog_fingerprint": "4bbe3ac77becd618478f66aec420a533e9017be356c5c1d51a4b17f0fd497c07"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v17.11/postgresql-17.11.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "dd27f2b3c59e73ed14aa3324901242bf69a032a6347805f274e6260322d42979"}, {"url": "/docs/17/plpgsql-overview.html", "path": "plpgsql-overview.html", "label": "PostgreSQL 17 English manual", "sha256": "12a593e4e51bdb0535cfc433f8ec2dc29d3b5ef75095a4f7f90be53b42be0240"}], "zh_from": {"kind": "same-version-chinese-manual-with-source-derived-structured-summary", "manual": {"url": "/zh/docs/17/plpgsql-overview.html", "anchor": "", "locale": "zh-Hans", "version": "17", "build_id": 105, "page_key": "plpgsql-overview.html", "extraction": "concept-introduction", "source_hash": "75693ba0541e7e0630dac66db23527430f8c647e4a3fb248aed40a0e878a0eb5", "fragment_sha256": "99416e90c5ea4b3583ed48b35295883d16c6c2caba40c87e8761304b0590c308", "source_revision": "unknown:rendered-translation-baseline", "translation_revision": "git:b1b500221dbe5437cfca004d6b04d3f6e422765d;html-sha256:7340767258d21c21b36f373f1fff6bab2be18e0daca13a865129db6105c09efd", "translated_from_revision": null}, "body_sha256": "4d158d2e2f560db734bc68ddcc3baab8070613718c02f44b893069e0ab016058", "runtime_rerun": false, "authored_translation": "source-derived-structured-summary", "source_facts_revision": "dd27f2b3c59e73ed14aa3324901242bf69a032a6347805f274e6260322d42979"}, "facts_zh": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "\u201c \u5916\u5c42\u5757 \u201d"}, {"label": "\u53ef\u4fe1", "value": "t"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plpgsql_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plpgsql_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plpgsql_validator"}, {"label": "\u5e93", "value": "$libdir/plpgsql"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plpgsql"}, {"label": "\u6ce8\u91ca", "value": "PL/pgSQL \u8fc7\u7a0b\u8bed\u8a00"}], "sections": [{"code": "/* src/pl/plpgsql/src/plpgsql--1.0.sql */\n\nCREATE FUNCTION plpgsql_call_handler() RETURNS language_handler\n  LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_inline_handler(internal) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_validator(oid) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE TRUSTED LANGUAGE plpgsql\n  HANDLER plpgsql_call_handler\n  INLINE plpgsql_inline_handler\n  VALIDATOR plpgsql_validator;\n\n-- The language object, but not the functions, can be owned by a non-superuser.\nALTER LANGUAGE plpgsql OWNER TO @extowner@;\n\nCOMMENT ON LANGUAGE plpgsql IS 'PL/pgSQL procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "center_zh": {"title": "plpgsql", "locale": "zh-Hans", "source": {"key": "plpgsql", "locale": "zh-Hans", "version": "17", "text_hash": "1a68f91cc182cd1012199f4d6e1dee00a01985737a065eb91819df02327a93ab", "collection": "language", "dataset_hash": "7c31b524dfe136022d39a6ae8dcfac6b3bbd5f8fdaf422536599981252aff0c9", "source_database": "center", "source_revision": "dd27f2b3c59e73ed14aa3324901242bf69a032a6347805f274e6260322d42979"}, "payload": {"facts": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "\u201c \u5916\u5c42\u5757 \u201d"}, {"label": "\u53ef\u4fe1", "value": "t"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plpgsql_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plpgsql_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plpgsql_validator"}, {"label": "\u5e93", "value": "$libdir/plpgsql"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plpgsql"}, {"label": "\u6ce8\u91ca", "value": "PL/pgSQL \u8fc7\u7a0b\u8bed\u8a00"}], "tables": [], "zh_from": {"kind": "same-version-chinese-manual-with-source-derived-structured-summary", "manual": {"url": "/zh/docs/17/plpgsql-overview.html", "anchor": "", "locale": "zh-Hans", "version": "17", "build_id": 105, "page_key": "plpgsql-overview.html", "extraction": "concept-introduction", "source_hash": "75693ba0541e7e0630dac66db23527430f8c647e4a3fb248aed40a0e878a0eb5", "fragment_sha256": "99416e90c5ea4b3583ed48b35295883d16c6c2caba40c87e8761304b0590c308", "source_revision": "unknown:rendered-translation-baseline", "translation_revision": "git:b1b500221dbe5437cfca004d6b04d3f6e422765d;html-sha256:7340767258d21c21b36f373f1fff6bab2be18e0daca13a865129db6105c09efd", "translated_from_revision": null}, "body_sha256": "4d158d2e2f560db734bc68ddcc3baab8070613718c02f44b893069e0ab016058", "runtime_rerun": false, "authored_translation": "source-derived-structured-summary", "source_facts_revision": "dd27f2b3c59e73ed14aa3324901242bf69a032a6347805f274e6260322d42979"}, "sections": [{"code": "/* src/pl/plpgsql/src/plpgsql--1.0.sql */\n\nCREATE FUNCTION plpgsql_call_handler() RETURNS language_handler\n  LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_inline_handler(internal) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_validator(oid) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE TRUSTED LANGUAGE plpgsql\n  HANDLER plpgsql_call_handler\n  INLINE plpgsql_inline_handler\n  VALIDATOR plpgsql_validator;\n\n-- The language object, but not the functions, can be owned by a non-superuser.\nALTER LANGUAGE plpgsql OWNER TO @extowner@;\n\nCOMMENT ON LANGUAGE plpgsql IS 'PL/pgSQL procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "description_zh": "\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002", "description_zh_html": "<p>\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002</p><dl><dt>\u8fd0\u7b97\u7b26\u65cf</dt><dd><code>PL/pgSQL</code></dd><dt>\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_call_handler</code></dd><dt>\u5e93</dt><dd><code>$libdir/plpgsql</code></dd><dt>\u53d7\u4fe1\u4efb</dt><dd><code>\u662f</code></dd><dt>\u9a8c\u8bc1\u51fd\u6570</dt><dd><code>plpgsql_validator</code></dd><dt>\u5185\u8054\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_inline_handler</code></dd><dt>\u9ed8\u8ba4\u7248\u672c</dt><dd><code>1.0</code></dd><dt>\u6a21\u5757\u8def\u5f84</dt><dd><code>$libdir/plpgsql</code></dd></dl><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n<span class=\"application\">PL/pgSQL</span> \u662f\u4e00\u79cd\u7528\u4e8e <span class=\"productname\">PostgreSQL</span> \u6570\u636e\u5e93\u7cfb\u7edf\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\u3002<span class=\"application\">PL/pgSQL</span> \u7684\u8bbe\u8ba1\u76ee\u6807\uff0c\u662f\u521b\u5efa\u4e00\u79cd\u5177\u5907\u4ee5\u4e0b\u7279\u6027\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\uff1a\n\n    </p><p>\n    \u7528 <span class=\"application\">PL/pgSQL</span> \u521b\u5efa\u7684\u51fd\u6570\uff0c\u53ef\u4ee5\u7528\u4e8e\u4efb\u4f55\u53ef\u4ee5\u4f7f\u7528\u5185\u7f6e\u51fd\u6570\u7684\u5730\u65b9\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u521b\u5efa\u5e26\u6709\u590d\u6742\u6761\u4ef6\u903b\u8f91\u7684\u8ba1\u7b97\u51fd\u6570\uff0c\u968f\u540e\u7528\u5b83\u4eec\u5b9a\u4e49\u64cd\u4f5c\u7b26\uff0c\u6216\u8005\u628a\u5b83\u4eec\u7528\u4e8e\u7d22\u5f15\u8868\u8fbe\u5f0f\u3002\n   </p><p>\n    \u5728 <span class=\"productname\">PostgreSQL</span> 9.0 \u53ca\u66f4\u9ad8\u7248\u672c\u4e2d\uff0c<span class=\"application\">PL/pgSQL</span> \u9ed8\u8ba4\u5b89\u88c5\u3002\u4e0d\u8fc7\u5b83\u4ecd\u7136\u662f\u4e00\u4e2a\u53ef\u8f7d\u5165\u6a21\u5757\uff0c\u56e0\u6b64\u5bf9\u5b89\u5168\u6027\u7279\u522b\u654f\u611f\u7684\u7ba1\u7406\u5458\u4e5f\u53ef\u4ee5\u9009\u62e9\u79fb\u9664\u5b83\u3002\n   </p><p><a href=\"/zh/docs/17/plpgsql-overview.html\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>"}, "summary": "\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002", "version": "17", "link_map": {"/zh/docs/17/plpgsql-overview.html": "/docs/17/plpgsql-overview.html"}, "body_html": "<p>\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002</p><dl><dt>\u8fd0\u7b97\u7b26\u65cf</dt><dd><code>PL/pgSQL</code></dd><dt>\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_call_handler</code></dd><dt>\u5e93</dt><dd><code>$libdir/plpgsql</code></dd><dt>\u53d7\u4fe1\u4efb</dt><dd><code>\u662f</code></dd><dt>\u9a8c\u8bc1\u51fd\u6570</dt><dd><code>plpgsql_validator</code></dd><dt>\u5185\u8054\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_inline_handler</code></dd><dt>\u9ed8\u8ba4\u7248\u672c</dt><dd><code>1.0</code></dd><dt>\u6a21\u5757\u8def\u5f84</dt><dd><code>$libdir/plpgsql</code></dd></dl><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n<span>PL/pgSQL</span> \u662f\u4e00\u79cd\u7528\u4e8e <span>PostgreSQL</span> \u6570\u636e\u5e93\u7cfb\u7edf\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\u3002<span>PL/pgSQL</span> \u7684\u8bbe\u8ba1\u76ee\u6807\uff0c\u662f\u521b\u5efa\u4e00\u79cd\u5177\u5907\u4ee5\u4e0b\u7279\u6027\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\uff1a\n\n    </p><p>\n    \u7528 <span>PL/pgSQL</span> \u521b\u5efa\u7684\u51fd\u6570\uff0c\u53ef\u4ee5\u7528\u4e8e\u4efb\u4f55\u53ef\u4ee5\u4f7f\u7528\u5185\u7f6e\u51fd\u6570\u7684\u5730\u65b9\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u521b\u5efa\u5e26\u6709\u590d\u6742\u6761\u4ef6\u903b\u8f91\u7684\u8ba1\u7b97\u51fd\u6570\uff0c\u968f\u540e\u7528\u5b83\u4eec\u5b9a\u4e49\u64cd\u4f5c\u7b26\uff0c\u6216\u8005\u628a\u5b83\u4eec\u7528\u4e8e\u7d22\u5f15\u8868\u8fbe\u5f0f\u3002\n   </p><p>\n    \u5728 <span>PostgreSQL</span> 9.0 \u53ca\u66f4\u9ad8\u7248\u672c\u4e2d\uff0c<span>PL/pgSQL</span> \u9ed8\u8ba4\u5b89\u88c5\u3002\u4e0d\u8fc7\u5b83\u4ecd\u7136\u662f\u4e00\u4e2a\u53ef\u8f7d\u5165\u6a21\u5757\uff0c\u56e0\u6b64\u5bf9\u5b89\u5168\u6027\u7279\u522b\u654f\u611f\u7684\u7ba1\u7406\u5458\u4e5f\u53ef\u4ee5\u9009\u62e9\u79fb\u9664\u5b83\u3002\n   </p><p><a href=\"/zh/docs/17/plpgsql-overview.html\" rel=\"nofollow\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>", "body_sha256": "df89024b2ee7b6fbc225293493b486e42dd74e14346ba38b750816ede7e63b07", "content_hash": "1a68f91cc182cd1012199f4d6e1dee00a01985737a065eb91819df02327a93ab", "source_database": "center", "source_revision": "dd27f2b3c59e73ed14aa3324901242bf69a032a6347805f274e6260322d42979"}, "signature": "", "tables_zh": [], "attributes": {"kind": "Bundled procedural-language variant", "family": "PL/pgSQL", "comment": "PL/pgSQL procedural language", "handler": "plpgsql_call_handler", "library": "$libdir/plpgsql", "trusted": "t", "validator": "plpgsql_validator", "inline_handler": "plpgsql_inline_handler", "default_version": "1.0", "module_pathname": "$libdir/plpgsql"}, "description": ["\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002"], "manual_html": "", "manual_path": "/docs/17/plpgsql-overview.html", "sections_zh": [{"code": "/* src/pl/plpgsql/src/plpgsql--1.0.sql */\n\nCREATE FUNCTION plpgsql_call_handler() RETURNS language_handler\n  LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_inline_handler(internal) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_validator(oid) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE TRUSTED LANGUAGE plpgsql\n  HANDLER plpgsql_call_handler\n  INLINE plpgsql_inline_handler\n  VALIDATOR plpgsql_validator;\n\n-- The language object, but not the functions, can be owned by a non-superuser.\nALTER LANGUAGE plpgsql OWNER TO @extowner@;\n\nCOMMENT ON LANGUAGE plpgsql IS 'PL/pgSQL procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "localization": {"status": "complete", "sources": [{"url": "/docs/17/plpgsql-control-structures.html", "method": "same-major semantic node", "sha256": "e2b664a56b150f9383b85f949374d38758d51b8180e5c6d702fde4ab98cdc814", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/17/plpgsql-cursors.html", "method": "same-major semantic node", "sha256": "a8b8b166d421a3cbd8fc645222be6adda5b367db5df4b275b6e68d0059dc374b", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/17/plpgsql-declarations.html", "method": "same-major semantic node", "sha256": "23410ec1956fff937af325d4a7b6fe2989ffe477363a9d837b3a4f1397963b66", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/17/plpgsql-development-tips.html", "method": "same-major semantic node", "sha256": "fefce4d6a2ed6610e265d75efbf56326d8df51f5b24fc906d07b4fd514ad7717", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/17/plpgsql-errors-and-messages.html", "method": "same-major semantic node", "sha256": "284f7258e276fb4c913839375be1e75ed5679fb0b3ebd60c3a01b0b9d364af62", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/17/plpgsql-expressions.html", "method": "same-major semantic node", "sha256": "ed72cc14d02ded82b8b459d8ba1b9186e5d39d4c7f0f0ca4160bab5b8c043e73", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/17/plpgsql-implementation.html", "method": "same-major semantic node", "sha256": "eb895a371b7c88c4cacad6629d47cf269635fbe5c19806e519da727aee14b4b6", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/17/plpgsql-overview.html", "method": "same-major semantic node", "sha256": "97f38388dd0b25b54df1deb15a4e6790b5da410873bcdc9b5b1455ae4810db7c", "language": "zh", "matched_nodes": ["#PLPGSQL-OVERVIEW/div[0]", "#PLPGSQL-OVERVIEW/div[1]/dl[0]/dt[0]", "#PLPGSQL-OVERVIEW/div[1]/dl[0]/dt[1]", "#PLPGSQL-OVERVIEW/div[7]/p[2]", "#PLPGSQL-OVERVIEW/div[7]/p[3]", "#PLPGSQL-OVERVIEW/div[7]/p[7]", "page-title/h2"]}, {"url": "/docs/17/plpgsql-porting.html", "method": "same-major semantic node", "sha256": "6b876cd68cbfc79c99b82f2c7c8ea39533d203f2c90b2b94fabca06b0accf2e3", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/17/plpgsql-statements.html", "method": "same-major semantic node", "sha256": "76bc987b3733392940d6e5ff24db2774b7036822cdb7149bb0807e189b608f48", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/17/plpgsql-structure.html", "method": "same-major semantic node", "sha256": "738063c61406d93f8c83326997b3908fca1a65442d737822c0edeae0e830489e", "language": "zh", "matched_nodes": ["#PLPGSQL-STRUCTURE/div[13]/p[1]/span[1]", "page-title/h2"]}, {"url": "/docs/17/plpgsql-transactions.html", "method": "same-major semantic node", "sha256": "95778e0b54d6de47a0f31439b2de0d1dc97cc30d4e2ffa40c9f39e18ba8c6799", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/17/plpgsql-trigger.html", "method": "same-major semantic node", "sha256": "ddf3f39aec0d52b09d544f38312ac599d8e3ff85bee0194c1c8b3ed5f404a9cc", "language": "zh", "matched_nodes": ["page-title/h2"]}], "language": "zh", "original_text": {"/versions/17/description/0": "PL/pgSQL procedural language", "/versions/17/facts/0/label": "Kind", "/versions/17/facts/0/value": "Bundled procedural-language variant", "/versions/17/facts/1/label": "Family", "/versions/17/facts/1/value": "PL/pgSQL", "/versions/17/facts/2/label": "Trusted", "/versions/17/facts/3/label": "Handler", "/versions/17/facts/4/label": "Inline handler", "/versions/17/facts/5/label": "Validator", "/versions/17/facts/6/label": "Library", "/versions/17/facts/7/label": "Default version", "/versions/17/facts/8/label": "Module pathname", "/versions/17/facts/9/label": "Comment", "/versions/17/facts/9/value": "PL/pgSQL procedural language", "/versions/17/related/0/label": "plpgsql-control-structures", "/versions/17/related/1/label": "plpgsql-cursors", "/versions/17/related/2/label": "plpgsql-declarations", "/versions/17/related/3/label": "plpgsql-development-tips", "/versions/17/related/4/label": "plpgsql-errors-and-messages", "/versions/17/related/5/label": "plpgsql-expressions", "/versions/17/related/6/label": "plpgsql-implementation", "/versions/17/related/7/label": "plpgsql-overview", "/versions/17/related/8/label": "plpgsql-porting", "/versions/17/related/9/label": "plpgsql-statements", "/versions/17/related/10/label": "plpgsql-structure", "/versions/17/related/11/label": "plpgsql-transactions", "/versions/17/related/12/label": "plpgsql-trigger", "/versions/17/sections/0/title": "Installation definition from the matching source archive", "/versions/17/sections/0/paragraphs/0": "This extension is shipped with the source. Its presence does not establish that the language or external runtime is installed."}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "d419b493282b5ad05b6abed8d757985a5aa34fb3eba917e75525530979d96e0a", "canonical_center_text_hash": "1a68f91cc182cd1012199f4d6e1dee00a01985737a065eb91819df02327a93ab"}, "source_files": {"src/pl/plpgsql/src/plpgsql.control": "9457c3f51d6bdfab93f13080d177795a9274c025e378fb613218342e3a3c7b45", "src/pl/plpgsql/src/plpgsql--1.0.sql": "f4e7e05438808ac0da0b3801397d16e36102969af7e2ffc982def5b7524fb557"}, "description_zh": "\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002", "comparison_data": {"kind": "Bundled procedural-language variant", "family": "PL/pgSQL", "handler": "plpgsql_call_handler", "library": "$libdir/plpgsql", "trusted": "t", "validator": "plpgsql_validator", "inline_handler": "plpgsql_inline_handler", "default_version": "1.0"}, "comparison_hash": "e85051f39a242ce658cedd87ac97437817f0f1b2baf992d8d37c9d29df8b558b", "manual_language": "zh", "description_zh_html": "<p>\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002</p><dl><dt>\u8fd0\u7b97\u7b26\u65cf</dt><dd><code>PL/pgSQL</code></dd><dt>\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_call_handler</code></dd><dt>\u5e93</dt><dd><code>$libdir/plpgsql</code></dd><dt>\u53d7\u4fe1\u4efb</dt><dd><code>\u662f</code></dd><dt>\u9a8c\u8bc1\u51fd\u6570</dt><dd><code>plpgsql_validator</code></dd><dt>\u5185\u8054\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_inline_handler</code></dd><dt>\u9ed8\u8ba4\u7248\u672c</dt><dd><code>1.0</code></dd><dt>\u6a21\u5757\u8def\u5f84</dt><dd><code>$libdir/plpgsql</code></dd></dl><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n<span>PL/pgSQL</span> \u662f\u4e00\u79cd\u7528\u4e8e <span>PostgreSQL</span> \u6570\u636e\u5e93\u7cfb\u7edf\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\u3002<span>PL/pgSQL</span> \u7684\u8bbe\u8ba1\u76ee\u6807\uff0c\u662f\u521b\u5efa\u4e00\u79cd\u5177\u5907\u4ee5\u4e0b\u7279\u6027\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\uff1a\n\n    </p><p>\n    \u7528 <span>PL/pgSQL</span> \u521b\u5efa\u7684\u51fd\u6570\uff0c\u53ef\u4ee5\u7528\u4e8e\u4efb\u4f55\u53ef\u4ee5\u4f7f\u7528\u5185\u7f6e\u51fd\u6570\u7684\u5730\u65b9\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u521b\u5efa\u5e26\u6709\u590d\u6742\u6761\u4ef6\u903b\u8f91\u7684\u8ba1\u7b97\u51fd\u6570\uff0c\u968f\u540e\u7528\u5b83\u4eec\u5b9a\u4e49\u64cd\u4f5c\u7b26\uff0c\u6216\u8005\u628a\u5b83\u4eec\u7528\u4e8e\u7d22\u5f15\u8868\u8fbe\u5f0f\u3002\n   </p><p>\n    \u5728 <span>PostgreSQL</span> 9.0 \u53ca\u66f4\u9ad8\u7248\u672c\u4e2d\uff0c<span>PL/pgSQL</span> \u9ed8\u8ba4\u5b89\u88c5\u3002\u4e0d\u8fc7\u5b83\u4ecd\u7136\u662f\u4e00\u4e2a\u53ef\u8f7d\u5165\u6a21\u5757\uff0c\u56e0\u6b64\u5bf9\u5b89\u5168\u6027\u7279\u522b\u654f\u611f\u7684\u7ba1\u7406\u5458\u4e5f\u53ef\u4ee5\u9009\u62e9\u79fb\u9664\u5b83\u3002\n   </p><p><a href=\"/zh/docs/17/plpgsql-overview.html\" rel=\"nofollow\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>"}, "18": {"facts": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "\u201c \u5916\u5c42\u5757 \u201d"}, {"label": "\u53ef\u4fe1", "value": "t"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plpgsql_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plpgsql_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plpgsql_validator"}, {"label": "\u5e93", "value": "$libdir/plpgsql"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plpgsql"}, {"label": "\u6ce8\u91ca", "value": "PL/pgSQL \u8fc7\u7a0b\u8bed\u8a00"}], "tables": [], "aliases": [], "related": [{"url": "/docs/18/plpgsql-control-structures.html", "label": "\u63a7\u5236\u7ed3\u6784"}, {"url": "/docs/18/plpgsql-cursors.html", "label": "\u6e38\u6807"}, {"url": "/docs/18/plpgsql-declarations.html", "label": "\u58f0\u660e"}, {"url": "/docs/18/plpgsql-development-tips.html", "label": "PL/pgSQL \u5f00\u53d1\u63d0\u793a"}, {"url": "/docs/18/plpgsql-errors-and-messages.html", "label": "\u9519\u8bef\u548c\u6d88\u606f"}, {"url": "/docs/18/plpgsql-expressions.html", "label": "\u8868\u8fbe\u5f0f"}, {"url": "/docs/18/plpgsql-implementation.html", "label": "PL/pgSQL \u5185\u90e8\u673a\u5236"}, {"url": "/docs/18/plpgsql-overview.html", "label": "\u6982\u8ff0"}, {"url": "/docs/18/plpgsql-porting.html", "label": "\u4ece Oracle PL/SQL \u79fb\u690d"}, {"url": "/docs/18/plpgsql-statements.html", "label": "\u57fa\u672c\u8bed\u53e5"}, {"url": "/docs/18/plpgsql-structure.html", "label": "PL/pgSQL \u7684\u7ed3\u6784"}, {"url": "/docs/18/plpgsql-transactions.html", "label": "\u4e8b\u52a1\u7ba1\u7406"}, {"url": "/docs/18/plpgsql-trigger.html", "label": "\u89e6\u53d1\u5668\u51fd\u6570"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2", "label": "18.6", "major": "18", "channel": "stable", "revision": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f", "source_sha256": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f", "catalog_fingerprint": "65c93d6048ef30e61023a84f9680fa6a92b1c383b7eb226741170077eb078502"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"}, {"url": "/docs/18/plpgsql-overview.html", "path": "plpgsql-overview.html", "label": "PostgreSQL 18 English manual", "sha256": "7f93dfdf27c74b24d0bd355e845c7a6ff142aa9479bdcd0f203e8d37f36a3dfc"}], "zh_from": {"kind": "same-version-chinese-manual-with-source-derived-structured-summary", "manual": {"url": "/zh/docs/18/plpgsql-overview.html", "anchor": "", "locale": "zh-Hans", "version": "18", "build_id": 107, "page_key": "plpgsql-overview.html", "extraction": "concept-introduction", "source_hash": "823e74f16834ecccc7b1646058f73d72581397e4173f6c1d09d819208a967456", "fragment_sha256": "99416e90c5ea4b3583ed48b35295883d16c6c2caba40c87e8761304b0590c308", "source_revision": "unknown:rendered-translation-baseline", "translation_revision": "git:b1b500221dbe5437cfca004d6b04d3f6e422765d;html-sha256:08e987a66af27b98444a8057c256314eafa13611a3fb9e888214fc436824244b", "translated_from_revision": null}, "body_sha256": "5cbd38c7776f71429719310aa0fe8d2be6a0fc3e04318e9e6b51fdb5c99d2c27", "runtime_rerun": false, "authored_translation": "source-derived-structured-summary", "source_facts_revision": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"}, "facts_zh": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "\u201c \u5916\u5c42\u5757 \u201d"}, {"label": "\u53ef\u4fe1", "value": "t"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plpgsql_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plpgsql_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plpgsql_validator"}, {"label": "\u5e93", "value": "$libdir/plpgsql"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plpgsql"}, {"label": "\u6ce8\u91ca", "value": "PL/pgSQL \u8fc7\u7a0b\u8bed\u8a00"}], "sections": [{"code": "/* src/pl/plpgsql/src/plpgsql--1.0.sql */\n\nCREATE FUNCTION plpgsql_call_handler() RETURNS language_handler\n  LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_inline_handler(internal) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_validator(oid) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE TRUSTED LANGUAGE plpgsql\n  HANDLER plpgsql_call_handler\n  INLINE plpgsql_inline_handler\n  VALIDATOR plpgsql_validator;\n\n-- The language object, but not the functions, can be owned by a non-superuser.\nALTER LANGUAGE plpgsql OWNER TO @extowner@;\n\nCOMMENT ON LANGUAGE plpgsql IS 'PL/pgSQL procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "center_zh": {"title": "plpgsql", "locale": "zh-Hans", "source": {"key": "plpgsql", "locale": "zh-Hans", "version": "18", "text_hash": "614cdca32987589aa639709be44c911d77d711905c5a75a7e0668c907bff9e04", "collection": "language", "dataset_hash": "7c31b524dfe136022d39a6ae8dcfac6b3bbd5f8fdaf422536599981252aff0c9", "source_database": "center", "source_revision": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"}, "payload": {"facts": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "\u201c \u5916\u5c42\u5757 \u201d"}, {"label": "\u53ef\u4fe1", "value": "t"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plpgsql_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plpgsql_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plpgsql_validator"}, {"label": "\u5e93", "value": "$libdir/plpgsql"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plpgsql"}, {"label": "\u6ce8\u91ca", "value": "PL/pgSQL \u8fc7\u7a0b\u8bed\u8a00"}], "tables": [], "zh_from": {"kind": "same-version-chinese-manual-with-source-derived-structured-summary", "manual": {"url": "/zh/docs/18/plpgsql-overview.html", "anchor": "", "locale": "zh-Hans", "version": "18", "build_id": 107, "page_key": "plpgsql-overview.html", "extraction": "concept-introduction", "source_hash": "823e74f16834ecccc7b1646058f73d72581397e4173f6c1d09d819208a967456", "fragment_sha256": "99416e90c5ea4b3583ed48b35295883d16c6c2caba40c87e8761304b0590c308", "source_revision": "unknown:rendered-translation-baseline", "translation_revision": "git:b1b500221dbe5437cfca004d6b04d3f6e422765d;html-sha256:08e987a66af27b98444a8057c256314eafa13611a3fb9e888214fc436824244b", "translated_from_revision": null}, "body_sha256": "5cbd38c7776f71429719310aa0fe8d2be6a0fc3e04318e9e6b51fdb5c99d2c27", "runtime_rerun": false, "authored_translation": "source-derived-structured-summary", "source_facts_revision": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"}, "sections": [{"code": "/* src/pl/plpgsql/src/plpgsql--1.0.sql */\n\nCREATE FUNCTION plpgsql_call_handler() RETURNS language_handler\n  LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_inline_handler(internal) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_validator(oid) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE TRUSTED LANGUAGE plpgsql\n  HANDLER plpgsql_call_handler\n  INLINE plpgsql_inline_handler\n  VALIDATOR plpgsql_validator;\n\n-- The language object, but not the functions, can be owned by a non-superuser.\nALTER LANGUAGE plpgsql OWNER TO @extowner@;\n\nCOMMENT ON LANGUAGE plpgsql IS 'PL/pgSQL procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "description_zh": "\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002", "description_zh_html": "<p>\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002</p><dl><dt>\u8fd0\u7b97\u7b26\u65cf</dt><dd><code>PL/pgSQL</code></dd><dt>\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_call_handler</code></dd><dt>\u5e93</dt><dd><code>$libdir/plpgsql</code></dd><dt>\u53d7\u4fe1\u4efb</dt><dd><code>\u662f</code></dd><dt>\u9a8c\u8bc1\u51fd\u6570</dt><dd><code>plpgsql_validator</code></dd><dt>\u5185\u8054\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_inline_handler</code></dd><dt>\u9ed8\u8ba4\u7248\u672c</dt><dd><code>1.0</code></dd><dt>\u6a21\u5757\u8def\u5f84</dt><dd><code>$libdir/plpgsql</code></dd></dl><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n<span class=\"application\">PL/pgSQL</span> \u662f\u4e00\u79cd\u7528\u4e8e <span class=\"productname\">PostgreSQL</span> \u6570\u636e\u5e93\u7cfb\u7edf\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\u3002<span class=\"application\">PL/pgSQL</span> \u7684\u8bbe\u8ba1\u76ee\u6807\uff0c\u662f\u521b\u5efa\u4e00\u79cd\u5177\u5907\u4ee5\u4e0b\u7279\u6027\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\uff1a\n\n    </p><p>\n    \u7528 <span class=\"application\">PL/pgSQL</span> \u521b\u5efa\u7684\u51fd\u6570\uff0c\u53ef\u4ee5\u7528\u4e8e\u4efb\u4f55\u53ef\u4ee5\u4f7f\u7528\u5185\u7f6e\u51fd\u6570\u7684\u5730\u65b9\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u521b\u5efa\u5e26\u6709\u590d\u6742\u6761\u4ef6\u903b\u8f91\u7684\u8ba1\u7b97\u51fd\u6570\uff0c\u968f\u540e\u7528\u5b83\u4eec\u5b9a\u4e49\u64cd\u4f5c\u7b26\uff0c\u6216\u8005\u628a\u5b83\u4eec\u7528\u4e8e\u7d22\u5f15\u8868\u8fbe\u5f0f\u3002\n   </p><p>\n    \u5728 <span class=\"productname\">PostgreSQL</span> 9.0 \u53ca\u66f4\u9ad8\u7248\u672c\u4e2d\uff0c<span class=\"application\">PL/pgSQL</span> \u9ed8\u8ba4\u5b89\u88c5\u3002\u4e0d\u8fc7\u5b83\u4ecd\u7136\u662f\u4e00\u4e2a\u53ef\u8f7d\u5165\u6a21\u5757\uff0c\u56e0\u6b64\u5bf9\u5b89\u5168\u6027\u7279\u522b\u654f\u611f\u7684\u7ba1\u7406\u5458\u4e5f\u53ef\u4ee5\u9009\u62e9\u79fb\u9664\u5b83\u3002\n   </p><p><a href=\"/zh/docs/18/plpgsql-overview.html\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>"}, "summary": "\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002", "version": "18", "link_map": {"/zh/docs/18/plpgsql-overview.html": "/docs/18/plpgsql-overview.html"}, "body_html": "<p>\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002</p><dl><dt>\u8fd0\u7b97\u7b26\u65cf</dt><dd><code>PL/pgSQL</code></dd><dt>\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_call_handler</code></dd><dt>\u5e93</dt><dd><code>$libdir/plpgsql</code></dd><dt>\u53d7\u4fe1\u4efb</dt><dd><code>\u662f</code></dd><dt>\u9a8c\u8bc1\u51fd\u6570</dt><dd><code>plpgsql_validator</code></dd><dt>\u5185\u8054\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_inline_handler</code></dd><dt>\u9ed8\u8ba4\u7248\u672c</dt><dd><code>1.0</code></dd><dt>\u6a21\u5757\u8def\u5f84</dt><dd><code>$libdir/plpgsql</code></dd></dl><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n<span>PL/pgSQL</span> \u662f\u4e00\u79cd\u7528\u4e8e <span>PostgreSQL</span> \u6570\u636e\u5e93\u7cfb\u7edf\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\u3002<span>PL/pgSQL</span> \u7684\u8bbe\u8ba1\u76ee\u6807\uff0c\u662f\u521b\u5efa\u4e00\u79cd\u5177\u5907\u4ee5\u4e0b\u7279\u6027\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\uff1a\n\n    </p><p>\n    \u7528 <span>PL/pgSQL</span> \u521b\u5efa\u7684\u51fd\u6570\uff0c\u53ef\u4ee5\u7528\u4e8e\u4efb\u4f55\u53ef\u4ee5\u4f7f\u7528\u5185\u7f6e\u51fd\u6570\u7684\u5730\u65b9\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u521b\u5efa\u5e26\u6709\u590d\u6742\u6761\u4ef6\u903b\u8f91\u7684\u8ba1\u7b97\u51fd\u6570\uff0c\u968f\u540e\u7528\u5b83\u4eec\u5b9a\u4e49\u64cd\u4f5c\u7b26\uff0c\u6216\u8005\u628a\u5b83\u4eec\u7528\u4e8e\u7d22\u5f15\u8868\u8fbe\u5f0f\u3002\n   </p><p>\n    \u5728 <span>PostgreSQL</span> 9.0 \u53ca\u66f4\u9ad8\u7248\u672c\u4e2d\uff0c<span>PL/pgSQL</span> \u9ed8\u8ba4\u5b89\u88c5\u3002\u4e0d\u8fc7\u5b83\u4ecd\u7136\u662f\u4e00\u4e2a\u53ef\u8f7d\u5165\u6a21\u5757\uff0c\u56e0\u6b64\u5bf9\u5b89\u5168\u6027\u7279\u522b\u654f\u611f\u7684\u7ba1\u7406\u5458\u4e5f\u53ef\u4ee5\u9009\u62e9\u79fb\u9664\u5b83\u3002\n   </p><p><a href=\"/zh/docs/18/plpgsql-overview.html\" rel=\"nofollow\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>", "body_sha256": "5442f145b33c01272a6a7e07c4728391610e0da2e4a2c13f31ffb857841254e8", "content_hash": "614cdca32987589aa639709be44c911d77d711905c5a75a7e0668c907bff9e04", "source_database": "center", "source_revision": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"}, "signature": "", "tables_zh": [], "attributes": {"kind": "Bundled procedural-language variant", "family": "PL/pgSQL", "comment": "PL/pgSQL procedural language", "handler": "plpgsql_call_handler", "library": "$libdir/plpgsql", "trusted": "t", "validator": "plpgsql_validator", "inline_handler": "plpgsql_inline_handler", "default_version": "1.0", "module_pathname": "$libdir/plpgsql"}, "description": ["\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002"], "manual_html": "", "manual_path": "/docs/18/plpgsql-overview.html", "sections_zh": [{"code": "/* src/pl/plpgsql/src/plpgsql--1.0.sql */\n\nCREATE FUNCTION plpgsql_call_handler() RETURNS language_handler\n  LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_inline_handler(internal) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_validator(oid) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE TRUSTED LANGUAGE plpgsql\n  HANDLER plpgsql_call_handler\n  INLINE plpgsql_inline_handler\n  VALIDATOR plpgsql_validator;\n\n-- The language object, but not the functions, can be owned by a non-superuser.\nALTER LANGUAGE plpgsql OWNER TO @extowner@;\n\nCOMMENT ON LANGUAGE plpgsql IS 'PL/pgSQL procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "localization": {"status": "complete", "sources": [{"url": "/docs/18/plpgsql-control-structures.html", "method": "same-major semantic node", "sha256": "ada67e189f7bb21c228f68b06ade27ba40793629e3b7edef02e2b5d6279fabf0", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plpgsql-cursors.html", "method": "same-major semantic node", "sha256": "b509296f78ac16f45e5e4f995abea5af4d1b0fc306df6a074da97792a031fefa", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plpgsql-declarations.html", "method": "same-major semantic node", "sha256": "db78dc56c29a0a2eda625d4ce249ba1584670d6e0441e85e0dee0e3d7751b9ca", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plpgsql-development-tips.html", "method": "same-major semantic node", "sha256": "365a2e3bccf53d1a06bed9044b2836240f7e26eb0dea8e2344f29f80712814f0", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plpgsql-errors-and-messages.html", "method": "same-major semantic node", "sha256": "c508d55dc74fe58a3475136617ca5b57c9a11d1988ede37a3b2b08253e8af7c0", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plpgsql-expressions.html", "method": "same-major semantic node", "sha256": "6bc25685a7dce85be35a519903038017518816d66235ad4f5945c719dab415af", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plpgsql-implementation.html", "method": "same-major semantic node", "sha256": "ebf43a851c80e2e5e914ebb1a65e638706168327170118129f57ea714fa29587", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plpgsql-overview.html", "method": "same-major semantic node", "sha256": "19b6cf613a6de3f176d87e839b976139940ee270343ffe518150c466814f1801", "language": "zh", "matched_nodes": ["#PLPGSQL-OVERVIEW/div[0]", "#PLPGSQL-OVERVIEW/div[1]/dl[0]/dt[0]", "#PLPGSQL-OVERVIEW/div[1]/dl[0]/dt[1]", "#PLPGSQL-OVERVIEW/div[7]/p[2]", "#PLPGSQL-OVERVIEW/div[7]/p[3]", "#PLPGSQL-OVERVIEW/div[7]/p[7]", "page-title/h2"]}, {"url": "/docs/18/plpgsql-porting.html", "method": "same-major semantic node", "sha256": "7d60fcc82d4faed376ac1e8827a9a5f5f8fe64b464dcb20342aa35ce0ec4472c", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plpgsql-statements.html", "method": "same-major semantic node", "sha256": "d85aaf74925d9df547f2952aa145e11a4b6984b15f053dd2007bde86c92e4a6b", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plpgsql-structure.html", "method": "same-major semantic node", "sha256": "4193364a82ea89eedb7dda01230ddfda4609cff4472ac0bb08f928a0b3c37061", "language": "zh", "matched_nodes": ["#PLPGSQL-STRUCTURE/div[13]/p[1]/span[1]", "page-title/h2"]}, {"url": "/docs/18/plpgsql-transactions.html", "method": "same-major semantic node", "sha256": "b4e3ae2e84e1aea7b493d59a9c307cad44cf94ab229e662b2739e15933b48186", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plpgsql-trigger.html", "method": "same-major semantic node", "sha256": "0a55669b1ee519ba154ee5f54040f2f6410fb055ab43b99c170b1ec878972050", "language": "zh", "matched_nodes": ["page-title/h2"]}], "language": "zh", "original_text": {"/versions/18/description/0": "PL/pgSQL procedural language", "/versions/18/facts/0/label": "Kind", "/versions/18/facts/0/value": "Bundled procedural-language variant", "/versions/18/facts/1/label": "Family", "/versions/18/facts/1/value": "PL/pgSQL", "/versions/18/facts/2/label": "Trusted", "/versions/18/facts/3/label": "Handler", "/versions/18/facts/4/label": "Inline handler", "/versions/18/facts/5/label": "Validator", "/versions/18/facts/6/label": "Library", "/versions/18/facts/7/label": "Default version", "/versions/18/facts/8/label": "Module pathname", "/versions/18/facts/9/label": "Comment", "/versions/18/facts/9/value": "PL/pgSQL procedural language", "/versions/18/related/0/label": "plpgsql-control-structures", "/versions/18/related/1/label": "plpgsql-cursors", "/versions/18/related/2/label": "plpgsql-declarations", "/versions/18/related/3/label": "plpgsql-development-tips", "/versions/18/related/4/label": "plpgsql-errors-and-messages", "/versions/18/related/5/label": "plpgsql-expressions", "/versions/18/related/6/label": "plpgsql-implementation", "/versions/18/related/7/label": "plpgsql-overview", "/versions/18/related/8/label": "plpgsql-porting", "/versions/18/related/9/label": "plpgsql-statements", "/versions/18/related/10/label": "plpgsql-structure", "/versions/18/related/11/label": "plpgsql-transactions", "/versions/18/related/12/label": "plpgsql-trigger", "/versions/18/sections/0/title": "Installation definition from the matching source archive", "/versions/18/sections/0/paragraphs/0": "This extension is shipped with the source. Its presence does not establish that the language or external runtime is installed."}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "a1e46654a895217c71be87a69663dd21409a71124fbf0e5dda7a0b724f725ab6", "canonical_center_text_hash": "614cdca32987589aa639709be44c911d77d711905c5a75a7e0668c907bff9e04"}, "source_files": {"src/pl/plpgsql/src/plpgsql.control": "9457c3f51d6bdfab93f13080d177795a9274c025e378fb613218342e3a3c7b45", "src/pl/plpgsql/src/plpgsql--1.0.sql": "f4e7e05438808ac0da0b3801397d16e36102969af7e2ffc982def5b7524fb557"}, "description_zh": "\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002", "comparison_data": {"kind": "Bundled procedural-language variant", "family": "PL/pgSQL", "handler": "plpgsql_call_handler", "library": "$libdir/plpgsql", "trusted": "t", "validator": "plpgsql_validator", "inline_handler": "plpgsql_inline_handler", "default_version": "1.0"}, "comparison_hash": "e85051f39a242ce658cedd87ac97437817f0f1b2baf992d8d37c9d29df8b558b", "manual_language": "zh", "description_zh_html": "<p>\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002</p><dl><dt>\u8fd0\u7b97\u7b26\u65cf</dt><dd><code>PL/pgSQL</code></dd><dt>\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_call_handler</code></dd><dt>\u5e93</dt><dd><code>$libdir/plpgsql</code></dd><dt>\u53d7\u4fe1\u4efb</dt><dd><code>\u662f</code></dd><dt>\u9a8c\u8bc1\u51fd\u6570</dt><dd><code>plpgsql_validator</code></dd><dt>\u5185\u8054\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_inline_handler</code></dd><dt>\u9ed8\u8ba4\u7248\u672c</dt><dd><code>1.0</code></dd><dt>\u6a21\u5757\u8def\u5f84</dt><dd><code>$libdir/plpgsql</code></dd></dl><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n<span>PL/pgSQL</span> \u662f\u4e00\u79cd\u7528\u4e8e <span>PostgreSQL</span> \u6570\u636e\u5e93\u7cfb\u7edf\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\u3002<span>PL/pgSQL</span> \u7684\u8bbe\u8ba1\u76ee\u6807\uff0c\u662f\u521b\u5efa\u4e00\u79cd\u5177\u5907\u4ee5\u4e0b\u7279\u6027\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\uff1a\n\n    </p><p>\n    \u7528 <span>PL/pgSQL</span> \u521b\u5efa\u7684\u51fd\u6570\uff0c\u53ef\u4ee5\u7528\u4e8e\u4efb\u4f55\u53ef\u4ee5\u4f7f\u7528\u5185\u7f6e\u51fd\u6570\u7684\u5730\u65b9\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u521b\u5efa\u5e26\u6709\u590d\u6742\u6761\u4ef6\u903b\u8f91\u7684\u8ba1\u7b97\u51fd\u6570\uff0c\u968f\u540e\u7528\u5b83\u4eec\u5b9a\u4e49\u64cd\u4f5c\u7b26\uff0c\u6216\u8005\u628a\u5b83\u4eec\u7528\u4e8e\u7d22\u5f15\u8868\u8fbe\u5f0f\u3002\n   </p><p>\n    \u5728 <span>PostgreSQL</span> 9.0 \u53ca\u66f4\u9ad8\u7248\u672c\u4e2d\uff0c<span>PL/pgSQL</span> \u9ed8\u8ba4\u5b89\u88c5\u3002\u4e0d\u8fc7\u5b83\u4ecd\u7136\u662f\u4e00\u4e2a\u53ef\u8f7d\u5165\u6a21\u5757\uff0c\u56e0\u6b64\u5bf9\u5b89\u5168\u6027\u7279\u522b\u654f\u611f\u7684\u7ba1\u7406\u5458\u4e5f\u53ef\u4ee5\u9009\u62e9\u79fb\u9664\u5b83\u3002\n   </p><p><a href=\"/zh/docs/18/plpgsql-overview.html\" rel=\"nofollow\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>", "center_zh_rendered": "<p>\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002</p><dl><dt>\u8fd0\u7b97\u7b26\u65cf</dt><dd><code>PL/pgSQL</code></dd><dt>\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_call_handler</code></dd><dt>\u5e93</dt><dd><code>$libdir/plpgsql</code></dd><dt>\u53d7\u4fe1\u4efb</dt><dd><code>\u662f</code></dd><dt>\u9a8c\u8bc1\u51fd\u6570</dt><dd><code>plpgsql_validator</code></dd><dt>\u5185\u8054\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_inline_handler</code></dd><dt>\u9ed8\u8ba4\u7248\u672c</dt><dd><code>1.0</code></dd><dt>\u6a21\u5757\u8def\u5f84</dt><dd><code>$libdir/plpgsql</code></dd></dl><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n<span>PL/pgSQL</span> \u662f\u4e00\u79cd\u7528\u4e8e <span>PostgreSQL</span> \u6570\u636e\u5e93\u7cfb\u7edf\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\u3002<span>PL/pgSQL</span> \u7684\u8bbe\u8ba1\u76ee\u6807\uff0c\u662f\u521b\u5efa\u4e00\u79cd\u5177\u5907\u4ee5\u4e0b\u7279\u6027\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\uff1a\n\n    </p><p>\n    \u7528 <span>PL/pgSQL</span> \u521b\u5efa\u7684\u51fd\u6570\uff0c\u53ef\u4ee5\u7528\u4e8e\u4efb\u4f55\u53ef\u4ee5\u4f7f\u7528\u5185\u7f6e\u51fd\u6570\u7684\u5730\u65b9\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u521b\u5efa\u5e26\u6709\u590d\u6742\u6761\u4ef6\u903b\u8f91\u7684\u8ba1\u7b97\u51fd\u6570\uff0c\u968f\u540e\u7528\u5b83\u4eec\u5b9a\u4e49\u64cd\u4f5c\u7b26\uff0c\u6216\u8005\u628a\u5b83\u4eec\u7528\u4e8e\u7d22\u5f15\u8868\u8fbe\u5f0f\u3002\n   </p><p>\n    \u5728 <span>PostgreSQL</span> 9.0 \u53ca\u66f4\u9ad8\u7248\u672c\u4e2d\uff0c<span>PL/pgSQL</span> \u9ed8\u8ba4\u5b89\u88c5\u3002\u4e0d\u8fc7\u5b83\u4ecd\u7136\u662f\u4e00\u4e2a\u53ef\u8f7d\u5165\u6a21\u5757\uff0c\u56e0\u6b64\u5bf9\u5b89\u5168\u6027\u7279\u522b\u654f\u611f\u7684\u7ba1\u7406\u5458\u4e5f\u53ef\u4ee5\u9009\u62e9\u79fb\u9664\u5b83\u3002\n   </p><p><a href=\"/docs/18/plpgsql-overview.html\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>"}, "19": {"facts": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "\u201c \u5916\u5c42\u5757 \u201d"}, {"label": "\u53ef\u4fe1", "value": "t"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plpgsql_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plpgsql_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plpgsql_validator"}, {"label": "\u5e93", "value": "$libdir/plpgsql"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plpgsql"}, {"label": "\u6ce8\u91ca", "value": "PL/pgSQL \u8fc7\u7a0b\u8bed\u8a00"}], "tables": [], "aliases": [], "related": [{"url": "/docs/19/plpgsql-control-structures.html", "label": "\u63a7\u5236\u7ed3\u6784"}, {"url": "/docs/19/plpgsql-cursors.html", "label": "\u6e38\u6807"}, {"url": "/docs/19/plpgsql-declarations.html", "label": "\u58f0\u660e"}, {"url": "/docs/19/plpgsql-development-tips.html", "label": "PL/pgSQL \u5f00\u53d1\u63d0\u793a"}, {"url": "/docs/19/plpgsql-errors-and-messages.html", "label": "\u9519\u8bef\u548c\u6d88\u606f"}, {"url": "/docs/19/plpgsql-expressions.html", "label": "\u8868\u8fbe\u5f0f"}, {"url": "/docs/19/plpgsql-implementation.html", "label": "PL/pgSQL \u5185\u90e8\u673a\u5236"}, {"url": "/docs/19/plpgsql-overview.html", "label": "\u6982\u8ff0"}, {"url": "/docs/19/plpgsql-porting.html", "label": "\u4ece Oracle PL/SQL \u79fb\u690d"}, {"url": "/docs/19/plpgsql-statements.html", "label": "\u57fa\u672c\u8bed\u53e5"}, {"url": "/docs/19/plpgsql-structure.html", "label": "PL/pgSQL \u7684\u7ed3\u6784"}, {"url": "/docs/19/plpgsql-transactions.html", "label": "\u4e8b\u52a1\u7ba1\u7406"}, {"url": "/docs/19/plpgsql-trigger.html", "label": "\u89e6\u53d1\u5668\u51fd\u6570"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v19rc1/postgresql-19rc1.tar.bz2", "label": "19rc1", "major": "19", "channel": "preview", "revision": "af105fc8e960fc836a09fc2cd7f582b49fd17675d9d36631abe3a565bfd7d701", "source_sha256": "af105fc8e960fc836a09fc2cd7f582b49fd17675d9d36631abe3a565bfd7d701", "catalog_fingerprint": "62fbf1a3689dbe8bf7e6b3372cfe6fbf867581427b3858a94c8419b77a4d2d1d"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v19rc1/postgresql-19rc1.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "af105fc8e960fc836a09fc2cd7f582b49fd17675d9d36631abe3a565bfd7d701"}, {"url": "/docs/19/plpgsql-overview.html", "path": "plpgsql-overview.html", "label": "PostgreSQL 19 English manual", "sha256": "b45db6dd23af061064ba11364e52fc7f8288498671588c0c186b75460b025a9b"}], "zh_from": {"kind": "same-version-chinese-manual-with-source-derived-structured-summary", "manual": {"url": "/zh/docs/19/plpgsql-overview.html", "anchor": "", "locale": "zh-Hans", "version": "19", "build_id": 109, "page_key": "plpgsql-overview.html", "extraction": "concept-introduction", "source_hash": "133198232210d47eea15bb3a9f3c057e679a570c5fef74e0c6a66022fc31b58d", "fragment_sha256": "99416e90c5ea4b3583ed48b35295883d16c6c2caba40c87e8761304b0590c308", "source_revision": "sha256:af105fc8e960fc836a09fc2cd7f582b49fd17675d9d36631abe3a565bfd7d701", "translation_revision": "git:b1b500221dbe5437cfca004d6b04d3f6e422765d;html-sha256:65fda1f1b62a89992b84014c9157e61b67dbe8190e93945826efec668fad038c", "translated_from_revision": "sha256:af105fc8e960fc836a09fc2cd7f582b49fd17675d9d36631abe3a565bfd7d701"}, "body_sha256": "2fceff7c5d15dd58d3766c7520241cdf6420aa1d78f45463ffb25acebf927124", "runtime_rerun": false, "authored_translation": "source-derived-structured-summary", "source_facts_revision": "af105fc8e960fc836a09fc2cd7f582b49fd17675d9d36631abe3a565bfd7d701"}, "facts_zh": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "\u201c \u5916\u5c42\u5757 \u201d"}, {"label": "\u53ef\u4fe1", "value": "t"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plpgsql_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plpgsql_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plpgsql_validator"}, {"label": "\u5e93", "value": "$libdir/plpgsql"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plpgsql"}, {"label": "\u6ce8\u91ca", "value": "PL/pgSQL \u8fc7\u7a0b\u8bed\u8a00"}], "sections": [{"code": "/* src/pl/plpgsql/src/plpgsql--1.0.sql */\n\nCREATE FUNCTION plpgsql_call_handler() RETURNS language_handler\n  LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_inline_handler(internal) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_validator(oid) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE TRUSTED LANGUAGE plpgsql\n  HANDLER plpgsql_call_handler\n  INLINE plpgsql_inline_handler\n  VALIDATOR plpgsql_validator;\n\n-- The language object, but not the functions, can be owned by a non-superuser.\nALTER LANGUAGE plpgsql OWNER TO @extowner@;\n\nCOMMENT ON LANGUAGE plpgsql IS 'PL/pgSQL procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "center_zh": {"title": "plpgsql", "locale": "zh-Hans", "source": {"key": "plpgsql", "locale": "zh-Hans", "version": "19", "text_hash": "1fe42b57fdee39487782954b77ecf2a8018dd5c2c6098d5882b6511c511b013d", "collection": "language", "dataset_hash": "7c31b524dfe136022d39a6ae8dcfac6b3bbd5f8fdaf422536599981252aff0c9", "source_database": "center", "source_revision": "af105fc8e960fc836a09fc2cd7f582b49fd17675d9d36631abe3a565bfd7d701"}, "payload": {"facts": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "\u201c \u5916\u5c42\u5757 \u201d"}, {"label": "\u53ef\u4fe1", "value": "t"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plpgsql_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plpgsql_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plpgsql_validator"}, {"label": "\u5e93", "value": "$libdir/plpgsql"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plpgsql"}, {"label": "\u6ce8\u91ca", "value": "PL/pgSQL \u8fc7\u7a0b\u8bed\u8a00"}], "tables": [], "zh_from": {"kind": "same-version-chinese-manual-with-source-derived-structured-summary", "manual": {"url": "/zh/docs/19/plpgsql-overview.html", "anchor": "", "locale": "zh-Hans", "version": "19", "build_id": 109, "page_key": "plpgsql-overview.html", "extraction": "concept-introduction", "source_hash": "133198232210d47eea15bb3a9f3c057e679a570c5fef74e0c6a66022fc31b58d", "fragment_sha256": "99416e90c5ea4b3583ed48b35295883d16c6c2caba40c87e8761304b0590c308", "source_revision": "sha256:af105fc8e960fc836a09fc2cd7f582b49fd17675d9d36631abe3a565bfd7d701", "translation_revision": "git:b1b500221dbe5437cfca004d6b04d3f6e422765d;html-sha256:65fda1f1b62a89992b84014c9157e61b67dbe8190e93945826efec668fad038c", "translated_from_revision": "sha256:af105fc8e960fc836a09fc2cd7f582b49fd17675d9d36631abe3a565bfd7d701"}, "body_sha256": "2fceff7c5d15dd58d3766c7520241cdf6420aa1d78f45463ffb25acebf927124", "runtime_rerun": false, "authored_translation": "source-derived-structured-summary", "source_facts_revision": "af105fc8e960fc836a09fc2cd7f582b49fd17675d9d36631abe3a565bfd7d701"}, "sections": [{"code": "/* src/pl/plpgsql/src/plpgsql--1.0.sql */\n\nCREATE FUNCTION plpgsql_call_handler() RETURNS language_handler\n  LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_inline_handler(internal) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_validator(oid) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE TRUSTED LANGUAGE plpgsql\n  HANDLER plpgsql_call_handler\n  INLINE plpgsql_inline_handler\n  VALIDATOR plpgsql_validator;\n\n-- The language object, but not the functions, can be owned by a non-superuser.\nALTER LANGUAGE plpgsql OWNER TO @extowner@;\n\nCOMMENT ON LANGUAGE plpgsql IS 'PL/pgSQL procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "description_zh": "\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002", "description_zh_html": "<p>\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002</p><dl><dt>\u8fd0\u7b97\u7b26\u65cf</dt><dd><code>PL/pgSQL</code></dd><dt>\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_call_handler</code></dd><dt>\u5e93</dt><dd><code>$libdir/plpgsql</code></dd><dt>\u53d7\u4fe1\u4efb</dt><dd><code>\u662f</code></dd><dt>\u9a8c\u8bc1\u51fd\u6570</dt><dd><code>plpgsql_validator</code></dd><dt>\u5185\u8054\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_inline_handler</code></dd><dt>\u9ed8\u8ba4\u7248\u672c</dt><dd><code>1.0</code></dd><dt>\u6a21\u5757\u8def\u5f84</dt><dd><code>$libdir/plpgsql</code></dd></dl><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n<span class=\"application\">PL/pgSQL</span> \u662f\u4e00\u79cd\u7528\u4e8e <span class=\"productname\">PostgreSQL</span> \u6570\u636e\u5e93\u7cfb\u7edf\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\u3002<span class=\"application\">PL/pgSQL</span> \u7684\u8bbe\u8ba1\u76ee\u6807\uff0c\u662f\u521b\u5efa\u4e00\u79cd\u5177\u5907\u4ee5\u4e0b\u7279\u6027\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\uff1a\n\n    </p><p>\n    \u7528 <span class=\"application\">PL/pgSQL</span> \u521b\u5efa\u7684\u51fd\u6570\uff0c\u53ef\u4ee5\u7528\u4e8e\u4efb\u4f55\u53ef\u4ee5\u4f7f\u7528\u5185\u7f6e\u51fd\u6570\u7684\u5730\u65b9\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u521b\u5efa\u5e26\u6709\u590d\u6742\u6761\u4ef6\u903b\u8f91\u7684\u8ba1\u7b97\u51fd\u6570\uff0c\u968f\u540e\u7528\u5b83\u4eec\u5b9a\u4e49\u64cd\u4f5c\u7b26\uff0c\u6216\u8005\u628a\u5b83\u4eec\u7528\u4e8e\u7d22\u5f15\u8868\u8fbe\u5f0f\u3002\n   </p><p>\n    \u5728 <span class=\"productname\">PostgreSQL</span> 9.0 \u53ca\u66f4\u9ad8\u7248\u672c\u4e2d\uff0c<span class=\"application\">PL/pgSQL</span> \u9ed8\u8ba4\u5b89\u88c5\u3002\u4e0d\u8fc7\u5b83\u4ecd\u7136\u662f\u4e00\u4e2a\u53ef\u8f7d\u5165\u6a21\u5757\uff0c\u56e0\u6b64\u5bf9\u5b89\u5168\u6027\u7279\u522b\u654f\u611f\u7684\u7ba1\u7406\u5458\u4e5f\u53ef\u4ee5\u9009\u62e9\u79fb\u9664\u5b83\u3002\n   </p><p><a href=\"/zh/docs/19/plpgsql-overview.html\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>"}, "summary": "\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002", "version": "19", "link_map": {"/zh/docs/19/plpgsql-overview.html": "/docs/19/plpgsql-overview.html"}, "body_html": "<p>\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002</p><dl><dt>\u8fd0\u7b97\u7b26\u65cf</dt><dd><code>PL/pgSQL</code></dd><dt>\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_call_handler</code></dd><dt>\u5e93</dt><dd><code>$libdir/plpgsql</code></dd><dt>\u53d7\u4fe1\u4efb</dt><dd><code>\u662f</code></dd><dt>\u9a8c\u8bc1\u51fd\u6570</dt><dd><code>plpgsql_validator</code></dd><dt>\u5185\u8054\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_inline_handler</code></dd><dt>\u9ed8\u8ba4\u7248\u672c</dt><dd><code>1.0</code></dd><dt>\u6a21\u5757\u8def\u5f84</dt><dd><code>$libdir/plpgsql</code></dd></dl><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n<span>PL/pgSQL</span> \u662f\u4e00\u79cd\u7528\u4e8e <span>PostgreSQL</span> \u6570\u636e\u5e93\u7cfb\u7edf\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\u3002<span>PL/pgSQL</span> \u7684\u8bbe\u8ba1\u76ee\u6807\uff0c\u662f\u521b\u5efa\u4e00\u79cd\u5177\u5907\u4ee5\u4e0b\u7279\u6027\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\uff1a\n\n    </p><p>\n    \u7528 <span>PL/pgSQL</span> \u521b\u5efa\u7684\u51fd\u6570\uff0c\u53ef\u4ee5\u7528\u4e8e\u4efb\u4f55\u53ef\u4ee5\u4f7f\u7528\u5185\u7f6e\u51fd\u6570\u7684\u5730\u65b9\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u521b\u5efa\u5e26\u6709\u590d\u6742\u6761\u4ef6\u903b\u8f91\u7684\u8ba1\u7b97\u51fd\u6570\uff0c\u968f\u540e\u7528\u5b83\u4eec\u5b9a\u4e49\u64cd\u4f5c\u7b26\uff0c\u6216\u8005\u628a\u5b83\u4eec\u7528\u4e8e\u7d22\u5f15\u8868\u8fbe\u5f0f\u3002\n   </p><p>\n    \u5728 <span>PostgreSQL</span> 9.0 \u53ca\u66f4\u9ad8\u7248\u672c\u4e2d\uff0c<span>PL/pgSQL</span> \u9ed8\u8ba4\u5b89\u88c5\u3002\u4e0d\u8fc7\u5b83\u4ecd\u7136\u662f\u4e00\u4e2a\u53ef\u8f7d\u5165\u6a21\u5757\uff0c\u56e0\u6b64\u5bf9\u5b89\u5168\u6027\u7279\u522b\u654f\u611f\u7684\u7ba1\u7406\u5458\u4e5f\u53ef\u4ee5\u9009\u62e9\u79fb\u9664\u5b83\u3002\n   </p><p><a href=\"/zh/docs/19/plpgsql-overview.html\" rel=\"nofollow\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>", "body_sha256": "238fdb5515f13db845e5c3b4f8df20971edcb377456a3dd22149c9c60a4a4d6b", "content_hash": "1fe42b57fdee39487782954b77ecf2a8018dd5c2c6098d5882b6511c511b013d", "source_database": "center", "source_revision": "af105fc8e960fc836a09fc2cd7f582b49fd17675d9d36631abe3a565bfd7d701"}, "signature": "", "tables_zh": [], "attributes": {"kind": "Bundled procedural-language variant", "family": "PL/pgSQL", "comment": "PL/pgSQL procedural language", "handler": "plpgsql_call_handler", "library": "$libdir/plpgsql", "trusted": "t", "validator": "plpgsql_validator", "inline_handler": "plpgsql_inline_handler", "default_version": "1.0", "module_pathname": "$libdir/plpgsql"}, "description": ["\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002"], "manual_html": "", "manual_path": "/docs/19/plpgsql-overview.html", "sections_zh": [{"code": "/* src/pl/plpgsql/src/plpgsql--1.0.sql */\n\nCREATE FUNCTION plpgsql_call_handler() RETURNS language_handler\n  LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_inline_handler(internal) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_validator(oid) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE TRUSTED LANGUAGE plpgsql\n  HANDLER plpgsql_call_handler\n  INLINE plpgsql_inline_handler\n  VALIDATOR plpgsql_validator;\n\n-- The language object, but not the functions, can be owned by a non-superuser.\nALTER LANGUAGE plpgsql OWNER TO @extowner@;\n\nCOMMENT ON LANGUAGE plpgsql IS 'PL/pgSQL procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "localization": {"status": "complete", "sources": [{"url": "/docs/19/plpgsql-control-structures.html", "method": "same-major semantic node", "sha256": "89bba069d83284a7f39cf542da6f1cdc233bc01d8f06fbc5a07b9e5411ea23ce", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/19/plpgsql-cursors.html", "method": "same-major semantic node", "sha256": "bc78a42a5484e6f36b6499f4aea383c0264a6b903953535211a40791793beb8d", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/19/plpgsql-declarations.html", "method": "same-major semantic node", "sha256": "19e49ba50a986a4cdbb72a4831477b3f81278d121488afd8c633bf8b2f993bbc", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/19/plpgsql-development-tips.html", "method": "same-major semantic node", "sha256": "01ab6419fb8540cbfd39a8127a86fba4e217bfaa0eb420aed6e1c06aeca2b9bc", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/19/plpgsql-errors-and-messages.html", "method": "same-major semantic node", "sha256": "b7c9ca9c110202594c121ca9e063afc07363c3cff162575b1c11cc8c245e37fd", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/19/plpgsql-expressions.html", "method": "same-major semantic node", "sha256": "dc579849f473afea713a7fd83c523041998537c4a488f3ac7c1c7198b5df142b", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/19/plpgsql-implementation.html", "method": "same-major semantic node", "sha256": "d159b77bd9ee06ea3d0e055f0061f2bd96afbf0ab775404480985f4e65816c55", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/19/plpgsql-overview.html", "method": "same-major semantic node", "sha256": "b79b36fbfb75cd357c9605bbfefb7333a218b11c9763c581002ebcde1c6ec532", "language": "zh", "matched_nodes": ["#PLPGSQL-OVERVIEW/div[0]", "#PLPGSQL-OVERVIEW/div[1]/dl[0]/dt[0]", "#PLPGSQL-OVERVIEW/div[1]/dl[0]/dt[1]", "#PLPGSQL-OVERVIEW/div[7]/p[2]", "#PLPGSQL-OVERVIEW/div[7]/p[3]", "#PLPGSQL-OVERVIEW/div[7]/p[7]", "page-title/h2"]}, {"url": "/docs/19/plpgsql-porting.html", "method": "same-major semantic node", "sha256": "d3a42ceb845dda49adf3d11e6a662f4f45d1a47957fae370a29e9200ec7ac707", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/19/plpgsql-statements.html", "method": "same-major semantic node", "sha256": "17cce1af12d14ac571e51ce73f2c02c3d823fa85df5a848fc7f1c6c2e1cd334a", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/19/plpgsql-structure.html", "method": "same-major semantic node", "sha256": "45a875da7a78db853c1d659e487a5a5607bbbc1b24dbab9aa527da774533c769", "language": "zh", "matched_nodes": ["#PLPGSQL-STRUCTURE/div[13]/p[1]/span[1]", "page-title/h2"]}, {"url": "/docs/19/plpgsql-transactions.html", "method": "same-major semantic node", "sha256": "3e4822a106b74cef8dcbff824e1ab6351e02fb3cbefa95b17f6ad327f3045774", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/19/plpgsql-trigger.html", "method": "same-major semantic node", "sha256": "4056d789f19f1a18998c4ebfadc64306022a3e9bcfc83fc8d56417a34ffc1868", "language": "zh", "matched_nodes": ["page-title/h2"]}], "language": "zh", "original_text": {"/versions/19/description/0": "PL/pgSQL procedural language", "/versions/19/facts/0/label": "Kind", "/versions/19/facts/0/value": "Bundled procedural-language variant", "/versions/19/facts/1/label": "Family", "/versions/19/facts/1/value": "PL/pgSQL", "/versions/19/facts/2/label": "Trusted", "/versions/19/facts/3/label": "Handler", "/versions/19/facts/4/label": "Inline handler", "/versions/19/facts/5/label": "Validator", "/versions/19/facts/6/label": "Library", "/versions/19/facts/7/label": "Default version", "/versions/19/facts/8/label": "Module pathname", "/versions/19/facts/9/label": "Comment", "/versions/19/facts/9/value": "PL/pgSQL procedural language", "/versions/19/related/0/label": "plpgsql-control-structures", "/versions/19/related/1/label": "plpgsql-cursors", "/versions/19/related/2/label": "plpgsql-declarations", "/versions/19/related/3/label": "plpgsql-development-tips", "/versions/19/related/4/label": "plpgsql-errors-and-messages", "/versions/19/related/5/label": "plpgsql-expressions", "/versions/19/related/6/label": "plpgsql-implementation", "/versions/19/related/7/label": "plpgsql-overview", "/versions/19/related/8/label": "plpgsql-porting", "/versions/19/related/9/label": "plpgsql-statements", "/versions/19/related/10/label": "plpgsql-structure", "/versions/19/related/11/label": "plpgsql-transactions", "/versions/19/related/12/label": "plpgsql-trigger", "/versions/19/sections/0/title": "Installation definition from the matching source archive", "/versions/19/sections/0/paragraphs/0": "This extension is shipped with the source. Its presence does not establish that the language or external runtime is installed."}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "136d64ee2584ed5cc82f4f2f457c51347e613be74f96779fd4a9031cf98b0559", "canonical_center_text_hash": "1fe42b57fdee39487782954b77ecf2a8018dd5c2c6098d5882b6511c511b013d"}, "source_files": {"src/pl/plpgsql/src/plpgsql.control": "9457c3f51d6bdfab93f13080d177795a9274c025e378fb613218342e3a3c7b45", "src/pl/plpgsql/src/plpgsql--1.0.sql": "f4e7e05438808ac0da0b3801397d16e36102969af7e2ffc982def5b7524fb557"}, "description_zh": "\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002", "comparison_data": {"kind": "Bundled procedural-language variant", "family": "PL/pgSQL", "handler": "plpgsql_call_handler", "library": "$libdir/plpgsql", "trusted": "t", "validator": "plpgsql_validator", "inline_handler": "plpgsql_inline_handler", "default_version": "1.0"}, "comparison_hash": "e85051f39a242ce658cedd87ac97437817f0f1b2baf992d8d37c9d29df8b558b", "manual_language": "zh", "description_zh_html": "<p>\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002</p><dl><dt>\u8fd0\u7b97\u7b26\u65cf</dt><dd><code>PL/pgSQL</code></dd><dt>\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_call_handler</code></dd><dt>\u5e93</dt><dd><code>$libdir/plpgsql</code></dd><dt>\u53d7\u4fe1\u4efb</dt><dd><code>\u662f</code></dd><dt>\u9a8c\u8bc1\u51fd\u6570</dt><dd><code>plpgsql_validator</code></dd><dt>\u5185\u8054\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_inline_handler</code></dd><dt>\u9ed8\u8ba4\u7248\u672c</dt><dd><code>1.0</code></dd><dt>\u6a21\u5757\u8def\u5f84</dt><dd><code>$libdir/plpgsql</code></dd></dl><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n<span>PL/pgSQL</span> \u662f\u4e00\u79cd\u7528\u4e8e <span>PostgreSQL</span> \u6570\u636e\u5e93\u7cfb\u7edf\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\u3002<span>PL/pgSQL</span> \u7684\u8bbe\u8ba1\u76ee\u6807\uff0c\u662f\u521b\u5efa\u4e00\u79cd\u5177\u5907\u4ee5\u4e0b\u7279\u6027\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\uff1a\n\n    </p><p>\n    \u7528 <span>PL/pgSQL</span> \u521b\u5efa\u7684\u51fd\u6570\uff0c\u53ef\u4ee5\u7528\u4e8e\u4efb\u4f55\u53ef\u4ee5\u4f7f\u7528\u5185\u7f6e\u51fd\u6570\u7684\u5730\u65b9\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u521b\u5efa\u5e26\u6709\u590d\u6742\u6761\u4ef6\u903b\u8f91\u7684\u8ba1\u7b97\u51fd\u6570\uff0c\u968f\u540e\u7528\u5b83\u4eec\u5b9a\u4e49\u64cd\u4f5c\u7b26\uff0c\u6216\u8005\u628a\u5b83\u4eec\u7528\u4e8e\u7d22\u5f15\u8868\u8fbe\u5f0f\u3002\n   </p><p>\n    \u5728 <span>PostgreSQL</span> 9.0 \u53ca\u66f4\u9ad8\u7248\u672c\u4e2d\uff0c<span>PL/pgSQL</span> \u9ed8\u8ba4\u5b89\u88c5\u3002\u4e0d\u8fc7\u5b83\u4ecd\u7136\u662f\u4e00\u4e2a\u53ef\u8f7d\u5165\u6a21\u5757\uff0c\u56e0\u6b64\u5bf9\u5b89\u5168\u6027\u7279\u522b\u654f\u611f\u7684\u7ba1\u7406\u5458\u4e5f\u53ef\u4ee5\u9009\u62e9\u79fb\u9664\u5b83\u3002\n   </p><p><a href=\"/zh/docs/19/plpgsql-overview.html\" rel=\"nofollow\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>", "source_revalidation": {"kind": "static-same-version-source-and-manual-replay", "audit": "wiki-audit-20261023", "runtime_rerun": false, "compared_fields": "entity membership and source-derived facts; presentation markup normalized", "source_revision": "af105fc8e960fc836a09fc2cd7f582b49fd17675d9d36631abe3a565bfd7d701", "previous_source_revision": "83157ee9c599d03b2f7a3d73ef3a56ec24e0e79cc2b3501a64d1364f56398c86"}}, "20": {"facts": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "\u201c \u5916\u5c42\u5757 \u201d"}, {"label": "\u53ef\u4fe1", "value": "t"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plpgsql_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plpgsql_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plpgsql_validator"}, {"label": "\u5e93", "value": "$libdir/plpgsql"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plpgsql"}, {"label": "\u6ce8\u91ca", "value": "PL/pgSQL \u8fc7\u7a0b\u8bed\u8a00"}], "tables": [], "aliases": [], "related": [{"url": "/docs/devel/plpgsql-control-structures.html", "label": "\u63a7\u5236\u7ed3\u6784"}, {"url": "/docs/devel/plpgsql-cursors.html", "label": "\u6e38\u6807"}, {"url": "/docs/devel/plpgsql-declarations.html", "label": "\u58f0\u660e"}, {"url": "/docs/devel/plpgsql-development-tips.html", "label": "PL/pgSQL \u5f00\u53d1\u63d0\u793a"}, {"url": "/docs/devel/plpgsql-errors-and-messages.html", "label": "\u9519\u8bef\u548c\u6d88\u606f"}, {"url": "/docs/devel/plpgsql-expressions.html", "label": "\u8868\u8fbe\u5f0f"}, {"url": "/docs/devel/plpgsql-implementation.html", "label": "PL/pgSQL \u5185\u90e8\u673a\u5236"}, {"url": "/docs/devel/plpgsql-overview.html", "label": "\u6982\u8ff0"}, {"url": "/docs/devel/plpgsql-porting.html", "label": "\u4ece Oracle PL/SQL \u79fb\u690d"}, {"url": "/docs/devel/plpgsql-statements.html", "label": "\u57fa\u672c\u8bed\u53e5"}, {"url": "/docs/devel/plpgsql-structure.html", "label": "PL/pgSQL \u7684\u7ed3\u6784"}, {"url": "/docs/devel/plpgsql-transactions.html", "label": "\u4e8b\u52a1\u7ba1\u7406"}, {"url": "/docs/devel/plpgsql-trigger.html", "label": "\u89e6\u53d1\u5668\u51fd\u6570"}], "release": {"ref": "https://ftp.postgresql.org/pub/snapshot/dev/postgresql-snapshot.tar.bz2", "label": "20devel", "major": "20", "channel": "devel", "revision": "49c73aa4c9cacef8ca979276a28ac416c08e9e54c9baee4ae5fd116a35fa13ac", "source_sha256": "49c73aa4c9cacef8ca979276a28ac416c08e9e54c9baee4ae5fd116a35fa13ac", "catalog_fingerprint": "1ae459dc2ba59b6e0a27d5cbeebb27c417dd0be8ddf853fb0c1e533d4e449c9a"}, "sources": [{"url": "https://ftp.postgresql.org/pub/snapshot/dev/postgresql-snapshot.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "49c73aa4c9cacef8ca979276a28ac416c08e9e54c9baee4ae5fd116a35fa13ac"}, {"url": "/docs/devel/plpgsql-overview.html", "path": "plpgsql-overview.html", "label": "PostgreSQL 20 English manual", "sha256": "73b5ad479cda486e35edbae88323ceb04d381b2836e27518bd67fbc704483d2d"}], "zh_from": {"kind": "same-version-chinese-manual-with-source-derived-structured-summary", "manual": {"url": "/zh/docs/devel/plpgsql-overview.html", "anchor": "", "locale": "zh-Hans", "version": "20", "build_id": 111, "page_key": "plpgsql-overview.html", "extraction": "concept-introduction", "source_hash": "fb57072116de3250037106a79c592815c99000850c14695a262c0cfd162a3652", "fragment_sha256": "99416e90c5ea4b3583ed48b35295883d16c6c2caba40c87e8761304b0590c308", "source_revision": "sha256:49c73aa4c9cacef8ca979276a28ac416c08e9e54c9baee4ae5fd116a35fa13ac", "translation_revision": "git:b1b500221dbe5437cfca004d6b04d3f6e422765d;html-sha256:98c980963b401d40bd50df72b909e7523e3148b8fdb48edd897de2efb67e5235", "translated_from_revision": "sha256:49c73aa4c9cacef8ca979276a28ac416c08e9e54c9baee4ae5fd116a35fa13ac"}, "body_sha256": "519b65b327162658d900b639913a809e81d6499fef29c32fddf4634d2ef3c28c", "runtime_rerun": false, "authored_translation": "source-derived-structured-summary", "source_facts_revision": "49c73aa4c9cacef8ca979276a28ac416c08e9e54c9baee4ae5fd116a35fa13ac"}, "facts_zh": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "\u201c \u5916\u5c42\u5757 \u201d"}, {"label": "\u53ef\u4fe1", "value": "t"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plpgsql_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plpgsql_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plpgsql_validator"}, {"label": "\u5e93", "value": "$libdir/plpgsql"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plpgsql"}, {"label": "\u6ce8\u91ca", "value": "PL/pgSQL \u8fc7\u7a0b\u8bed\u8a00"}], "sections": [{"code": "/* src/pl/plpgsql/src/plpgsql--1.0.sql */\n\nCREATE FUNCTION plpgsql_call_handler() RETURNS language_handler\n  LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_inline_handler(internal) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_validator(oid) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE TRUSTED LANGUAGE plpgsql\n  HANDLER plpgsql_call_handler\n  INLINE plpgsql_inline_handler\n  VALIDATOR plpgsql_validator;\n\n-- The language object, but not the functions, can be owned by a non-superuser.\nALTER LANGUAGE plpgsql OWNER TO @extowner@;\n\nCOMMENT ON LANGUAGE plpgsql IS 'PL/pgSQL procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "center_zh": {"title": "plpgsql", "locale": "zh-Hans", "source": {"key": "plpgsql", "locale": "zh-Hans", "version": "20", "text_hash": "81ce97bf2357a58e675ad383f4450eb9228ab55e949a4a1f46249f2a474ad99a", "collection": "language", "dataset_hash": "7c31b524dfe136022d39a6ae8dcfac6b3bbd5f8fdaf422536599981252aff0c9", "source_database": "center", "source_revision": "49c73aa4c9cacef8ca979276a28ac416c08e9e54c9baee4ae5fd116a35fa13ac"}, "payload": {"facts": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "\u201c \u5916\u5c42\u5757 \u201d"}, {"label": "\u53ef\u4fe1", "value": "t"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plpgsql_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plpgsql_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plpgsql_validator"}, {"label": "\u5e93", "value": "$libdir/plpgsql"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plpgsql"}, {"label": "\u6ce8\u91ca", "value": "PL/pgSQL \u8fc7\u7a0b\u8bed\u8a00"}], "tables": [], "zh_from": {"kind": "same-version-chinese-manual-with-source-derived-structured-summary", "manual": {"url": "/zh/docs/devel/plpgsql-overview.html", "anchor": "", "locale": "zh-Hans", "version": "20", "build_id": 111, "page_key": "plpgsql-overview.html", "extraction": "concept-introduction", "source_hash": "fb57072116de3250037106a79c592815c99000850c14695a262c0cfd162a3652", "fragment_sha256": "99416e90c5ea4b3583ed48b35295883d16c6c2caba40c87e8761304b0590c308", "source_revision": "sha256:49c73aa4c9cacef8ca979276a28ac416c08e9e54c9baee4ae5fd116a35fa13ac", "translation_revision": "git:b1b500221dbe5437cfca004d6b04d3f6e422765d;html-sha256:98c980963b401d40bd50df72b909e7523e3148b8fdb48edd897de2efb67e5235", "translated_from_revision": "sha256:49c73aa4c9cacef8ca979276a28ac416c08e9e54c9baee4ae5fd116a35fa13ac"}, "body_sha256": "519b65b327162658d900b639913a809e81d6499fef29c32fddf4634d2ef3c28c", "runtime_rerun": false, "authored_translation": "source-derived-structured-summary", "source_facts_revision": "49c73aa4c9cacef8ca979276a28ac416c08e9e54c9baee4ae5fd116a35fa13ac"}, "sections": [{"code": "/* src/pl/plpgsql/src/plpgsql--1.0.sql */\n\nCREATE FUNCTION plpgsql_call_handler() RETURNS language_handler\n  LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_inline_handler(internal) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_validator(oid) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE TRUSTED LANGUAGE plpgsql\n  HANDLER plpgsql_call_handler\n  INLINE plpgsql_inline_handler\n  VALIDATOR plpgsql_validator;\n\n-- The language object, but not the functions, can be owned by a non-superuser.\nALTER LANGUAGE plpgsql OWNER TO @extowner@;\n\nCOMMENT ON LANGUAGE plpgsql IS 'PL/pgSQL procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "description_zh": "\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002", "description_zh_html": "<p>\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002</p><dl><dt>\u8fd0\u7b97\u7b26\u65cf</dt><dd><code>PL/pgSQL</code></dd><dt>\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_call_handler</code></dd><dt>\u5e93</dt><dd><code>$libdir/plpgsql</code></dd><dt>\u53d7\u4fe1\u4efb</dt><dd><code>\u662f</code></dd><dt>\u9a8c\u8bc1\u51fd\u6570</dt><dd><code>plpgsql_validator</code></dd><dt>\u5185\u8054\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_inline_handler</code></dd><dt>\u9ed8\u8ba4\u7248\u672c</dt><dd><code>1.0</code></dd><dt>\u6a21\u5757\u8def\u5f84</dt><dd><code>$libdir/plpgsql</code></dd></dl><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n<span class=\"application\">PL/pgSQL</span> \u662f\u4e00\u79cd\u7528\u4e8e <span class=\"productname\">PostgreSQL</span> \u6570\u636e\u5e93\u7cfb\u7edf\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\u3002<span class=\"application\">PL/pgSQL</span> \u7684\u8bbe\u8ba1\u76ee\u6807\uff0c\u662f\u521b\u5efa\u4e00\u79cd\u5177\u5907\u4ee5\u4e0b\u7279\u6027\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\uff1a\n\n    </p><p>\n    \u7528 <span class=\"application\">PL/pgSQL</span> \u521b\u5efa\u7684\u51fd\u6570\uff0c\u53ef\u4ee5\u7528\u4e8e\u4efb\u4f55\u53ef\u4ee5\u4f7f\u7528\u5185\u7f6e\u51fd\u6570\u7684\u5730\u65b9\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u521b\u5efa\u5e26\u6709\u590d\u6742\u6761\u4ef6\u903b\u8f91\u7684\u8ba1\u7b97\u51fd\u6570\uff0c\u968f\u540e\u7528\u5b83\u4eec\u5b9a\u4e49\u64cd\u4f5c\u7b26\uff0c\u6216\u8005\u628a\u5b83\u4eec\u7528\u4e8e\u7d22\u5f15\u8868\u8fbe\u5f0f\u3002\n   </p><p>\n    \u5728 <span class=\"productname\">PostgreSQL</span> 9.0 \u53ca\u66f4\u9ad8\u7248\u672c\u4e2d\uff0c<span class=\"application\">PL/pgSQL</span> \u9ed8\u8ba4\u5b89\u88c5\u3002\u4e0d\u8fc7\u5b83\u4ecd\u7136\u662f\u4e00\u4e2a\u53ef\u8f7d\u5165\u6a21\u5757\uff0c\u56e0\u6b64\u5bf9\u5b89\u5168\u6027\u7279\u522b\u654f\u611f\u7684\u7ba1\u7406\u5458\u4e5f\u53ef\u4ee5\u9009\u62e9\u79fb\u9664\u5b83\u3002\n   </p><p><a href=\"/zh/docs/devel/plpgsql-overview.html\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>"}, "summary": "\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002", "version": "20", "link_map": {"/zh/docs/devel/plpgsql-overview.html": "/docs/devel/plpgsql-overview.html"}, "body_html": "<p>\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002</p><dl><dt>\u8fd0\u7b97\u7b26\u65cf</dt><dd><code>PL/pgSQL</code></dd><dt>\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_call_handler</code></dd><dt>\u5e93</dt><dd><code>$libdir/plpgsql</code></dd><dt>\u53d7\u4fe1\u4efb</dt><dd><code>\u662f</code></dd><dt>\u9a8c\u8bc1\u51fd\u6570</dt><dd><code>plpgsql_validator</code></dd><dt>\u5185\u8054\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_inline_handler</code></dd><dt>\u9ed8\u8ba4\u7248\u672c</dt><dd><code>1.0</code></dd><dt>\u6a21\u5757\u8def\u5f84</dt><dd><code>$libdir/plpgsql</code></dd></dl><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n<span>PL/pgSQL</span> \u662f\u4e00\u79cd\u7528\u4e8e <span>PostgreSQL</span> \u6570\u636e\u5e93\u7cfb\u7edf\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\u3002<span>PL/pgSQL</span> \u7684\u8bbe\u8ba1\u76ee\u6807\uff0c\u662f\u521b\u5efa\u4e00\u79cd\u5177\u5907\u4ee5\u4e0b\u7279\u6027\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\uff1a\n\n    </p><p>\n    \u7528 <span>PL/pgSQL</span> \u521b\u5efa\u7684\u51fd\u6570\uff0c\u53ef\u4ee5\u7528\u4e8e\u4efb\u4f55\u53ef\u4ee5\u4f7f\u7528\u5185\u7f6e\u51fd\u6570\u7684\u5730\u65b9\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u521b\u5efa\u5e26\u6709\u590d\u6742\u6761\u4ef6\u903b\u8f91\u7684\u8ba1\u7b97\u51fd\u6570\uff0c\u968f\u540e\u7528\u5b83\u4eec\u5b9a\u4e49\u64cd\u4f5c\u7b26\uff0c\u6216\u8005\u628a\u5b83\u4eec\u7528\u4e8e\u7d22\u5f15\u8868\u8fbe\u5f0f\u3002\n   </p><p>\n    \u5728 <span>PostgreSQL</span> 9.0 \u53ca\u66f4\u9ad8\u7248\u672c\u4e2d\uff0c<span>PL/pgSQL</span> \u9ed8\u8ba4\u5b89\u88c5\u3002\u4e0d\u8fc7\u5b83\u4ecd\u7136\u662f\u4e00\u4e2a\u53ef\u8f7d\u5165\u6a21\u5757\uff0c\u56e0\u6b64\u5bf9\u5b89\u5168\u6027\u7279\u522b\u654f\u611f\u7684\u7ba1\u7406\u5458\u4e5f\u53ef\u4ee5\u9009\u62e9\u79fb\u9664\u5b83\u3002\n   </p><p><a href=\"/zh/docs/devel/plpgsql-overview.html\" rel=\"nofollow\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>", "body_sha256": "5be64317e66ceaf32ecd3d4a7836a047772e649517cb66c77bff55abd4ed92f9", "content_hash": "81ce97bf2357a58e675ad383f4450eb9228ab55e949a4a1f46249f2a474ad99a", "source_database": "center", "source_revision": "49c73aa4c9cacef8ca979276a28ac416c08e9e54c9baee4ae5fd116a35fa13ac"}, "signature": "", "tables_zh": [], "attributes": {"kind": "Bundled procedural-language variant", "family": "PL/pgSQL", "comment": "PL/pgSQL procedural language", "handler": "plpgsql_call_handler", "library": "$libdir/plpgsql", "trusted": "t", "validator": "plpgsql_validator", "inline_handler": "plpgsql_inline_handler", "default_version": "1.0", "module_pathname": "$libdir/plpgsql"}, "description": ["\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002"], "manual_html": "", "manual_path": "/docs/devel/plpgsql-overview.html", "sections_zh": [{"code": "/* src/pl/plpgsql/src/plpgsql--1.0.sql */\n\nCREATE FUNCTION plpgsql_call_handler() RETURNS language_handler\n  LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_inline_handler(internal) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_validator(oid) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE TRUSTED LANGUAGE plpgsql\n  HANDLER plpgsql_call_handler\n  INLINE plpgsql_inline_handler\n  VALIDATOR plpgsql_validator;\n\n-- The language object, but not the functions, can be owned by a non-superuser.\nALTER LANGUAGE plpgsql OWNER TO @extowner@;\n\nCOMMENT ON LANGUAGE plpgsql IS 'PL/pgSQL procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "localization": {"status": "complete", "sources": [{"url": "/docs/devel/plpgsql-control-structures.html", "method": "same-major semantic node", "sha256": "bc5dce37df515326829540e11d1fb047a70a3c911249c6395896b980ee9eabc0", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/devel/plpgsql-cursors.html", "method": "same-major semantic node", "sha256": "58642a180df5f015a05d94c5d78b45ed1d39fc485da69a840e1fa03dbd646aa3", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/devel/plpgsql-declarations.html", "method": "same-major semantic node", "sha256": "d2511585c4782cee83516ab74957e01c35fb25ed462e0f37441e9207b3f085f6", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/devel/plpgsql-development-tips.html", "method": "same-major semantic node", "sha256": "7e8c06f7a69c0879c91209ef14f51aab7b94ef40c7eb08132c67e4e351e04e3e", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/devel/plpgsql-errors-and-messages.html", "method": "same-major semantic node", "sha256": "e031aa8bf86cb688f0318bc1d262e4b81e24f78745e745090cc3b18672f24c05", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/devel/plpgsql-expressions.html", "method": "same-major semantic node", "sha256": "90452c44e5ef40a6f2b7424ae1172edb86c39d5cbfa788920b29986645f1ef4c", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/devel/plpgsql-implementation.html", "method": "same-major semantic node", "sha256": "3cc93b51145ef7fcaa0cc21dbddaef0d85fa074aca9feece3b4711ea9ef8c140", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/devel/plpgsql-overview.html", "method": "same-major semantic node", "sha256": "9f3cebb104f4f7fbd0a078f826f750bf73e364eda4f9a4294de27b2ccea204d9", "language": "zh", "matched_nodes": ["#PLPGSQL-OVERVIEW/div[0]", "#PLPGSQL-OVERVIEW/div[1]/dl[0]/dt[0]", "#PLPGSQL-OVERVIEW/div[1]/dl[0]/dt[1]", "#PLPGSQL-OVERVIEW/div[7]/p[2]", "#PLPGSQL-OVERVIEW/div[7]/p[3]", "#PLPGSQL-OVERVIEW/div[7]/p[7]", "page-title/h2"]}, {"url": "/docs/devel/plpgsql-porting.html", "method": "same-major semantic node", "sha256": "50242fc5104f5a1da33d459d42ae0bc4271954a98e11f043b9b0e047e92b74dd", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/devel/plpgsql-statements.html", "method": "same-major semantic node", "sha256": "bd035a4f311bbeb44bb47b0cdf68345b01290f461b909206fa7f7009aaddcf91", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/devel/plpgsql-structure.html", "method": "same-major semantic node", "sha256": "72f415c1e185815c00206af2faf2af869649e0883d459529407c3ed7174d90c1", "language": "zh", "matched_nodes": ["#PLPGSQL-STRUCTURE/div[13]/p[1]/span[1]", "page-title/h2"]}, {"url": "/docs/devel/plpgsql-transactions.html", "method": "same-major semantic node", "sha256": "7c7cf1ded06b8b29815493aeb0afafa6bdd67e619df599870d531b3c09a6a81d", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/devel/plpgsql-trigger.html", "method": "same-major semantic node", "sha256": "469e4be2030ddc72e6855f7e81c2d37f8e4d1838f0c7f62c36d86204106e787f", "language": "zh", "matched_nodes": ["page-title/h2"]}], "language": "zh", "original_text": {"/summary": "PL/pgSQL procedural language", "/category": "PL/pgSQL", "/versions/20/description/0": "PL/pgSQL procedural language", "/versions/20/facts/0/label": "Kind", "/versions/20/facts/0/value": "Bundled procedural-language variant", "/versions/20/facts/1/label": "Family", "/versions/20/facts/1/value": "PL/pgSQL", "/versions/20/facts/2/label": "Trusted", "/versions/20/facts/3/label": "Handler", "/versions/20/facts/4/label": "Inline handler", "/versions/20/facts/5/label": "Validator", "/versions/20/facts/6/label": "Library", "/versions/20/facts/7/label": "Default version", "/versions/20/facts/8/label": "Module pathname", "/versions/20/facts/9/label": "Comment", "/versions/20/facts/9/value": "PL/pgSQL procedural language", "/versions/20/related/0/label": "plpgsql-control-structures", "/versions/20/related/1/label": "plpgsql-cursors", "/versions/20/related/2/label": "plpgsql-declarations", "/versions/20/related/3/label": "plpgsql-development-tips", "/versions/20/related/4/label": "plpgsql-errors-and-messages", "/versions/20/related/5/label": "plpgsql-expressions", "/versions/20/related/6/label": "plpgsql-implementation", "/versions/20/related/7/label": "plpgsql-overview", "/versions/20/related/8/label": "plpgsql-porting", "/versions/20/related/9/label": "plpgsql-statements", "/versions/20/related/10/label": "plpgsql-structure", "/versions/20/related/11/label": "plpgsql-transactions", "/versions/20/related/12/label": "plpgsql-trigger", "/versions/20/sections/0/title": "Installation definition from the matching source archive", "/versions/20/sections/0/paragraphs/0": "This extension is shipped with the source. Its presence does not establish that the language or external runtime is installed."}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "e3e54ad6f84a96ee3faffec4c238cead61c899bdc9643f7c8bdac7587d754b26", "canonical_center_text_hash": "81ce97bf2357a58e675ad383f4450eb9228ab55e949a4a1f46249f2a474ad99a"}, "source_files": {"src/pl/plpgsql/src/plpgsql.control": "9457c3f51d6bdfab93f13080d177795a9274c025e378fb613218342e3a3c7b45", "src/pl/plpgsql/src/plpgsql--1.0.sql": "f4e7e05438808ac0da0b3801397d16e36102969af7e2ffc982def5b7524fb557"}, "description_zh": "\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002", "comparison_data": {"kind": "Bundled procedural-language variant", "family": "PL/pgSQL", "handler": "plpgsql_call_handler", "library": "$libdir/plpgsql", "trusted": "t", "validator": "plpgsql_validator", "inline_handler": "plpgsql_inline_handler", "default_version": "1.0"}, "comparison_hash": "e85051f39a242ce658cedd87ac97437817f0f1b2baf992d8d37c9d29df8b558b", "manual_language": "zh", "description_zh_html": "<p>\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002</p><dl><dt>\u8fd0\u7b97\u7b26\u65cf</dt><dd><code>PL/pgSQL</code></dd><dt>\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_call_handler</code></dd><dt>\u5e93</dt><dd><code>$libdir/plpgsql</code></dd><dt>\u53d7\u4fe1\u4efb</dt><dd><code>\u662f</code></dd><dt>\u9a8c\u8bc1\u51fd\u6570</dt><dd><code>plpgsql_validator</code></dd><dt>\u5185\u8054\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_inline_handler</code></dd><dt>\u9ed8\u8ba4\u7248\u672c</dt><dd><code>1.0</code></dd><dt>\u6a21\u5757\u8def\u5f84</dt><dd><code>$libdir/plpgsql</code></dd></dl><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n<span>PL/pgSQL</span> \u662f\u4e00\u79cd\u7528\u4e8e <span>PostgreSQL</span> \u6570\u636e\u5e93\u7cfb\u7edf\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\u3002<span>PL/pgSQL</span> \u7684\u8bbe\u8ba1\u76ee\u6807\uff0c\u662f\u521b\u5efa\u4e00\u79cd\u5177\u5907\u4ee5\u4e0b\u7279\u6027\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\uff1a\n\n    </p><p>\n    \u7528 <span>PL/pgSQL</span> \u521b\u5efa\u7684\u51fd\u6570\uff0c\u53ef\u4ee5\u7528\u4e8e\u4efb\u4f55\u53ef\u4ee5\u4f7f\u7528\u5185\u7f6e\u51fd\u6570\u7684\u5730\u65b9\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u521b\u5efa\u5e26\u6709\u590d\u6742\u6761\u4ef6\u903b\u8f91\u7684\u8ba1\u7b97\u51fd\u6570\uff0c\u968f\u540e\u7528\u5b83\u4eec\u5b9a\u4e49\u64cd\u4f5c\u7b26\uff0c\u6216\u8005\u628a\u5b83\u4eec\u7528\u4e8e\u7d22\u5f15\u8868\u8fbe\u5f0f\u3002\n   </p><p>\n    \u5728 <span>PostgreSQL</span> 9.0 \u53ca\u66f4\u9ad8\u7248\u672c\u4e2d\uff0c<span>PL/pgSQL</span> \u9ed8\u8ba4\u5b89\u88c5\u3002\u4e0d\u8fc7\u5b83\u4ecd\u7136\u662f\u4e00\u4e2a\u53ef\u8f7d\u5165\u6a21\u5757\uff0c\u56e0\u6b64\u5bf9\u5b89\u5168\u6027\u7279\u522b\u654f\u611f\u7684\u7ba1\u7406\u5458\u4e5f\u53ef\u4ee5\u9009\u62e9\u79fb\u9664\u5b83\u3002\n   </p><p><a href=\"/zh/docs/devel/plpgsql-overview.html\" rel=\"nofollow\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>", "source_revalidation": {"kind": "static-same-version-source-and-manual-replay", "audit": "wiki-audit-20261023", "runtime_rerun": false, "compared_fields": "entity membership and source-derived facts; presentation markup normalized", "source_revision": "49c73aa4c9cacef8ca979276a28ac416c08e9e54c9baee4ae5fd116a35fa13ac", "previous_source_revision": "4d3346909b201ac1648232cf290462a7070c119326f56196f1f0253ed80fae41"}}}}, "snapshot": {"facts": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "\u201c \u5916\u5c42\u5757 \u201d"}, {"label": "\u53ef\u4fe1", "value": "t"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plpgsql_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plpgsql_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plpgsql_validator"}, {"label": "\u5e93", "value": "$libdir/plpgsql"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plpgsql"}, {"label": "\u6ce8\u91ca", "value": "PL/pgSQL \u8fc7\u7a0b\u8bed\u8a00"}], "tables": [], "aliases": [], "related": [{"url": "/docs/18/plpgsql-control-structures.html", "label": "\u63a7\u5236\u7ed3\u6784"}, {"url": "/docs/18/plpgsql-cursors.html", "label": "\u6e38\u6807"}, {"url": "/docs/18/plpgsql-declarations.html", "label": "\u58f0\u660e"}, {"url": "/docs/18/plpgsql-development-tips.html", "label": "PL/pgSQL \u5f00\u53d1\u63d0\u793a"}, {"url": "/docs/18/plpgsql-errors-and-messages.html", "label": "\u9519\u8bef\u548c\u6d88\u606f"}, {"url": "/docs/18/plpgsql-expressions.html", "label": "\u8868\u8fbe\u5f0f"}, {"url": "/docs/18/plpgsql-implementation.html", "label": "PL/pgSQL \u5185\u90e8\u673a\u5236"}, {"url": "/docs/18/plpgsql-overview.html", "label": "\u6982\u8ff0"}, {"url": "/docs/18/plpgsql-porting.html", "label": "\u4ece Oracle PL/SQL \u79fb\u690d"}, {"url": "/docs/18/plpgsql-statements.html", "label": "\u57fa\u672c\u8bed\u53e5"}, {"url": "/docs/18/plpgsql-structure.html", "label": "PL/pgSQL \u7684\u7ed3\u6784"}, {"url": "/docs/18/plpgsql-transactions.html", "label": "\u4e8b\u52a1\u7ba1\u7406"}, {"url": "/docs/18/plpgsql-trigger.html", "label": "\u89e6\u53d1\u5668\u51fd\u6570"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2", "label": "18.6", "major": "18", "channel": "stable", "revision": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f", "source_sha256": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f", "catalog_fingerprint": "65c93d6048ef30e61023a84f9680fa6a92b1c383b7eb226741170077eb078502"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"}, {"url": "/docs/18/plpgsql-overview.html", "path": "plpgsql-overview.html", "label": "PostgreSQL 18 English manual", "sha256": "7f93dfdf27c74b24d0bd355e845c7a6ff142aa9479bdcd0f203e8d37f36a3dfc"}], "zh_from": {"kind": "same-version-chinese-manual-with-source-derived-structured-summary", "manual": {"url": "/zh/docs/18/plpgsql-overview.html", "anchor": "", "locale": "zh-Hans", "version": "18", "build_id": 107, "page_key": "plpgsql-overview.html", "extraction": "concept-introduction", "source_hash": "823e74f16834ecccc7b1646058f73d72581397e4173f6c1d09d819208a967456", "fragment_sha256": "99416e90c5ea4b3583ed48b35295883d16c6c2caba40c87e8761304b0590c308", "source_revision": "unknown:rendered-translation-baseline", "translation_revision": "git:b1b500221dbe5437cfca004d6b04d3f6e422765d;html-sha256:08e987a66af27b98444a8057c256314eafa13611a3fb9e888214fc436824244b", "translated_from_revision": null}, "body_sha256": "5cbd38c7776f71429719310aa0fe8d2be6a0fc3e04318e9e6b51fdb5c99d2c27", "runtime_rerun": false, "authored_translation": "source-derived-structured-summary", "source_facts_revision": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"}, "facts_zh": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "\u201c \u5916\u5c42\u5757 \u201d"}, {"label": "\u53ef\u4fe1", "value": "t"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plpgsql_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plpgsql_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plpgsql_validator"}, {"label": "\u5e93", "value": "$libdir/plpgsql"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plpgsql"}, {"label": "\u6ce8\u91ca", "value": "PL/pgSQL \u8fc7\u7a0b\u8bed\u8a00"}], "sections": [{"code": "/* src/pl/plpgsql/src/plpgsql--1.0.sql */\n\nCREATE FUNCTION plpgsql_call_handler() RETURNS language_handler\n  LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_inline_handler(internal) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_validator(oid) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE TRUSTED LANGUAGE plpgsql\n  HANDLER plpgsql_call_handler\n  INLINE plpgsql_inline_handler\n  VALIDATOR plpgsql_validator;\n\n-- The language object, but not the functions, can be owned by a non-superuser.\nALTER LANGUAGE plpgsql OWNER TO @extowner@;\n\nCOMMENT ON LANGUAGE plpgsql IS 'PL/pgSQL procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "center_zh": {"title": "plpgsql", "locale": "zh-Hans", "source": {"key": "plpgsql", "locale": "zh-Hans", "version": "18", "text_hash": "614cdca32987589aa639709be44c911d77d711905c5a75a7e0668c907bff9e04", "collection": "language", "dataset_hash": "7c31b524dfe136022d39a6ae8dcfac6b3bbd5f8fdaf422536599981252aff0c9", "source_database": "center", "source_revision": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"}, "payload": {"facts": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "\u201c \u5916\u5c42\u5757 \u201d"}, {"label": "\u53ef\u4fe1", "value": "t"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plpgsql_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plpgsql_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plpgsql_validator"}, {"label": "\u5e93", "value": "$libdir/plpgsql"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plpgsql"}, {"label": "\u6ce8\u91ca", "value": "PL/pgSQL \u8fc7\u7a0b\u8bed\u8a00"}], "tables": [], "zh_from": {"kind": "same-version-chinese-manual-with-source-derived-structured-summary", "manual": {"url": "/zh/docs/18/plpgsql-overview.html", "anchor": "", "locale": "zh-Hans", "version": "18", "build_id": 107, "page_key": "plpgsql-overview.html", "extraction": "concept-introduction", "source_hash": "823e74f16834ecccc7b1646058f73d72581397e4173f6c1d09d819208a967456", "fragment_sha256": "99416e90c5ea4b3583ed48b35295883d16c6c2caba40c87e8761304b0590c308", "source_revision": "unknown:rendered-translation-baseline", "translation_revision": "git:b1b500221dbe5437cfca004d6b04d3f6e422765d;html-sha256:08e987a66af27b98444a8057c256314eafa13611a3fb9e888214fc436824244b", "translated_from_revision": null}, "body_sha256": "5cbd38c7776f71429719310aa0fe8d2be6a0fc3e04318e9e6b51fdb5c99d2c27", "runtime_rerun": false, "authored_translation": "source-derived-structured-summary", "source_facts_revision": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"}, "sections": [{"code": "/* src/pl/plpgsql/src/plpgsql--1.0.sql */\n\nCREATE FUNCTION plpgsql_call_handler() RETURNS language_handler\n  LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_inline_handler(internal) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_validator(oid) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE TRUSTED LANGUAGE plpgsql\n  HANDLER plpgsql_call_handler\n  INLINE plpgsql_inline_handler\n  VALIDATOR plpgsql_validator;\n\n-- The language object, but not the functions, can be owned by a non-superuser.\nALTER LANGUAGE plpgsql OWNER TO @extowner@;\n\nCOMMENT ON LANGUAGE plpgsql IS 'PL/pgSQL procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "description_zh": "\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002", "description_zh_html": "<p>\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002</p><dl><dt>\u8fd0\u7b97\u7b26\u65cf</dt><dd><code>PL/pgSQL</code></dd><dt>\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_call_handler</code></dd><dt>\u5e93</dt><dd><code>$libdir/plpgsql</code></dd><dt>\u53d7\u4fe1\u4efb</dt><dd><code>\u662f</code></dd><dt>\u9a8c\u8bc1\u51fd\u6570</dt><dd><code>plpgsql_validator</code></dd><dt>\u5185\u8054\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_inline_handler</code></dd><dt>\u9ed8\u8ba4\u7248\u672c</dt><dd><code>1.0</code></dd><dt>\u6a21\u5757\u8def\u5f84</dt><dd><code>$libdir/plpgsql</code></dd></dl><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n<span class=\"application\">PL/pgSQL</span> \u662f\u4e00\u79cd\u7528\u4e8e <span class=\"productname\">PostgreSQL</span> \u6570\u636e\u5e93\u7cfb\u7edf\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\u3002<span class=\"application\">PL/pgSQL</span> \u7684\u8bbe\u8ba1\u76ee\u6807\uff0c\u662f\u521b\u5efa\u4e00\u79cd\u5177\u5907\u4ee5\u4e0b\u7279\u6027\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\uff1a\n\n    </p><p>\n    \u7528 <span class=\"application\">PL/pgSQL</span> \u521b\u5efa\u7684\u51fd\u6570\uff0c\u53ef\u4ee5\u7528\u4e8e\u4efb\u4f55\u53ef\u4ee5\u4f7f\u7528\u5185\u7f6e\u51fd\u6570\u7684\u5730\u65b9\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u521b\u5efa\u5e26\u6709\u590d\u6742\u6761\u4ef6\u903b\u8f91\u7684\u8ba1\u7b97\u51fd\u6570\uff0c\u968f\u540e\u7528\u5b83\u4eec\u5b9a\u4e49\u64cd\u4f5c\u7b26\uff0c\u6216\u8005\u628a\u5b83\u4eec\u7528\u4e8e\u7d22\u5f15\u8868\u8fbe\u5f0f\u3002\n   </p><p>\n    \u5728 <span class=\"productname\">PostgreSQL</span> 9.0 \u53ca\u66f4\u9ad8\u7248\u672c\u4e2d\uff0c<span class=\"application\">PL/pgSQL</span> \u9ed8\u8ba4\u5b89\u88c5\u3002\u4e0d\u8fc7\u5b83\u4ecd\u7136\u662f\u4e00\u4e2a\u53ef\u8f7d\u5165\u6a21\u5757\uff0c\u56e0\u6b64\u5bf9\u5b89\u5168\u6027\u7279\u522b\u654f\u611f\u7684\u7ba1\u7406\u5458\u4e5f\u53ef\u4ee5\u9009\u62e9\u79fb\u9664\u5b83\u3002\n   </p><p><a href=\"/zh/docs/18/plpgsql-overview.html\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>"}, "summary": "\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002", "version": "18", "link_map": {"/zh/docs/18/plpgsql-overview.html": "/docs/18/plpgsql-overview.html"}, "body_html": "<p>\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002</p><dl><dt>\u8fd0\u7b97\u7b26\u65cf</dt><dd><code>PL/pgSQL</code></dd><dt>\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_call_handler</code></dd><dt>\u5e93</dt><dd><code>$libdir/plpgsql</code></dd><dt>\u53d7\u4fe1\u4efb</dt><dd><code>\u662f</code></dd><dt>\u9a8c\u8bc1\u51fd\u6570</dt><dd><code>plpgsql_validator</code></dd><dt>\u5185\u8054\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_inline_handler</code></dd><dt>\u9ed8\u8ba4\u7248\u672c</dt><dd><code>1.0</code></dd><dt>\u6a21\u5757\u8def\u5f84</dt><dd><code>$libdir/plpgsql</code></dd></dl><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n<span>PL/pgSQL</span> \u662f\u4e00\u79cd\u7528\u4e8e <span>PostgreSQL</span> \u6570\u636e\u5e93\u7cfb\u7edf\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\u3002<span>PL/pgSQL</span> \u7684\u8bbe\u8ba1\u76ee\u6807\uff0c\u662f\u521b\u5efa\u4e00\u79cd\u5177\u5907\u4ee5\u4e0b\u7279\u6027\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\uff1a\n\n    </p><p>\n    \u7528 <span>PL/pgSQL</span> \u521b\u5efa\u7684\u51fd\u6570\uff0c\u53ef\u4ee5\u7528\u4e8e\u4efb\u4f55\u53ef\u4ee5\u4f7f\u7528\u5185\u7f6e\u51fd\u6570\u7684\u5730\u65b9\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u521b\u5efa\u5e26\u6709\u590d\u6742\u6761\u4ef6\u903b\u8f91\u7684\u8ba1\u7b97\u51fd\u6570\uff0c\u968f\u540e\u7528\u5b83\u4eec\u5b9a\u4e49\u64cd\u4f5c\u7b26\uff0c\u6216\u8005\u628a\u5b83\u4eec\u7528\u4e8e\u7d22\u5f15\u8868\u8fbe\u5f0f\u3002\n   </p><p>\n    \u5728 <span>PostgreSQL</span> 9.0 \u53ca\u66f4\u9ad8\u7248\u672c\u4e2d\uff0c<span>PL/pgSQL</span> \u9ed8\u8ba4\u5b89\u88c5\u3002\u4e0d\u8fc7\u5b83\u4ecd\u7136\u662f\u4e00\u4e2a\u53ef\u8f7d\u5165\u6a21\u5757\uff0c\u56e0\u6b64\u5bf9\u5b89\u5168\u6027\u7279\u522b\u654f\u611f\u7684\u7ba1\u7406\u5458\u4e5f\u53ef\u4ee5\u9009\u62e9\u79fb\u9664\u5b83\u3002\n   </p><p><a href=\"/zh/docs/18/plpgsql-overview.html\" rel=\"nofollow\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>", "body_sha256": "5442f145b33c01272a6a7e07c4728391610e0da2e4a2c13f31ffb857841254e8", "content_hash": "614cdca32987589aa639709be44c911d77d711905c5a75a7e0668c907bff9e04", "source_database": "center", "source_revision": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"}, "signature": "", "tables_zh": [], "attributes": {"kind": "Bundled procedural-language variant", "family": "PL/pgSQL", "comment": "PL/pgSQL procedural language", "handler": "plpgsql_call_handler", "library": "$libdir/plpgsql", "trusted": "t", "validator": "plpgsql_validator", "inline_handler": "plpgsql_inline_handler", "default_version": "1.0", "module_pathname": "$libdir/plpgsql"}, "description": ["\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002"], "manual_html": "", "manual_path": "/docs/18/plpgsql-overview.html", "sections_zh": [{"code": "/* src/pl/plpgsql/src/plpgsql--1.0.sql */\n\nCREATE FUNCTION plpgsql_call_handler() RETURNS language_handler\n  LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_inline_handler(internal) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpgsql_validator(oid) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE TRUSTED LANGUAGE plpgsql\n  HANDLER plpgsql_call_handler\n  INLINE plpgsql_inline_handler\n  VALIDATOR plpgsql_validator;\n\n-- The language object, but not the functions, can be owned by a non-superuser.\nALTER LANGUAGE plpgsql OWNER TO @extowner@;\n\nCOMMENT ON LANGUAGE plpgsql IS 'PL/pgSQL procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "localization": {"status": "complete", "sources": [{"url": "/docs/18/plpgsql-control-structures.html", "method": "same-major semantic node", "sha256": "ada67e189f7bb21c228f68b06ade27ba40793629e3b7edef02e2b5d6279fabf0", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plpgsql-cursors.html", "method": "same-major semantic node", "sha256": "b509296f78ac16f45e5e4f995abea5af4d1b0fc306df6a074da97792a031fefa", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plpgsql-declarations.html", "method": "same-major semantic node", "sha256": "db78dc56c29a0a2eda625d4ce249ba1584670d6e0441e85e0dee0e3d7751b9ca", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plpgsql-development-tips.html", "method": "same-major semantic node", "sha256": "365a2e3bccf53d1a06bed9044b2836240f7e26eb0dea8e2344f29f80712814f0", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plpgsql-errors-and-messages.html", "method": "same-major semantic node", "sha256": "c508d55dc74fe58a3475136617ca5b57c9a11d1988ede37a3b2b08253e8af7c0", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plpgsql-expressions.html", "method": "same-major semantic node", "sha256": "6bc25685a7dce85be35a519903038017518816d66235ad4f5945c719dab415af", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plpgsql-implementation.html", "method": "same-major semantic node", "sha256": "ebf43a851c80e2e5e914ebb1a65e638706168327170118129f57ea714fa29587", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plpgsql-overview.html", "method": "same-major semantic node", "sha256": "19b6cf613a6de3f176d87e839b976139940ee270343ffe518150c466814f1801", "language": "zh", "matched_nodes": ["#PLPGSQL-OVERVIEW/div[0]", "#PLPGSQL-OVERVIEW/div[1]/dl[0]/dt[0]", "#PLPGSQL-OVERVIEW/div[1]/dl[0]/dt[1]", "#PLPGSQL-OVERVIEW/div[7]/p[2]", "#PLPGSQL-OVERVIEW/div[7]/p[3]", "#PLPGSQL-OVERVIEW/div[7]/p[7]", "page-title/h2"]}, {"url": "/docs/18/plpgsql-porting.html", "method": "same-major semantic node", "sha256": "7d60fcc82d4faed376ac1e8827a9a5f5f8fe64b464dcb20342aa35ce0ec4472c", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plpgsql-statements.html", "method": "same-major semantic node", "sha256": "d85aaf74925d9df547f2952aa145e11a4b6984b15f053dd2007bde86c92e4a6b", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plpgsql-structure.html", "method": "same-major semantic node", "sha256": "4193364a82ea89eedb7dda01230ddfda4609cff4472ac0bb08f928a0b3c37061", "language": "zh", "matched_nodes": ["#PLPGSQL-STRUCTURE/div[13]/p[1]/span[1]", "page-title/h2"]}, {"url": "/docs/18/plpgsql-transactions.html", "method": "same-major semantic node", "sha256": "b4e3ae2e84e1aea7b493d59a9c307cad44cf94ab229e662b2739e15933b48186", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plpgsql-trigger.html", "method": "same-major semantic node", "sha256": "0a55669b1ee519ba154ee5f54040f2f6410fb055ab43b99c170b1ec878972050", "language": "zh", "matched_nodes": ["page-title/h2"]}], "language": "zh", "original_text": {"/versions/18/description/0": "PL/pgSQL procedural language", "/versions/18/facts/0/label": "Kind", "/versions/18/facts/0/value": "Bundled procedural-language variant", "/versions/18/facts/1/label": "Family", "/versions/18/facts/1/value": "PL/pgSQL", "/versions/18/facts/2/label": "Trusted", "/versions/18/facts/3/label": "Handler", "/versions/18/facts/4/label": "Inline handler", "/versions/18/facts/5/label": "Validator", "/versions/18/facts/6/label": "Library", "/versions/18/facts/7/label": "Default version", "/versions/18/facts/8/label": "Module pathname", "/versions/18/facts/9/label": "Comment", "/versions/18/facts/9/value": "PL/pgSQL procedural language", "/versions/18/related/0/label": "plpgsql-control-structures", "/versions/18/related/1/label": "plpgsql-cursors", "/versions/18/related/2/label": "plpgsql-declarations", "/versions/18/related/3/label": "plpgsql-development-tips", "/versions/18/related/4/label": "plpgsql-errors-and-messages", "/versions/18/related/5/label": "plpgsql-expressions", "/versions/18/related/6/label": "plpgsql-implementation", "/versions/18/related/7/label": "plpgsql-overview", "/versions/18/related/8/label": "plpgsql-porting", "/versions/18/related/9/label": "plpgsql-statements", "/versions/18/related/10/label": "plpgsql-structure", "/versions/18/related/11/label": "plpgsql-transactions", "/versions/18/related/12/label": "plpgsql-trigger", "/versions/18/sections/0/title": "Installation definition from the matching source archive", "/versions/18/sections/0/paragraphs/0": "This extension is shipped with the source. Its presence does not establish that the language or external runtime is installed."}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "a1e46654a895217c71be87a69663dd21409a71124fbf0e5dda7a0b724f725ab6", "canonical_center_text_hash": "614cdca32987589aa639709be44c911d77d711905c5a75a7e0668c907bff9e04"}, "source_files": {"src/pl/plpgsql/src/plpgsql.control": "9457c3f51d6bdfab93f13080d177795a9274c025e378fb613218342e3a3c7b45", "src/pl/plpgsql/src/plpgsql--1.0.sql": "f4e7e05438808ac0da0b3801397d16e36102969af7e2ffc982def5b7524fb557"}, "description_zh": "\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002", "comparison_data": {"kind": "Bundled procedural-language variant", "family": "PL/pgSQL", "handler": "plpgsql_call_handler", "library": "$libdir/plpgsql", "trusted": "t", "validator": "plpgsql_validator", "inline_handler": "plpgsql_inline_handler", "default_version": "1.0"}, "comparison_hash": "e85051f39a242ce658cedd87ac97437817f0f1b2baf992d8d37c9d29df8b558b", "manual_language": "zh", "description_zh_html": "<p>\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002</p><dl><dt>\u8fd0\u7b97\u7b26\u65cf</dt><dd><code>PL/pgSQL</code></dd><dt>\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_call_handler</code></dd><dt>\u5e93</dt><dd><code>$libdir/plpgsql</code></dd><dt>\u53d7\u4fe1\u4efb</dt><dd><code>\u662f</code></dd><dt>\u9a8c\u8bc1\u51fd\u6570</dt><dd><code>plpgsql_validator</code></dd><dt>\u5185\u8054\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_inline_handler</code></dd><dt>\u9ed8\u8ba4\u7248\u672c</dt><dd><code>1.0</code></dd><dt>\u6a21\u5757\u8def\u5f84</dt><dd><code>$libdir/plpgsql</code></dd></dl><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n<span>PL/pgSQL</span> \u662f\u4e00\u79cd\u7528\u4e8e <span>PostgreSQL</span> \u6570\u636e\u5e93\u7cfb\u7edf\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\u3002<span>PL/pgSQL</span> \u7684\u8bbe\u8ba1\u76ee\u6807\uff0c\u662f\u521b\u5efa\u4e00\u79cd\u5177\u5907\u4ee5\u4e0b\u7279\u6027\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\uff1a\n\n    </p><p>\n    \u7528 <span>PL/pgSQL</span> \u521b\u5efa\u7684\u51fd\u6570\uff0c\u53ef\u4ee5\u7528\u4e8e\u4efb\u4f55\u53ef\u4ee5\u4f7f\u7528\u5185\u7f6e\u51fd\u6570\u7684\u5730\u65b9\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u521b\u5efa\u5e26\u6709\u590d\u6742\u6761\u4ef6\u903b\u8f91\u7684\u8ba1\u7b97\u51fd\u6570\uff0c\u968f\u540e\u7528\u5b83\u4eec\u5b9a\u4e49\u64cd\u4f5c\u7b26\uff0c\u6216\u8005\u628a\u5b83\u4eec\u7528\u4e8e\u7d22\u5f15\u8868\u8fbe\u5f0f\u3002\n   </p><p>\n    \u5728 <span>PostgreSQL</span> 9.0 \u53ca\u66f4\u9ad8\u7248\u672c\u4e2d\uff0c<span>PL/pgSQL</span> \u9ed8\u8ba4\u5b89\u88c5\u3002\u4e0d\u8fc7\u5b83\u4ecd\u7136\u662f\u4e00\u4e2a\u53ef\u8f7d\u5165\u6a21\u5757\uff0c\u56e0\u6b64\u5bf9\u5b89\u5168\u6027\u7279\u522b\u654f\u611f\u7684\u7ba1\u7406\u5458\u4e5f\u53ef\u4ee5\u9009\u62e9\u79fb\u9664\u5b83\u3002\n   </p><p><a href=\"/zh/docs/18/plpgsql-overview.html\" rel=\"nofollow\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>", "center_zh_rendered": "<p>\u8fc7\u7a0b\u8bed\u8a00 plpgsql\u3002</p><dl><dt>\u8fd0\u7b97\u7b26\u65cf</dt><dd><code>PL/pgSQL</code></dd><dt>\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_call_handler</code></dd><dt>\u5e93</dt><dd><code>$libdir/plpgsql</code></dd><dt>\u53d7\u4fe1\u4efb</dt><dd><code>\u662f</code></dd><dt>\u9a8c\u8bc1\u51fd\u6570</dt><dd><code>plpgsql_validator</code></dd><dt>\u5185\u8054\u5904\u7406\u51fd\u6570</dt><dd><code>plpgsql_inline_handler</code></dd><dt>\u9ed8\u8ba4\u7248\u672c</dt><dd><code>1.0</code></dd><dt>\u6a21\u5757\u8def\u5f84</dt><dd><code>$libdir/plpgsql</code></dd></dl><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n<span>PL/pgSQL</span> \u662f\u4e00\u79cd\u7528\u4e8e <span>PostgreSQL</span> \u6570\u636e\u5e93\u7cfb\u7edf\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\u3002<span>PL/pgSQL</span> \u7684\u8bbe\u8ba1\u76ee\u6807\uff0c\u662f\u521b\u5efa\u4e00\u79cd\u5177\u5907\u4ee5\u4e0b\u7279\u6027\u7684\u53ef\u8f7d\u5165\u8fc7\u7a0b\u8bed\u8a00\uff1a\n\n    </p><p>\n    \u7528 <span>PL/pgSQL</span> \u521b\u5efa\u7684\u51fd\u6570\uff0c\u53ef\u4ee5\u7528\u4e8e\u4efb\u4f55\u53ef\u4ee5\u4f7f\u7528\u5185\u7f6e\u51fd\u6570\u7684\u5730\u65b9\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u521b\u5efa\u5e26\u6709\u590d\u6742\u6761\u4ef6\u903b\u8f91\u7684\u8ba1\u7b97\u51fd\u6570\uff0c\u968f\u540e\u7528\u5b83\u4eec\u5b9a\u4e49\u64cd\u4f5c\u7b26\uff0c\u6216\u8005\u628a\u5b83\u4eec\u7528\u4e8e\u7d22\u5f15\u8868\u8fbe\u5f0f\u3002\n   </p><p>\n    \u5728 <span>PostgreSQL</span> 9.0 \u53ca\u66f4\u9ad8\u7248\u672c\u4e2d\uff0c<span>PL/pgSQL</span> \u9ed8\u8ba4\u5b89\u88c5\u3002\u4e0d\u8fc7\u5b83\u4ecd\u7136\u662f\u4e00\u4e2a\u53ef\u8f7d\u5165\u6a21\u5757\uff0c\u56e0\u6b64\u5bf9\u5b89\u5168\u6027\u7279\u522b\u654f\u611f\u7684\u7ba1\u7406\u5458\u4e5f\u53ef\u4ee5\u9009\u62e9\u79fb\u9664\u5b83\u3002\n   </p><p><a href=\"/docs/18/plpgsql-overview.html\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>"}, "comparison": {"left": "17", "right": "18", "status": "unchanged", "diff": ""}}