{"kind": "tool", "major": "18", "item": {"slug": "ecpg", "name": "ecpg", "name_zh": "", "category": "\u5ba2\u6237\u7aef\u7a0b\u5e8f", "summary": "ecpg \u2014 \u5d4c\u5165\u5f0f SQL C \u9884\u5904\u7406\u5668", "aliases": ["ecpg"], "content_hash": "4d96b0880194aef4c5437f73ad5445531a3170ea8dfa97a6be036705a1b3f037", "versions": {"10": {"facts": [{"label": "\u624b\u518c\u4e2d\u7684\u53ef\u6267\u884c\u7a0b\u5e8f", "value": "ecpg"}, {"label": "\u7a0b\u5e8f\u7248\u672c", "value": "10.23"}, {"label": "\u53c2\u8003\u6e05\u5355", "value": "\u5ba2\u6237\u7aef\u7a0b\u5e8f"}, {"label": "\u9009\u9879\u5b9a\u4e49\u7ec4", "value": "12"}], "tables": [{"key": "options", "rows": [{"summary": "\u81ea\u52a8\u4ece SQL \u4ee3\u7801\u751f\u6210\u67d0\u4e9b C \u4ee3\u7801\u3002\u76ee\u524d\uff0c\u8fd9\u9002\u7528\u4e8e EXEC SQL TYPE \u3002", "signature": {"url": "/docs/10/app-ecpg.html", "text": "-c"}}, {"summary": "\u8bbe\u7f6e\u517c\u5bb9\u6a21\u5f0f\u3002 mode \u53ef\u4ee5\u662f INFORMIX \u6216 INFORMIX_SE \u3002", "signature": {"url": "/docs/10/app-ecpg.html", "text": "-C mode"}}, {"summary": "\u5b9a\u4e49\u4e00\u4e2a C \u9884\u5904\u7406\u5668\u7b26\u53f7\u3002", "signature": {"url": "/docs/10/app-ecpg.html", "text": "-D symbol"}}, {"summary": "\u5904\u7406\u5934\u6587\u4ef6\u3002\u6307\u5b9a\u8be5\u9009\u9879\u65f6\uff0c\u8f93\u51fa\u6587\u4ef6\u6269\u5c55\u540d\u53d8\u4e3a .h \u800c\u4e0d\u662f .c \uff0c\u9ed8\u8ba4\u8f93\u5165\u6587\u4ef6\u6269\u5c55\u540d\u4e5f\u53d8\u4e3a .pgh \u800c\u4e0d\u662f .pgc \u3002\u6b64\u5916\uff0c\u8fd8\u4f1a\u5f3a\u5236\u542f\u7528 -c \u9009\u9879\u3002", "signature": {"url": "/docs/10/app-ecpg.html", "text": "-h"}}, {"summary": "\u4e5f\u89e3\u6790\u7cfb\u7edf\u5305\u542b\u6587\u4ef6\u3002", "signature": {"url": "/docs/10/app-ecpg.html", "text": "-i"}}, {"summary": "\u6307\u5b9a\u4e00\u4e2a\u9644\u52a0\u7684\u5305\u542b\u6587\u4ef6\u641c\u7d22\u8def\u5f84\uff0c\u7528\u4e8e\u67e5\u627e\u901a\u8fc7 EXEC SQL INCLUDE \u5305\u542b\u7684\u6587\u4ef6\u3002\u9ed8\u8ba4\u8def\u5f84\u4f9d\u6b21\u4e3a . \uff08\u5f53\u524d\u76ee\u5f55\uff09\u3001 /usr/local/include \u3001\u7f16\u8bd1\u65f6\u5b9a\u4e49\u7684 PostgreSQL \u5305\u542b\u6587\u4ef6\u76ee\u5f55\uff08\u9ed8\u8ba4\uff1a /usr/local/pgsql/include \uff09\uff0c\u4ee5\u53ca /usr/include \u3002", "signature": {"url": "/docs/10/app-ecpg.html", "text": "-I directory"}}, {"summary": "\u6307\u5b9a ecpg \u5e94\u5c06\u5168\u90e8\u8f93\u51fa\u5199\u5165\u7ed9\u5b9a\u7684 filename \u3002\u5199\u6210 -o - \u53ef\u5c06\u5168\u90e8\u8f93\u51fa\u53d1\u9001\u5230\u6807\u51c6\u8f93\u51fa\u3002", "signature": {"url": "/docs/10/app-ecpg.html", "text": "-o filename"}}, {"summary": "\u9009\u62e9\u8fd0\u884c\u65f6\u884c\u4e3a\u3002\u9009\u9879\u53ef\u4ee5\u662f\u4e0b\u5217\u503c\u4e4b\u4e00\uff1a", "signature": {"url": "/docs/10/app-ecpg.html", "text": "-r option"}}, {"summary": "\u6253\u5f00\u4e8b\u52a1\u81ea\u52a8\u63d0\u4ea4\u3002\u5728\u6b64\u6a21\u5f0f\u4e0b\uff0c\u9664\u975e SQL \u547d\u4ee4\u4f4d\u4e8e\u663e\u5f0f\u4e8b\u52a1\u5757\u4e2d\uff0c\u5426\u5219\u6bcf\u6761 SQL \u547d\u4ee4\u90fd\u4f1a\u81ea\u52a8\u63d0\u4ea4\u3002\u5728\u9ed8\u8ba4\u6a21\u5f0f\u4e0b\uff0c\u53ea\u6709\u53d1\u51fa EXEC SQL COMMIT \u65f6\u624d\u4f1a\u63d0\u4ea4\u547d\u4ee4\u3002", "signature": {"url": "/docs/10/app-ecpg.html", "text": "-t"}}, {"summary": "\u6253\u5370\u9644\u52a0\u4fe1\u606f\uff0c\u5305\u62ec\u7248\u672c\u548c\u5305\u542b\u6587\u4ef6\u641c\u7d22\u8def\u5f84\u3002", "signature": {"url": "/docs/10/app-ecpg.html", "text": "-v"}}, {"summary": "\u6253\u5370 ecpg \u7248\u672c\u5e76\u9000\u51fa\u3002", "signature": {"url": "/docs/10/app-ecpg.html", "text": "--version"}}, {"summary": "\u663e\u793a\u5173\u4e8e ecpg \u547d\u4ee4\u884c\u53c2\u6570\u7684\u5e2e\u52a9\u4fe1\u606f\uff0c\u5e76\u9000\u51fa\u3002", "signature": {"url": "/docs/10/app-ecpg.html", "text": "-? --help"}}], "title": "\u624b\u518c\u4e2d\u7684\u9009\u9879", "columns": [{"key": "signature", "label": "\u9009\u9879\u4e0e\u53c2\u6570"}, {"key": "summary", "label": "\u8bf4\u660e"}]}], "options": [{"names": ["-c"], "summary": "Automatically generate certain C code from SQL code. Currently, this works for EXEC SQL TYPE .", "signature": "-c", "source_url": "/docs/10/app-ecpg.html", "description": "Automatically generate certain C code from SQL code. Currently, this works for EXEC SQL TYPE ."}, {"names": ["-C mode"], "summary": "Set a compatibility mode. mode can be INFORMIX or INFORMIX_SE .", "signature": "-C mode", "source_url": "/docs/10/app-ecpg.html", "description": "Set a compatibility mode. mode can be INFORMIX or INFORMIX_SE ."}, {"names": ["-D symbol"], "summary": "Define a C preprocessor symbol.", "signature": "-D symbol", "source_url": "/docs/10/app-ecpg.html", "description": "Define a C preprocessor symbol."}, {"names": ["-h"], "summary": "Process header files. When this option is specified, the output file extension becomes .h not .c , and the default input file extension is .pgh not .pgc . Also, the -c option is forced on.", "signature": "-h", "source_url": "/docs/10/app-ecpg.html", "description": "Process header files. When this option is specified, the output file extension becomes .h not .c , and the default input file extension is .pgh not .pgc . Also, the -c option is forced on."}, {"names": ["-i"], "summary": "Parse system include files as well.", "signature": "-i", "source_url": "/docs/10/app-ecpg.html", "description": "Parse system include files as well."}, {"names": ["-I directory"], "summary": "Specify an additional include path, used to find files included via EXEC SQL INCLUDE . Defaults are . (current directory), /usr/local/include , the PostgreSQL include directory which is defined at compile time (default: /usr/local/pgsql/include ), and /usr/include , in that order.", "signature": "-I directory", "source_url": "/docs/10/app-ecpg.html", "description": "Specify an additional include path, used to find files included via EXEC SQL INCLUDE . Defaults are . (current directory), /usr/local/include , the PostgreSQL include directory which is defined at compile time (default: /usr/local/pgsql/include ), and /usr/include , in that order."}, {"names": ["-o filename"], "summary": "Specifies that ecpg should write all its output to the given filename . Write -o - to send all output to standard output.", "signature": "-o filename", "source_url": "/docs/10/app-ecpg.html", "description": "Specifies that ecpg should write all its output to the given filename . Write -o - to send all output to standard output."}, {"names": ["-r option"], "summary": "Selects run-time behavior. Option can be one of the following:", "signature": "-r option", "source_url": "/docs/10/app-ecpg.html", "description": "Selects run-time behavior. Option can be one of the following: no_indicator Do not use indicators but instead use special values to represent null values. Historically there have been databases using this approach. prepare Prepare all statements before using them. Libecpg will keep a cache of prepared statements and reuse a statement if it gets executed again. If the cache runs full, libecpg will free the least used statement. questionmarks Allow question mark as placeholder for compatibility reasons. This used to be the default long ago."}, {"names": ["-t"], "summary": "Turn on autocommit of transactions. In this mode, each SQL command is automatically committed unless it is inside an explicit transaction block. In the default mode, commands are committed only when EXEC SQL COMMIT is issued.", "signature": "-t", "source_url": "/docs/10/app-ecpg.html", "description": "Turn on autocommit of transactions. In this mode, each SQL command is automatically committed unless it is inside an explicit transaction block. In the default mode, commands are committed only when EXEC SQL COMMIT is issued."}, {"names": ["-v"], "summary": "Print additional information including the version and the \"include\" path.", "signature": "-v", "source_url": "/docs/10/app-ecpg.html", "description": "Print additional information including the version and the \"include\" path."}, {"names": ["--version"], "summary": "Print the ecpg version and exit.", "signature": "--version", "source_url": "/docs/10/app-ecpg.html", "description": "Print the ecpg version and exit."}, {"names": ["-?", "--help"], "summary": "Show help about ecpg command line arguments, and exit.", "signature": "-? --help", "source_url": "/docs/10/app-ecpg.html", "description": "Show help about ecpg command line arguments, and exit."}], "related": [], "release": {"ref": "https://ftp.postgresql.org/pub/source/v10.23/postgresql-10.23.tar.bz2", "label": "10.23", "major": "10", "channel": "historical", "manifest": {"pdf": {"A4": {"url": "/files/documentation/pdf/10/postgresql-10-A4.pdf", "bytes": 12631706, "pages": 2591, "sha256": "34497ab9efb45c5bdf1bd11b9016b5451354feb462fa029cf74557a5fa5fbbc1", "built_at": "2026-09-26"}, "US": {"url": "/files/documentation/pdf/10/postgresql-10-US.pdf", "bytes": 12531684, "pages": 2724, "sha256": "429cc7133ddf4f97c560aa466dc9caea4b718721a8321e293357037cf0af4733", "built_at": "2026-09-26"}}, "tree": "10", "index": "index.html", "major": "10", "pages": 1085, "release": "10.23", "source_url": "https://ftp.postgresql.org/pub/source/v10.23/postgresql-10.23.tar.bz2", "svg_assets": 0, "source_mode": "en HTML verified against the pinned official archive", "source_sha256": "94a4b2528372458e5662c18d406629266667c437198160a18cdfd2c4a4d6eee9"}, "revision": "f9301feba91e2e2566038a36b8cee0e4402db68989538f88670fddd20b1f78ea", "evidence_kind": "English manual and source declarations", "source_sha256": "94a4b2528372458e5662c18d406629266667c437198160a18cdfd2c4a4d6eee9"}, "sources": [{"url": "https://pg.center/docs/10/app-ecpg.html", "file": "app-ecpg.html", "label": "10.23 English manual \u00b7 app-ecpg.html", "anchor": "", "sha256": "5554b5a436af6b9ce2dc5f5d4dec18495e5e88465499830fbcf8bd1aab78baa5", "language": "en", "original_url": "/docs/10/app-ecpg.html"}, {"url": "https://pg.center/docs/10/reference-client.html", "file": "reference-client.html", "label": "Client applications inventory", "anchor": "", "sha256": "e4330732b6acd6c025a1fbdce45574b23d964de847a1b849ea88b98ab628d2e2", "language": "en", "original_url": "/docs/10/reference-client.html"}], "sections": [], "synopsis": ["ecpg [ option ...] file ..."], "signature": "ecpg [ option ...] file ...", "description": ["ecpg \u2014 \u5d4c\u5165\u5f0f SQL C \u9884\u5904\u7406\u5668"], "environment": [], "manual_html": "<div><div class=\"refentry\" id=\"APP-ECPG\">\n<div class=\"titlepage\"></div>\n<div class=\"refnamediv\">\n<h2><span class=\"refentrytitle\"><span class=\"application\">ecpg</span></span></h2>\n<p lang=\"zh\"><span class=\"application\">ecpg</span> \u2014 \u5d4c\u5165\u5f0f SQL C \u9884\u5904\u7406\u5668</p>\n</div>\n<div class=\"refsynopsisdiv\">\n<h2 lang=\"zh\">\u5927\u7eb2</h2>\n<div class=\"cmdsynopsis\">\n<p id=\"id-1.9.4.8.4.1\"><code class=\"command\">ecpg</code> [<em class=\"replaceable\"><code>option</code></em>...] <em class=\"replaceable\"><code>file</code></em>...</p>\n</div>\n</div>\n<div class=\"refsect1\" id=\"APP-ECPG-DESCRIPTION\">\n<h2 lang=\"zh\">\u8bf4\u660e</h2>\n<p lang=\"zh\"><code class=\"command\">ecpg</code>\u662f\u4f9b C \u7a0b\u5e8f\u4f7f\u7528\u7684\u5d4c\u5165\u5f0f SQL \u9884\u5904\u7406\u5668\u3002\u5b83\u4f1a\u628a\u5d4c\u5165\u4e86 SQL \u8bed\u53e5\u7684 C \u7a0b\u5e8f\u8f6c\u6362\u6210\u666e\u901a C \u4ee3\u7801\uff0c\u65b9\u6cd5\u662f\u5c06 SQL \u8c03\u7528\u66ff\u6362\u4e3a\u7279\u6b8a\u7684\u51fd\u6570\u8c03\u7528\u3002\u751f\u6210\u7684\u8f93\u51fa\u6587\u4ef6\u968f\u540e\u53ef\u4ee5\u7531\u4efb\u4f55 C \u7f16\u8bd1\u5668\u5de5\u5177\u94fe\u5904\u7406\u3002</p>\n<p lang=\"zh\"><code class=\"command\">ecpg</code>\u4f1a\u5c06\u547d\u4ee4\u884c\u4e2d\u7ed9\u51fa\u7684\u6bcf\u4e2a\u8f93\u5165\u6587\u4ef6\u8f6c\u6362\u6210\u5bf9\u5e94\u7684 C \u8f93\u51fa\u6587\u4ef6\u3002\u82e5\u8f93\u5165\u6587\u4ef6\u540d\u6ca1\u6709\u4efb\u4f55\u6269\u5c55\u540d\uff0c\u5219\u5047\u5b9a\u5176\u6269\u5c55\u540d\u4e3a<code class=\"filename\">.pgc</code>\u3002\u968f\u540e\u4f1a\u628a\u8be5\u6587\u4ef6\u7684\u6269\u5c55\u540d\u66ff\u6362\u4e3a <code class=\"filename\">.c</code>\uff0c\u4ee5\u6784\u9020\u8f93\u51fa\u6587\u4ef6\u540d\u3002\u4e0d\u8fc7\uff0c\u4e5f\u53ef\u4ee5\u7528<code class=\"option\">-o</code>\u9009\u9879\u8986\u76d6\u8f93\u51fa\u6587\u4ef6\u540d\u3002</p>\n<p lang=\"zh\">\u5982\u679c\u8f93\u5165\u6587\u4ef6\u540d\u53ea\u662f<code class=\"literal\">-</code>\uff0c<code class=\"command\">ecpg</code>\u5c31\u4f1a\u4ece\u6807\u51c6\u8f93\u5165\u8bfb\u53d6\u7a0b\u5e8f\uff08\u5e76\u5199\u5230\u6807\u51c6\u8f93\u51fa\uff0c\u9664\u975e\u4f7f\u7528<code class=\"option\">-o</code>\u8986\u76d6\u8be5\u884c\u4e3a\uff09\u3002</p>\n<p lang=\"zh\">\u672c\u53c2\u8003\u9875\u4e0d\u63cf\u8ff0\u5d4c\u5165\u5f0f SQL \u8bed\u8a00\u3002\u6709\u5173\u8be5\u4e3b\u9898\u7684\u66f4\u591a\u4fe1\u606f\uff0c\u89c1<a class=\"xref\" href=\"/docs/10/ecpg.html\" title=\"\u7b2c\u00a035\u00a0\u7ae0\u00a0ECPG - C \u4e2d\u7684\u5d4c\u5165\u5f0f SQL\">\u7b2c\u00a035\u00a0\u7ae0</a>\u3002</p>\n</div>\n<div class=\"refsect1\" id=\"id-1.9.4.8.6\">\n<h2 lang=\"zh\">\u9009\u9879</h2>\n<p lang=\"zh\"><code class=\"command\">ecpg</code>\u63a5\u53d7\u4ee5\u4e0b\u547d\u4ee4\u884c\u53c2\u6570\uff1a</p>\n<div class=\"variablelist\">\n<dl class=\"variablelist\">\n<dt><span class=\"term\"><code class=\"option\">-c</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u81ea\u52a8\u4ece SQL \u4ee3\u7801\u751f\u6210\u67d0\u4e9b C \u4ee3\u7801\u3002\u76ee\u524d\uff0c\u8fd9\u9002\u7528\u4e8e<code class=\"literal\">EXEC SQL TYPE</code>\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-C <em class=\"replaceable\"><code>mode</code></em></code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u8bbe\u7f6e\u517c\u5bb9\u6a21\u5f0f\u3002<em class=\"replaceable\"><code>mode</code></em>\u53ef\u4ee5\u662f<code class=\"literal\">INFORMIX</code>\u6216<code class=\"literal\">INFORMIX_SE</code>\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-D <em class=\"replaceable\"><code>symbol</code></em></code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u5b9a\u4e49\u4e00\u4e2a C \u9884\u5904\u7406\u5668\u7b26\u53f7\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-h</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u5904\u7406\u5934\u6587\u4ef6\u3002\u6307\u5b9a\u8be5\u9009\u9879\u65f6\uff0c\u8f93\u51fa\u6587\u4ef6\u6269\u5c55\u540d\u53d8\u4e3a<code class=\"literal\">.h</code>\u800c\u4e0d\u662f<code class=\"literal\">.c</code>\uff0c\u9ed8\u8ba4\u8f93\u5165\u6587\u4ef6\u6269\u5c55\u540d\u4e5f\u53d8\u4e3a<code class=\"literal\">.pgh</code>\u800c\u4e0d\u662f<code class=\"literal\">.pgc</code>\u3002\u6b64\u5916\uff0c\u8fd8\u4f1a\u5f3a\u5236\u542f\u7528<code class=\"option\">-c</code>\u9009\u9879\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-i</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u4e5f\u89e3\u6790\u7cfb\u7edf\u5305\u542b\u6587\u4ef6\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-I <em class=\"replaceable\"><code>directory</code></em></code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6307\u5b9a\u4e00\u4e2a\u9644\u52a0\u7684\u5305\u542b\u6587\u4ef6\u641c\u7d22\u8def\u5f84\uff0c\u7528\u4e8e\u67e5\u627e\u901a\u8fc7<code class=\"literal\">EXEC SQL INCLUDE</code>\u5305\u542b\u7684\u6587\u4ef6\u3002\u9ed8\u8ba4\u8def\u5f84\u4f9d\u6b21\u4e3a<code class=\"filename\">.</code>\uff08\u5f53\u524d\u76ee\u5f55\uff09\u3001<code class=\"filename\">/usr/local/include</code>\u3001\u7f16\u8bd1\u65f6\u5b9a\u4e49\u7684<span class=\"productname\">PostgreSQL</span>\u5305\u542b\u6587\u4ef6\u76ee\u5f55\uff08\u9ed8\u8ba4\uff1a<code class=\"filename\">/usr/local/pgsql/include</code>\uff09\uff0c\u4ee5\u53ca<code class=\"filename\">/usr/include</code>\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-o <em class=\"replaceable\"><code>filename</code></em></code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6307\u5b9a<code class=\"command\">ecpg</code>\u5e94\u5c06\u5168\u90e8\u8f93\u51fa\u5199\u5165\u7ed9\u5b9a\u7684<em class=\"replaceable\"><code>filename</code></em>\u3002\u5199\u6210<code class=\"literal\">-o -</code>\u53ef\u5c06\u5168\u90e8\u8f93\u51fa\u53d1\u9001\u5230\u6807\u51c6\u8f93\u51fa\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-r <em class=\"replaceable\"><code>option</code></em></code></span></dt>\n<dd>\n<p lang=\"zh\">\u9009\u62e9\u8fd0\u884c\u65f6\u884c\u4e3a\u3002\u9009\u9879\u53ef\u4ee5\u662f\u4e0b\u5217\u503c\u4e4b\u4e00\uff1a</p>\n<div class=\"variablelist\">\n<dl class=\"variablelist\">\n<dt><span class=\"term\"><code class=\"option\">no_indicator</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u4e0d\u4f7f\u7528\u6307\u793a\u7b26\uff0c\u800c\u6539\u7528\u7279\u6b8a\u503c\u8868\u793a\u7a7a\u503c\u3002\u5386\u53f2\u4e0a\u66fe\u6709\u6570\u636e\u5e93\u91c7\u7528\u8fd9\u79cd\u65b9\u5f0f\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">prepare</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u5728\u4f7f\u7528\u524d\u9884\u5907\u6240\u6709\u8bed\u53e5\u3002libecpg\u4f1a\u7ef4\u62a4\u4e00\u4e2a\u5df2\u9884\u5907\u8bed\u53e5\u7684\u7f13\u5b58\uff1b\u5982\u679c\u67d0\u6761\u8bed\u53e5\u518d\u6b21\u6267\u884c\uff0c\u5c31\u4f1a\u590d\u7528\u5b83\u3002\u82e5\u7f13\u5b58\u5df2\u6ee1\uff0clibecpg\u4f1a\u91ca\u653e\u4f7f\u7528\u6b21\u6570\u6700\u5c11\u7684\u8bed\u53e5\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">questionmarks</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u51fa\u4e8e\u517c\u5bb9\u6027\u539f\u56e0\uff0c\u5141\u8bb8\u4f7f\u7528\u95ee\u53f7\u4f5c\u4e3a\u5360\u4f4d\u7b26\u3002\u8fd9\u5728\u5f88\u4e45\u4ee5\u524d\u66fe\u662f\u9ed8\u8ba4\u884c\u4e3a\u3002</p>\n</p>\n</dd>\n</dl>\n</div>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-t</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6253\u5f00\u4e8b\u52a1\u81ea\u52a8\u63d0\u4ea4\u3002\u5728\u6b64\u6a21\u5f0f\u4e0b\uff0c\u9664\u975e SQL \u547d\u4ee4\u4f4d\u4e8e\u663e\u5f0f\u4e8b\u52a1\u5757\u4e2d\uff0c\u5426\u5219\u6bcf\u6761 SQL \u547d\u4ee4\u90fd\u4f1a\u81ea\u52a8\u63d0\u4ea4\u3002\u5728\u9ed8\u8ba4\u6a21\u5f0f\u4e0b\uff0c\u53ea\u6709\u53d1\u51fa<code class=\"command\">EXEC SQL COMMIT</code>\u65f6\u624d\u4f1a\u63d0\u4ea4\u547d\u4ee4\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-v</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6253\u5370\u9644\u52a0\u4fe1\u606f\uff0c\u5305\u62ec\u7248\u672c\u548c\u5305\u542b\u6587\u4ef6\u641c\u7d22\u8def\u5f84\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">--version</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6253\u5370<span class=\"application\">ecpg</span>\u7248\u672c\u5e76\u9000\u51fa\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-?</code><br/></span><span class=\"term\"><code class=\"option\">--help</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u663e\u793a\u5173\u4e8e<span class=\"application\">ecpg</span>\u547d\u4ee4\u884c\u53c2\u6570\u7684\u5e2e\u52a9\u4fe1\u606f\uff0c\u5e76\u9000\u51fa\u3002</p>\n</p>\n</dd>\n</dl>\n</div>\n</div>\n<div class=\"refsect1\" id=\"id-1.9.4.8.7\">\n<h2 lang=\"zh\">\u6ce8\u610f\u4e8b\u9879</h2>\n<p lang=\"zh\">\u5728\u7f16\u8bd1\u9884\u5904\u7406\u540e\u7684 C \u4ee3\u7801\u6587\u4ef6\u65f6\uff0c\u7f16\u8bd1\u5668\u5fc5\u987b\u80fd\u591f\u5728<span class=\"productname\">PostgreSQL</span>\u7684\u5305\u542b\u6587\u4ef6\u76ee\u5f55\u4e2d\u627e\u5230<span class=\"application\">ECPG</span>\u5934\u6587\u4ef6\u3002\u56e0\u6b64\uff0c\u8c03\u7528\u7f16\u8bd1\u5668\u65f6\u4f60\u53ef\u80fd\u9700\u8981\u4f7f\u7528<code class=\"option\">-I</code>\u9009\u9879\uff08\u4f8b\u5982<code class=\"literal\">-I/usr/local/pgsql/include</code>\uff09\u3002</p>\n<p lang=\"zh\">\u4f7f\u7528\u5d4c\u5165\u5f0f SQL \u7684 C \u7a0b\u5e8f\u5fc5\u987b\u4e0e<code class=\"filename\">libecpg</code>\u5e93\u94fe\u63a5\uff0c\u4f8b\u5982\u53ef\u4f7f\u7528\u94fe\u63a5\u5668\u9009\u9879<code class=\"literal\">-L/usr/local/pgsql/lib -lecpg</code>\u3002</p>\n<p lang=\"zh\">\u5f53\u524d\u5b89\u88c5\u4f7f\u7528\u7684\u8fd9\u4e24\u4e2a\u76ee\u5f55\u53ef\u901a\u8fc7<a class=\"xref\" href=\"/docs/10/app-pgconfig.html\" title=\"pg_config\"><span class=\"refentrytitle\">pg_config</span></a>\u67e5\u8be2\u3002</p>\n</div>\n<div class=\"refsect1\" id=\"id-1.9.4.8.8\">\n<h2 lang=\"zh\">\u793a\u4f8b</h2>\n<p lang=\"zh\">\u5982\u679c\u4f60\u6709\u4e00\u4e2a\u540d\u4e3a<code class=\"filename\">prog1.pgc</code>\u7684\u5d4c\u5165\u5f0f SQL C \u6e90\u6587\u4ef6\uff0c\u5c31\u53ef\u4ee5\u4f7f\u7528\u4e0b\u5217\u547d\u4ee4\u5e8f\u5217\u521b\u5efa\u4e00\u4e2a\u53ef\u6267\u884c\u7a0b\u5e8f\uff1a</p>\n<pre class=\"programlisting\">ecpg prog1.pgc\ncc -I/usr/local/pgsql/include -c prog1.c\ncc -o prog1 prog1.o -L/usr/local/pgsql/lib -lecpg\n</pre></div>\n</div></div>", "manual_path": "app-ecpg.html", "localization": {"status": "complete", "sources": [{"url": "/docs/10/app-ecpg.html", "method": "same-major semantic node", "sha256": "af9387fee9505851aed0242e752cfe1030eb275617dd3ec09f4ed1beaea69301", "language": "zh", "matched_nodes": ["#APP-ECPG/div[2]/p[1]", "#APP-ECPG/div[3]/h2[0]", "#APP-ECPG/div[4]/p[1]", "#APP-ECPG/div[4]/p[2]", "#APP-ECPG/div[4]/p[3]", "#APP-ECPG/div[4]/p[4]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[11]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[13]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[15]/div[1]/dl[0]/dd[1]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[15]/div[1]/dl[0]/dd[3]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[15]/div[1]/dl[0]/dd[5]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[17]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[19]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[1]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[21]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[23]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[3]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[5]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[7]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[9]", "#APP-ECPG/div[5]/p[1]", "#APP-ECPG/div[6]/h2[0]", "#APP-ECPG/div[6]/p[1]", "#APP-ECPG/div[6]/p[2]", "#APP-ECPG/div[6]/p[3]", "#APP-ECPG/div[7]/h2[0]", "#APP-ECPG/div[7]/p[1]"]}], "language": "zh", "original_text": {"/versions/10/description/0": "ecpg \u2014 embedded SQL C preprocessor", "/versions/10/facts/0/label": "Documented executable", "/versions/10/facts/1/label": "Executable version", "/versions/10/facts/2/label": "Reference inventory", "/versions/10/facts/2/value": "Client applications", "/versions/10/facts/3/label": "Option definition groups", "/versions/10/tables/0/title": "Documented options", "/versions/10/tables/0/rows/0/summary": "Automatically generate certain C code from SQL code. Currently, this works for EXEC SQL TYPE .", "/versions/10/tables/0/rows/1/summary": "Set a compatibility mode. mode can be INFORMIX or INFORMIX_SE .", "/versions/10/tables/0/rows/2/summary": "Define a C preprocessor symbol.", "/versions/10/tables/0/rows/3/summary": "Process header files. When this option is specified, the output file extension becomes .h not .c , and the default input file extension is .pgh not .pgc . Also, the -c option is forced on.", "/versions/10/tables/0/rows/4/summary": "Parse system include files as well.", "/versions/10/tables/0/rows/5/summary": "Specify an additional include path, used to find files included via EXEC SQL INCLUDE . Defaults are . (current directory), /usr/local/include , the PostgreSQL include directory which is defined at compile time (default: /usr/local/pgsql/include ), and /usr/include , in that order.", "/versions/10/tables/0/rows/6/summary": "Specifies that ecpg should write all its output to the given filename . Write -o - to send all output to standard output.", "/versions/10/tables/0/rows/7/summary": "Selects run-time behavior. Option can be one of the following:", "/versions/10/tables/0/rows/8/summary": "Turn on autocommit of transactions. In this mode, each SQL command is automatically committed unless it is inside an explicit transaction block. In the default mode, commands are committed only when EXEC SQL COMMIT is issued.", "/versions/10/tables/0/rows/9/summary": "Print additional information including the version and the \"include\" path.", "/versions/10/tables/0/columns/0/label": "Option and arguments", "/versions/10/tables/0/columns/1/label": "Description", "/versions/10/tables/0/rows/10/summary": "Print the ecpg version and exit.", "/versions/10/tables/0/rows/11/summary": "Show help about ecpg command line arguments, and exit."}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "8f7493ecfc32c8e23b553385a8278eb10525c807e007ee00da12e9b4cc042fcb"}, "comparison_data": {"options": [{"names": ["-c"], "signature": "-c", "description": "Automatically generate certain C code from SQL code. Currently, this works for EXEC SQL TYPE ."}, {"names": ["-C mode"], "signature": "-C mode", "description": "Set a compatibility mode. mode can be INFORMIX or INFORMIX_SE ."}, {"names": ["-D symbol"], "signature": "-D symbol", "description": "Define a C preprocessor symbol."}, {"names": ["-h"], "signature": "-h", "description": "Process header files. When this option is specified, the output file extension becomes .h not .c , and the default input file extension is .pgh not .pgc . Also, the -c option is forced on."}, {"names": ["-i"], "signature": "-i", "description": "Parse system include files as well."}, {"names": ["-I directory"], "signature": "-I directory", "description": "Specify an additional include path, used to find files included via EXEC SQL INCLUDE . Defaults are . (current directory), /usr/local/include , the PostgreSQL include directory which is defined at compile time (default: /usr/local/pgsql/include ), and /usr/include , in that order."}, {"names": ["-o filename"], "signature": "-o filename", "description": "Specifies that ecpg should write all its output to the given filename . Write -o - to send all output to standard output."}, {"names": ["-r option"], "signature": "-r option", "description": "Selects run-time behavior. Option can be one of the following: no_indicator Do not use indicators but instead use special values to represent null values. Historically there have been databases using this approach. prepare Prepare all statements before using them. Libecpg will keep a cache of prepared statements and reuse a statement if it gets executed again. If the cache runs full, libecpg will free the least used statement. questionmarks Allow question mark as placeholder for compatibility reasons. This used to be the default long ago."}, {"names": ["-t"], "signature": "-t", "description": "Turn on autocommit of transactions. In this mode, each SQL command is automatically committed unless it is inside an explicit transaction block. In the default mode, commands are committed only when EXEC SQL COMMIT is issued."}, {"names": ["-v"], "signature": "-v", "description": "Print additional information including the version and the \"include\" path."}, {"names": ["--version"], "signature": "--version", "description": "Print the ecpg version and exit."}, {"names": ["-?", "--help"], "signature": "-? --help", "description": "Show help about ecpg command line arguments, and exit."}], "synopsis": ["ecpg [ option ...] file ..."], "environment": []}, "comparison_hash": "6fe8df3a35e610fc30be149ee21da8510ec98f7dd5ee5712c2b234363732b9d3", "manual_language": "zh"}, "11": {"facts": [{"label": "\u624b\u518c\u4e2d\u7684\u53ef\u6267\u884c\u7a0b\u5e8f", "value": "ecpg"}, {"label": "\u7a0b\u5e8f\u7248\u672c", "value": "11.22"}, {"label": "\u53c2\u8003\u6e05\u5355", "value": "\u5ba2\u6237\u7aef\u7a0b\u5e8f"}, {"label": "\u9009\u9879\u5b9a\u4e49\u7ec4", "value": "12"}], "tables": [{"key": "options", "rows": [{"summary": "\u81ea\u52a8\u4ece SQL \u4ee3\u7801\u751f\u6210\u67d0\u4e9b C \u4ee3\u7801\u3002\u76ee\u524d\uff0c\u8fd9\u9002\u7528\u4e8e EXEC SQL TYPE \u3002", "signature": {"url": "/docs/11/app-ecpg.html", "text": "-c"}}, {"summary": "\u8bbe\u7f6e\u517c\u5bb9\u6a21\u5f0f\u3002 mode \u53ef\u4ee5\u662f INFORMIX \u3001 INFORMIX_SE \uff0c\u6216 ORACLE \u3002", "signature": {"url": "/docs/11/app-ecpg.html", "text": "-C mode"}}, {"summary": "\u5b9a\u4e49\u4e00\u4e2a C \u9884\u5904\u7406\u5668\u7b26\u53f7\u3002", "signature": {"url": "/docs/11/app-ecpg.html", "text": "-D symbol"}}, {"summary": "\u5904\u7406\u5934\u6587\u4ef6\u3002\u6307\u5b9a\u8be5\u9009\u9879\u65f6\uff0c\u8f93\u51fa\u6587\u4ef6\u6269\u5c55\u540d\u53d8\u4e3a .h \u800c\u4e0d\u662f .c \uff0c\u9ed8\u8ba4\u8f93\u5165\u6587\u4ef6\u6269\u5c55\u540d\u4e5f\u53d8\u4e3a .pgh \u800c\u4e0d\u662f .pgc \u3002\u6b64\u5916\uff0c\u8fd8\u4f1a\u5f3a\u5236\u542f\u7528 -c \u9009\u9879\u3002", "signature": {"url": "/docs/11/app-ecpg.html", "text": "-h"}}, {"summary": "\u4e5f\u89e3\u6790\u7cfb\u7edf\u5305\u542b\u6587\u4ef6\u3002", "signature": {"url": "/docs/11/app-ecpg.html", "text": "-i"}}, {"summary": "\u6307\u5b9a\u4e00\u4e2a\u9644\u52a0\u7684\u5305\u542b\u6587\u4ef6\u641c\u7d22\u8def\u5f84\uff0c\u7528\u4e8e\u67e5\u627e\u901a\u8fc7 EXEC SQL INCLUDE \u5305\u542b\u7684\u6587\u4ef6\u3002\u9ed8\u8ba4\u8def\u5f84\u4f9d\u6b21\u4e3a . \uff08\u5f53\u524d\u76ee\u5f55\uff09\u3001 /usr/local/include \u3001\u7f16\u8bd1\u65f6\u5b9a\u4e49\u7684 PostgreSQL \u5305\u542b\u6587\u4ef6\u76ee\u5f55\uff08\u9ed8\u8ba4\uff1a /usr/local/pgsql/include \uff09\uff0c\u4ee5\u53ca /usr/include \u3002", "signature": {"url": "/docs/11/app-ecpg.html", "text": "-I directory"}}, {"summary": "\u6307\u5b9a ecpg \u5e94\u5c06\u5168\u90e8\u8f93\u51fa\u5199\u5165\u7ed9\u5b9a\u7684 filename \u3002\u5199\u6210 -o - \u53ef\u5c06\u5168\u90e8\u8f93\u51fa\u53d1\u9001\u5230\u6807\u51c6\u8f93\u51fa\u3002", "signature": {"url": "/docs/11/app-ecpg.html", "text": "-o filename"}}, {"summary": "\u9009\u62e9\u8fd0\u884c\u65f6\u884c\u4e3a\u3002\u9009\u9879\u53ef\u4ee5\u662f\u4e0b\u5217\u503c\u4e4b\u4e00\uff1a", "signature": {"url": "/docs/11/app-ecpg.html", "text": "-r option"}}, {"summary": "\u6253\u5f00\u4e8b\u52a1\u81ea\u52a8\u63d0\u4ea4\u3002\u5728\u6b64\u6a21\u5f0f\u4e0b\uff0c\u9664\u975e SQL \u547d\u4ee4\u4f4d\u4e8e\u663e\u5f0f\u4e8b\u52a1\u5757\u4e2d\uff0c\u5426\u5219\u6bcf\u6761 SQL \u547d\u4ee4\u90fd\u4f1a\u81ea\u52a8\u63d0\u4ea4\u3002\u5728\u9ed8\u8ba4\u6a21\u5f0f\u4e0b\uff0c\u53ea\u6709\u53d1\u51fa EXEC SQL COMMIT \u65f6\u624d\u4f1a\u63d0\u4ea4\u547d\u4ee4\u3002", "signature": {"url": "/docs/11/app-ecpg.html", "text": "-t"}}, {"summary": "\u6253\u5370\u9644\u52a0\u4fe1\u606f\uff0c\u5305\u62ec\u7248\u672c\u548c\u5305\u542b\u6587\u4ef6\u641c\u7d22\u8def\u5f84\u3002", "signature": {"url": "/docs/11/app-ecpg.html", "text": "-v"}}, {"summary": "\u6253\u5370 ecpg \u7248\u672c\u5e76\u9000\u51fa\u3002", "signature": {"url": "/docs/11/app-ecpg.html", "text": "--version"}}, {"summary": "\u663e\u793a\u5173\u4e8e ecpg \u547d\u4ee4\u884c\u53c2\u6570\u7684\u5e2e\u52a9\u4fe1\u606f\uff0c\u5e76\u9000\u51fa\u3002", "signature": {"url": "/docs/11/app-ecpg.html", "text": "-? --help"}}], "title": "\u624b\u518c\u4e2d\u7684\u9009\u9879", "columns": [{"key": "signature", "label": "\u9009\u9879\u4e0e\u53c2\u6570"}, {"key": "summary", "label": "\u8bf4\u660e"}]}], "options": [{"names": ["-c"], "summary": "Automatically generate certain C code from SQL code. Currently, this works for EXEC SQL TYPE .", "signature": "-c", "source_url": "/docs/11/app-ecpg.html", "description": "Automatically generate certain C code from SQL code. Currently, this works for EXEC SQL TYPE ."}, {"names": ["-C mode"], "summary": "Set a compatibility mode. mode can be INFORMIX , INFORMIX_SE , or ORACLE .", "signature": "-C mode", "source_url": "/docs/11/app-ecpg.html", "description": "Set a compatibility mode. mode can be INFORMIX , INFORMIX_SE , or ORACLE ."}, {"names": ["-D symbol"], "summary": "Define a C preprocessor symbol.", "signature": "-D symbol", "source_url": "/docs/11/app-ecpg.html", "description": "Define a C preprocessor symbol."}, {"names": ["-h"], "summary": "Process header files. When this option is specified, the output file extension becomes .h not .c , and the default input file extension is .pgh not .pgc . Also, the -c option is forced on.", "signature": "-h", "source_url": "/docs/11/app-ecpg.html", "description": "Process header files. When this option is specified, the output file extension becomes .h not .c , and the default input file extension is .pgh not .pgc . Also, the -c option is forced on."}, {"names": ["-i"], "summary": "Parse system include files as well.", "signature": "-i", "source_url": "/docs/11/app-ecpg.html", "description": "Parse system include files as well."}, {"names": ["-I directory"], "summary": "Specify an additional include path, used to find files included via EXEC SQL INCLUDE . Defaults are . (current directory), /usr/local/include , the PostgreSQL include directory which is defined at compile time (default: /usr/local/pgsql/include ), and /usr/include , in that order.", "signature": "-I directory", "source_url": "/docs/11/app-ecpg.html", "description": "Specify an additional include path, used to find files included via EXEC SQL INCLUDE . Defaults are . (current directory), /usr/local/include , the PostgreSQL include directory which is defined at compile time (default: /usr/local/pgsql/include ), and /usr/include , in that order."}, {"names": ["-o filename"], "summary": "Specifies that ecpg should write all its output to the given filename . Write -o - to send all output to standard output.", "signature": "-o filename", "source_url": "/docs/11/app-ecpg.html", "description": "Specifies that ecpg should write all its output to the given filename . Write -o - to send all output to standard output."}, {"names": ["-r option"], "summary": "Selects run-time behavior. Option can be one of the following:", "signature": "-r option", "source_url": "/docs/11/app-ecpg.html", "description": "Selects run-time behavior. Option can be one of the following: no_indicator Do not use indicators but instead use special values to represent null values. Historically there have been databases using this approach. prepare Prepare all statements before using them. Libecpg will keep a cache of prepared statements and reuse a statement if it gets executed again. If the cache runs full, libecpg will free the least used statement. questionmarks Allow question mark as placeholder for compatibility reasons. This used to be the default long ago."}, {"names": ["-t"], "summary": "Turn on autocommit of transactions. In this mode, each SQL command is automatically committed unless it is inside an explicit transaction block. In the default mode, commands are committed only when EXEC SQL COMMIT is issued.", "signature": "-t", "source_url": "/docs/11/app-ecpg.html", "description": "Turn on autocommit of transactions. In this mode, each SQL command is automatically committed unless it is inside an explicit transaction block. In the default mode, commands are committed only when EXEC SQL COMMIT is issued."}, {"names": ["-v"], "summary": "Print additional information including the version and the \"include\" path.", "signature": "-v", "source_url": "/docs/11/app-ecpg.html", "description": "Print additional information including the version and the \"include\" path."}, {"names": ["--version"], "summary": "Print the ecpg version and exit.", "signature": "--version", "source_url": "/docs/11/app-ecpg.html", "description": "Print the ecpg version and exit."}, {"names": ["-?", "--help"], "summary": "Show help about ecpg command line arguments, and exit.", "signature": "-? --help", "source_url": "/docs/11/app-ecpg.html", "description": "Show help about ecpg command line arguments, and exit."}], "related": [], "release": {"ref": "https://ftp.postgresql.org/pub/source/v11.22/postgresql-11.22.tar.bz2", "label": "11.22", "major": "11", "channel": "historical", "manifest": {"pdf": {"A4": {"url": "/files/documentation/pdf/11/postgresql-11-A4.pdf", "bytes": 13057499, "pages": 2732, "sha256": "41d75855e610d0d9b8802b87dc5b080bef8d7e91c7cf69401fbf8d3cf801b4b5", "built_at": "2026-09-26"}, "US": {"url": "/files/documentation/pdf/11/postgresql-11-US.pdf", "bytes": 12961189, "pages": 2883, "sha256": "6a8899ef36935a5b7ed2b436207564a567a4ef1eb1c2200195876b8de4d4fa30", "built_at": "2026-09-26"}}, "tree": "11", "index": "index.html", "major": "11", "pages": 1125, "release": "11.22", "source_url": "https://ftp.postgresql.org/pub/source/v11.22/postgresql-11.22.tar.bz2", "svg_assets": 0, "source_mode": "en HTML verified against the pinned official archive", "source_sha256": "2cb7c97d7a0d7278851bbc9c61f467b69c094c72b81740b751108e7892ebe1f0"}, "revision": "53315ddaf3b3f9e6669fd1edc096bbb2cd4a65ea3e836c89e542b43af9ba3a7f", "evidence_kind": "English manual and source declarations", "source_sha256": "2cb7c97d7a0d7278851bbc9c61f467b69c094c72b81740b751108e7892ebe1f0"}, "sources": [{"url": "https://pg.center/docs/11/app-ecpg.html", "file": "app-ecpg.html", "label": "11.22 English manual \u00b7 app-ecpg.html", "anchor": "", "sha256": "ec6e6ca128d11aa81d66df9586452a96fde7990cb79e8eea24ad22665c52420a", "language": "en", "original_url": "/docs/11/app-ecpg.html"}, {"url": "https://pg.center/docs/11/reference-client.html", "file": "reference-client.html", "label": "Client applications inventory", "anchor": "", "sha256": "3a30e696058b118a55cc42892c39671d9bae86f77e1024d5ebcc4688ad9ab4c3", "language": "en", "original_url": "/docs/11/reference-client.html"}], "sections": [], "synopsis": ["ecpg [ option ...] file ..."], "signature": "ecpg [ option ...] file ...", "description": ["ecpg \u2014 \u5d4c\u5165\u5f0f SQL C \u9884\u5904\u7406\u5668"], "environment": [], "manual_html": "<div><div class=\"refentry\" id=\"APP-ECPG\">\n<div class=\"titlepage\"></div>\n<div class=\"refnamediv\">\n<h2><span class=\"refentrytitle\"><span class=\"application\">ecpg</span></span></h2>\n<p lang=\"zh\"><span class=\"application\">ecpg</span> \u2014 \u5d4c\u5165\u5f0f SQL C \u9884\u5904\u7406\u5668</p>\n</div>\n<div class=\"refsynopsisdiv\">\n<h2 lang=\"zh\">\u5927\u7eb2</h2>\n<div class=\"cmdsynopsis\">\n<p id=\"id-1.9.4.8.4.1\"><code class=\"command\">ecpg</code> [<em class=\"replaceable\"><code>option</code></em>...] <em class=\"replaceable\"><code>file</code></em>...</p>\n</div>\n</div>\n<div class=\"refsect1\" id=\"APP-ECPG-DESCRIPTION\">\n<h2 lang=\"zh\">\u8bf4\u660e</h2>\n<p lang=\"zh\"><code class=\"command\">ecpg</code>\u662f\u4f9b C \u7a0b\u5e8f\u4f7f\u7528\u7684\u5d4c\u5165\u5f0f SQL \u9884\u5904\u7406\u5668\u3002\u5b83\u4f1a\u628a\u5d4c\u5165\u4e86 SQL \u8bed\u53e5\u7684 C \u7a0b\u5e8f\u8f6c\u6362\u6210\u666e\u901a C \u4ee3\u7801\uff0c\u65b9\u6cd5\u662f\u5c06 SQL \u8c03\u7528\u66ff\u6362\u4e3a\u7279\u6b8a\u7684\u51fd\u6570\u8c03\u7528\u3002\u751f\u6210\u7684\u8f93\u51fa\u6587\u4ef6\u968f\u540e\u53ef\u4ee5\u7531\u4efb\u4f55 C \u7f16\u8bd1\u5668\u5de5\u5177\u94fe\u5904\u7406\u3002</p>\n<p lang=\"zh\"><code class=\"command\">ecpg</code>\u4f1a\u5c06\u547d\u4ee4\u884c\u4e2d\u7ed9\u51fa\u7684\u6bcf\u4e2a\u8f93\u5165\u6587\u4ef6\u8f6c\u6362\u6210\u5bf9\u5e94\u7684 C \u8f93\u51fa\u6587\u4ef6\u3002\u82e5\u8f93\u5165\u6587\u4ef6\u540d\u6ca1\u6709\u4efb\u4f55\u6269\u5c55\u540d\uff0c\u5219\u5047\u5b9a\u5176\u6269\u5c55\u540d\u4e3a<code class=\"filename\">.pgc</code>\u3002\u968f\u540e\u4f1a\u628a\u8be5\u6587\u4ef6\u7684\u6269\u5c55\u540d\u66ff\u6362\u4e3a <code class=\"filename\">.c</code>\uff0c\u4ee5\u6784\u9020\u8f93\u51fa\u6587\u4ef6\u540d\u3002\u4e0d\u8fc7\uff0c\u4e5f\u53ef\u4ee5\u7528<code class=\"option\">-o</code>\u9009\u9879\u8986\u76d6\u8f93\u51fa\u6587\u4ef6\u540d\u3002</p>\n<p lang=\"zh\">\u5982\u679c\u8f93\u5165\u6587\u4ef6\u540d\u53ea\u662f<code class=\"literal\">-</code>\uff0c<code class=\"command\">ecpg</code>\u5c31\u4f1a\u4ece\u6807\u51c6\u8f93\u5165\u8bfb\u53d6\u7a0b\u5e8f\uff08\u5e76\u5199\u5230\u6807\u51c6\u8f93\u51fa\uff0c\u9664\u975e\u4f7f\u7528<code class=\"option\">-o</code>\u8986\u76d6\u8be5\u884c\u4e3a\uff09\u3002</p>\n<p lang=\"zh\">\u672c\u53c2\u8003\u9875\u4e0d\u63cf\u8ff0\u5d4c\u5165\u5f0f SQL \u8bed\u8a00\u3002\u6709\u5173\u8be5\u4e3b\u9898\u7684\u66f4\u591a\u4fe1\u606f\uff0c\u89c1<a class=\"xref\" href=\"/docs/11/ecpg.html\" title=\"\u7b2c\u00a036\u00a0\u7ae0\u00a0ECPG - C \u4e2d\u7684\u5d4c\u5165\u5f0f SQL\">\u7b2c\u00a036\u00a0\u7ae0</a>\u3002</p>\n</div>\n<div class=\"refsect1\" id=\"id-1.9.4.8.6\">\n<h2 lang=\"zh\">\u9009\u9879</h2>\n<p lang=\"zh\"><code class=\"command\">ecpg</code>\u63a5\u53d7\u4ee5\u4e0b\u547d\u4ee4\u884c\u53c2\u6570\uff1a</p>\n<div class=\"variablelist\">\n<dl class=\"variablelist\">\n<dt><span class=\"term\"><code class=\"option\">-c</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u81ea\u52a8\u4ece SQL \u4ee3\u7801\u751f\u6210\u67d0\u4e9b C \u4ee3\u7801\u3002\u76ee\u524d\uff0c\u8fd9\u9002\u7528\u4e8e<code class=\"literal\">EXEC SQL TYPE</code>\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-C <em class=\"replaceable\"><code>mode</code></em></code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u8bbe\u7f6e\u517c\u5bb9\u6a21\u5f0f\u3002<em class=\"replaceable\"><code>mode</code></em>\u53ef\u4ee5\u662f<code class=\"literal\">INFORMIX</code>\u3001<code class=\"literal\">INFORMIX_SE</code>\uff0c\u6216<code class=\"literal\">ORACLE</code>\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-D <em class=\"replaceable\"><code>symbol</code></em></code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u5b9a\u4e49\u4e00\u4e2a C \u9884\u5904\u7406\u5668\u7b26\u53f7\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-h</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u5904\u7406\u5934\u6587\u4ef6\u3002\u6307\u5b9a\u8be5\u9009\u9879\u65f6\uff0c\u8f93\u51fa\u6587\u4ef6\u6269\u5c55\u540d\u53d8\u4e3a<code class=\"literal\">.h</code>\u800c\u4e0d\u662f<code class=\"literal\">.c</code>\uff0c\u9ed8\u8ba4\u8f93\u5165\u6587\u4ef6\u6269\u5c55\u540d\u4e5f\u53d8\u4e3a<code class=\"literal\">.pgh</code>\u800c\u4e0d\u662f<code class=\"literal\">.pgc</code>\u3002\u6b64\u5916\uff0c\u8fd8\u4f1a\u5f3a\u5236\u542f\u7528<code class=\"option\">-c</code>\u9009\u9879\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-i</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u4e5f\u89e3\u6790\u7cfb\u7edf\u5305\u542b\u6587\u4ef6\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-I <em class=\"replaceable\"><code>directory</code></em></code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6307\u5b9a\u4e00\u4e2a\u9644\u52a0\u7684\u5305\u542b\u6587\u4ef6\u641c\u7d22\u8def\u5f84\uff0c\u7528\u4e8e\u67e5\u627e\u901a\u8fc7<code class=\"literal\">EXEC SQL INCLUDE</code>\u5305\u542b\u7684\u6587\u4ef6\u3002\u9ed8\u8ba4\u8def\u5f84\u4f9d\u6b21\u4e3a<code class=\"filename\">.</code>\uff08\u5f53\u524d\u76ee\u5f55\uff09\u3001<code class=\"filename\">/usr/local/include</code>\u3001\u7f16\u8bd1\u65f6\u5b9a\u4e49\u7684<span class=\"productname\">PostgreSQL</span>\u5305\u542b\u6587\u4ef6\u76ee\u5f55\uff08\u9ed8\u8ba4\uff1a<code class=\"filename\">/usr/local/pgsql/include</code>\uff09\uff0c\u4ee5\u53ca<code class=\"filename\">/usr/include</code>\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-o <em class=\"replaceable\"><code>filename</code></em></code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6307\u5b9a<code class=\"command\">ecpg</code>\u5e94\u5c06\u5168\u90e8\u8f93\u51fa\u5199\u5165\u7ed9\u5b9a\u7684<em class=\"replaceable\"><code>filename</code></em>\u3002\u5199\u6210<code class=\"literal\">-o -</code>\u53ef\u5c06\u5168\u90e8\u8f93\u51fa\u53d1\u9001\u5230\u6807\u51c6\u8f93\u51fa\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-r <em class=\"replaceable\"><code>option</code></em></code></span></dt>\n<dd>\n<p lang=\"zh\">\u9009\u62e9\u8fd0\u884c\u65f6\u884c\u4e3a\u3002\u9009\u9879\u53ef\u4ee5\u662f\u4e0b\u5217\u503c\u4e4b\u4e00\uff1a</p>\n<div class=\"variablelist\">\n<dl class=\"variablelist\">\n<dt><span class=\"term\"><code class=\"option\">no_indicator</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u4e0d\u4f7f\u7528\u6307\u793a\u7b26\uff0c\u800c\u6539\u7528\u7279\u6b8a\u503c\u8868\u793a\u7a7a\u503c\u3002\u5386\u53f2\u4e0a\u66fe\u6709\u6570\u636e\u5e93\u91c7\u7528\u8fd9\u79cd\u65b9\u5f0f\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">prepare</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u5728\u4f7f\u7528\u524d\u9884\u5907\u6240\u6709\u8bed\u53e5\u3002libecpg\u4f1a\u7ef4\u62a4\u4e00\u4e2a\u5df2\u9884\u5907\u8bed\u53e5\u7684\u7f13\u5b58\uff1b\u5982\u679c\u67d0\u6761\u8bed\u53e5\u518d\u6b21\u6267\u884c\uff0c\u5c31\u4f1a\u590d\u7528\u5b83\u3002\u82e5\u7f13\u5b58\u5df2\u6ee1\uff0clibecpg\u4f1a\u91ca\u653e\u4f7f\u7528\u6b21\u6570\u6700\u5c11\u7684\u8bed\u53e5\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">questionmarks</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u51fa\u4e8e\u517c\u5bb9\u6027\u539f\u56e0\uff0c\u5141\u8bb8\u4f7f\u7528\u95ee\u53f7\u4f5c\u4e3a\u5360\u4f4d\u7b26\u3002\u8fd9\u5728\u5f88\u4e45\u4ee5\u524d\u66fe\u662f\u9ed8\u8ba4\u884c\u4e3a\u3002</p>\n</p>\n</dd>\n</dl>\n</div>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-t</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6253\u5f00\u4e8b\u52a1\u81ea\u52a8\u63d0\u4ea4\u3002\u5728\u6b64\u6a21\u5f0f\u4e0b\uff0c\u9664\u975e SQL \u547d\u4ee4\u4f4d\u4e8e\u663e\u5f0f\u4e8b\u52a1\u5757\u4e2d\uff0c\u5426\u5219\u6bcf\u6761 SQL \u547d\u4ee4\u90fd\u4f1a\u81ea\u52a8\u63d0\u4ea4\u3002\u5728\u9ed8\u8ba4\u6a21\u5f0f\u4e0b\uff0c\u53ea\u6709\u53d1\u51fa<code class=\"command\">EXEC SQL COMMIT</code>\u65f6\u624d\u4f1a\u63d0\u4ea4\u547d\u4ee4\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-v</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6253\u5370\u9644\u52a0\u4fe1\u606f\uff0c\u5305\u62ec\u7248\u672c\u548c\u5305\u542b\u6587\u4ef6\u641c\u7d22\u8def\u5f84\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">--version</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6253\u5370<span class=\"application\">ecpg</span>\u7248\u672c\u5e76\u9000\u51fa\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-?</code><br/></span><span class=\"term\"><code class=\"option\">--help</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u663e\u793a\u5173\u4e8e<span class=\"application\">ecpg</span>\u547d\u4ee4\u884c\u53c2\u6570\u7684\u5e2e\u52a9\u4fe1\u606f\uff0c\u5e76\u9000\u51fa\u3002</p>\n</p>\n</dd>\n</dl>\n</div>\n</div>\n<div class=\"refsect1\" id=\"id-1.9.4.8.7\">\n<h2 lang=\"zh\">\u6ce8\u89e3</h2>\n<p lang=\"zh\">\u5728\u7f16\u8bd1\u9884\u5904\u7406\u540e\u7684 C \u4ee3\u7801\u6587\u4ef6\u65f6\uff0c\u7f16\u8bd1\u5668\u5fc5\u987b\u80fd\u591f\u5728<span class=\"productname\">PostgreSQL</span>\u7684\u5305\u542b\u6587\u4ef6\u76ee\u5f55\u4e2d\u627e\u5230<span class=\"application\">ECPG</span>\u5934\u6587\u4ef6\u3002\u56e0\u6b64\uff0c\u8c03\u7528\u7f16\u8bd1\u5668\u65f6\u4f60\u53ef\u80fd\u9700\u8981\u4f7f\u7528<code class=\"option\">-I</code>\u9009\u9879\uff08\u4f8b\u5982<code class=\"literal\">-I/usr/local/pgsql/include</code>\uff09\u3002</p>\n<p lang=\"zh\">\u4f7f\u7528\u5d4c\u5165\u5f0f SQL \u7684 C \u7a0b\u5e8f\u5fc5\u987b\u4e0e<code class=\"filename\">libecpg</code>\u5e93\u94fe\u63a5\uff0c\u4f8b\u5982\u53ef\u4f7f\u7528\u94fe\u63a5\u5668\u9009\u9879<code class=\"literal\">-L/usr/local/pgsql/lib -lecpg</code>\u3002</p>\n<p lang=\"zh\">\u5f53\u524d\u5b89\u88c5\u4f7f\u7528\u7684\u8fd9\u4e24\u4e2a\u76ee\u5f55\u53ef\u901a\u8fc7<a class=\"xref\" href=\"/docs/11/app-pgconfig.html\" title=\"pg_config\"><span class=\"refentrytitle\">pg_config</span></a>\u67e5\u8be2\u3002</p>\n</div>\n<div class=\"refsect1\" id=\"id-1.9.4.8.8\">\n<h2 lang=\"zh\">\u793a\u4f8b</h2>\n<p lang=\"zh\">\u5982\u679c\u4f60\u6709\u4e00\u4e2a\u540d\u4e3a<code class=\"filename\">prog1.pgc</code>\u7684\u5d4c\u5165\u5f0f SQL C \u6e90\u6587\u4ef6\uff0c\u5c31\u53ef\u4ee5\u4f7f\u7528\u4e0b\u5217\u547d\u4ee4\u5e8f\u5217\u521b\u5efa\u4e00\u4e2a\u53ef\u6267\u884c\u7a0b\u5e8f\uff1a</p>\n<pre class=\"programlisting\">ecpg prog1.pgc\ncc -I/usr/local/pgsql/include -c prog1.c\ncc -o prog1 prog1.o -L/usr/local/pgsql/lib -lecpg\n</pre>\n</div>\n</div></div>", "manual_path": "app-ecpg.html", "localization": {"status": "complete", "sources": [{"url": "/docs/11/app-ecpg.html", "method": "same-major semantic node", "sha256": "ee758a148d55b09ca8b6260105564a0d77d93ef47ff21025f0a4b636a433044c", "language": "zh", "matched_nodes": ["#APP-ECPG/div[2]/p[1]", "#APP-ECPG/div[3]/h2[0]", "#APP-ECPG/div[4]/p[1]", "#APP-ECPG/div[4]/p[2]", "#APP-ECPG/div[4]/p[3]", "#APP-ECPG/div[4]/p[4]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[11]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[13]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[15]/div[1]/dl[0]/dd[1]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[15]/div[1]/dl[0]/dd[3]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[15]/div[1]/dl[0]/dd[5]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[17]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[19]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[1]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[21]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[23]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[3]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[5]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[7]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[9]", "#APP-ECPG/div[5]/p[1]", "#APP-ECPG/div[6]/h2[0]", "#APP-ECPG/div[6]/p[1]", "#APP-ECPG/div[6]/p[2]", "#APP-ECPG/div[6]/p[3]", "#APP-ECPG/div[7]/h2[0]", "#APP-ECPG/div[7]/p[1]"]}], "language": "zh", "original_text": {"/versions/11/description/0": "ecpg \u2014 embedded SQL C preprocessor", "/versions/11/facts/0/label": "Documented executable", "/versions/11/facts/1/label": "Executable version", "/versions/11/facts/2/label": "Reference inventory", "/versions/11/facts/2/value": "Client applications", "/versions/11/facts/3/label": "Option definition groups", "/versions/11/tables/0/title": "Documented options", "/versions/11/tables/0/rows/0/summary": "Automatically generate certain C code from SQL code. Currently, this works for EXEC SQL TYPE .", "/versions/11/tables/0/rows/1/summary": "Set a compatibility mode. mode can be INFORMIX , INFORMIX_SE , or ORACLE .", "/versions/11/tables/0/rows/2/summary": "Define a C preprocessor symbol.", "/versions/11/tables/0/rows/3/summary": "Process header files. When this option is specified, the output file extension becomes .h not .c , and the default input file extension is .pgh not .pgc . Also, the -c option is forced on.", "/versions/11/tables/0/rows/4/summary": "Parse system include files as well.", "/versions/11/tables/0/rows/5/summary": "Specify an additional include path, used to find files included via EXEC SQL INCLUDE . Defaults are . (current directory), /usr/local/include , the PostgreSQL include directory which is defined at compile time (default: /usr/local/pgsql/include ), and /usr/include , in that order.", "/versions/11/tables/0/rows/6/summary": "Specifies that ecpg should write all its output to the given filename . Write -o - to send all output to standard output.", "/versions/11/tables/0/rows/7/summary": "Selects run-time behavior. Option can be one of the following:", "/versions/11/tables/0/rows/8/summary": "Turn on autocommit of transactions. In this mode, each SQL command is automatically committed unless it is inside an explicit transaction block. In the default mode, commands are committed only when EXEC SQL COMMIT is issued.", "/versions/11/tables/0/rows/9/summary": "Print additional information including the version and the \"include\" path.", "/versions/11/tables/0/columns/0/label": "Option and arguments", "/versions/11/tables/0/columns/1/label": "Description", "/versions/11/tables/0/rows/10/summary": "Print the ecpg version and exit.", "/versions/11/tables/0/rows/11/summary": "Show help about ecpg command line arguments, and exit."}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "0bbf7ace2b8bac9600e5dcd39fd3fe058fbd15374c698b0a1d39634144ab4918"}, "comparison_data": {"options": [{"names": ["-c"], "signature": "-c", "description": "Automatically generate certain C code from SQL code. Currently, this works for EXEC SQL TYPE ."}, {"names": ["-C mode"], "signature": "-C mode", "description": "Set a compatibility mode. mode can be INFORMIX , INFORMIX_SE , or ORACLE ."}, {"names": ["-D symbol"], "signature": "-D symbol", "description": "Define a C preprocessor symbol."}, {"names": ["-h"], "signature": "-h", "description": "Process header files. When this option is specified, the output file extension becomes .h not .c , and the default input file extension is .pgh not .pgc . Also, the -c option is forced on."}, {"names": ["-i"], "signature": "-i", "description": "Parse system include files as well."}, {"names": ["-I directory"], "signature": "-I directory", "description": "Specify an additional include path, used to find files included via EXEC SQL INCLUDE . Defaults are . (current directory), /usr/local/include , the PostgreSQL include directory which is defined at compile time (default: /usr/local/pgsql/include ), and /usr/include , in that order."}, {"names": ["-o filename"], "signature": "-o filename", "description": "Specifies that ecpg should write all its output to the given filename . Write -o - to send all output to standard output."}, {"names": ["-r option"], "signature": "-r option", "description": "Selects run-time behavior. Option can be one of the following: no_indicator Do not use indicators but instead use special values to represent null values. Historically there have been databases using this approach. prepare Prepare all statements before using them. Libecpg will keep a cache of prepared statements and reuse a statement if it gets executed again. If the cache runs full, libecpg will free the least used statement. questionmarks Allow question mark as placeholder for compatibility reasons. This used to be the default long ago."}, {"names": ["-t"], "signature": "-t", "description": "Turn on autocommit of transactions. In this mode, each SQL command is automatically committed unless it is inside an explicit transaction block. In the default mode, commands are committed only when EXEC SQL COMMIT is issued."}, {"names": ["-v"], "signature": "-v", "description": "Print additional information including the version and the \"include\" path."}, {"names": ["--version"], "signature": "--version", "description": "Print the ecpg version and exit."}, {"names": ["-?", "--help"], "signature": "-? --help", "description": "Show help about ecpg command line arguments, and exit."}], "synopsis": ["ecpg [ option ...] file ..."], "environment": []}, "comparison_hash": "f2ddda4cae1716cfa2c86213d397fd2d4273e5f9e21eb8f0ed95e88e6a813451", "manual_language": "zh"}, "12": {"facts": [{"label": "\u624b\u518c\u4e2d\u7684\u53ef\u6267\u884c\u7a0b\u5e8f", "value": "ecpg"}, {"label": "\u7a0b\u5e8f\u7248\u672c", "value": "12.22"}, {"label": "\u53c2\u8003\u6e05\u5355", "value": "\u5ba2\u6237\u7aef\u7a0b\u5e8f"}, {"label": "\u9009\u9879\u5b9a\u4e49\u7ec4", "value": "12"}], "tables": [{"key": "options", "rows": [{"summary": "\u81ea\u52a8\u4ece SQL \u4ee3\u7801\u751f\u6210\u67d0\u4e9b C \u4ee3\u7801\u3002\u76ee\u524d\uff0c\u8fd9\u9002\u7528\u4e8e EXEC SQL TYPE \u3002", "signature": {"url": "/docs/12/app-ecpg.html", "text": "-c"}}, {"summary": "\u8bbe\u7f6e\u517c\u5bb9\u6a21\u5f0f\u3002 mode \u53ef\u4ee5\u662f INFORMIX \u3001 INFORMIX_SE \uff0c\u6216 ORACLE \u3002", "signature": {"url": "/docs/12/app-ecpg.html", "text": "-C mode"}}, {"summary": "\u5b9a\u4e49\u4e00\u4e2a\u9884\u5904\u7406\u5668\u7b26\u53f7\uff0c\u7b49\u6548\u4e8e EXEC SQL DEFINE \u6307\u4ee4\u3002\u5982\u679c\u672a\u6307\u5b9a value \uff0c\u5219\u8be5\u7b26\u53f7\u4f1a\u88ab\u5b9a\u4e49\u4e3a\u503c 1 \u3002", "signature": {"url": "/docs/12/app-ecpg.html", "text": "-D symbol [= value ]"}}, {"summary": "\u5904\u7406\u5934\u6587\u4ef6\u3002\u6307\u5b9a\u8be5\u9009\u9879\u65f6\uff0c\u8f93\u51fa\u6587\u4ef6\u6269\u5c55\u540d\u53d8\u4e3a .h \u800c\u4e0d\u662f .c \uff0c\u9ed8\u8ba4\u8f93\u5165\u6587\u4ef6\u6269\u5c55\u540d\u4e5f\u53d8\u4e3a .pgh \u800c\u4e0d\u662f .pgc \u3002\u6b64\u5916\uff0c\u8fd8\u4f1a\u5f3a\u5236\u542f\u7528 -c \u9009\u9879\u3002", "signature": {"url": "/docs/12/app-ecpg.html", "text": "-h"}}, {"summary": "\u4e5f\u89e3\u6790\u7cfb\u7edf\u5305\u542b\u6587\u4ef6\u3002", "signature": {"url": "/docs/12/app-ecpg.html", "text": "-i"}}, {"summary": "\u6307\u5b9a\u4e00\u4e2a\u9644\u52a0\u7684\u5305\u542b\u6587\u4ef6\u641c\u7d22\u8def\u5f84\uff0c\u7528\u4e8e\u67e5\u627e\u901a\u8fc7 EXEC SQL INCLUDE \u5305\u542b\u7684\u6587\u4ef6\u3002\u9ed8\u8ba4\u8def\u5f84\u4f9d\u6b21\u4e3a . \uff08\u5f53\u524d\u76ee\u5f55\uff09\u3001 /usr/local/include \u3001\u7f16\u8bd1\u65f6\u5b9a\u4e49\u7684 PostgreSQL \u5305\u542b\u6587\u4ef6\u76ee\u5f55\uff08\u9ed8\u8ba4\uff1a /usr/local/pgsql/include \uff09\uff0c\u4ee5\u53ca /usr/include \u3002", "signature": {"url": "/docs/12/app-ecpg.html", "text": "-I directory"}}, {"summary": "\u6307\u5b9a ecpg \u5e94\u5c06\u5168\u90e8\u8f93\u51fa\u5199\u5165\u7ed9\u5b9a\u7684 filename \u3002\u5199\u6210 -o - \u53ef\u5c06\u5168\u90e8\u8f93\u51fa\u53d1\u9001\u5230\u6807\u51c6\u8f93\u51fa\u3002", "signature": {"url": "/docs/12/app-ecpg.html", "text": "-o filename"}}, {"summary": "\u9009\u62e9\u8fd0\u884c\u65f6\u884c\u4e3a\u3002\u9009\u9879\u53ef\u4ee5\u662f\u4e0b\u5217\u503c\u4e4b\u4e00\uff1a", "signature": {"url": "/docs/12/app-ecpg.html", "text": "-r option"}}, {"summary": "\u6253\u5f00\u4e8b\u52a1\u81ea\u52a8\u63d0\u4ea4\u3002\u5728\u6b64\u6a21\u5f0f\u4e0b\uff0c\u9664\u975e SQL \u547d\u4ee4\u4f4d\u4e8e\u663e\u5f0f\u4e8b\u52a1\u5757\u4e2d\uff0c\u5426\u5219\u6bcf\u6761 SQL \u547d\u4ee4\u90fd\u4f1a\u81ea\u52a8\u63d0\u4ea4\u3002\u5728\u9ed8\u8ba4\u6a21\u5f0f\u4e0b\uff0c\u53ea\u6709\u53d1\u51fa EXEC SQL COMMIT \u65f6\u624d\u4f1a\u63d0\u4ea4\u547d\u4ee4\u3002", "signature": {"url": "/docs/12/app-ecpg.html", "text": "-t"}}, {"summary": "\u6253\u5370\u9644\u52a0\u4fe1\u606f\uff0c\u5305\u62ec\u7248\u672c\u548c\u5305\u542b\u6587\u4ef6\u641c\u7d22\u8def\u5f84\u3002", "signature": {"url": "/docs/12/app-ecpg.html", "text": "-v"}}, {"summary": "\u6253\u5370 ecpg \u7248\u672c\u5e76\u9000\u51fa\u3002", "signature": {"url": "/docs/12/app-ecpg.html", "text": "--version"}}, {"summary": "\u663e\u793a\u5173\u4e8e ecpg \u547d\u4ee4\u884c\u53c2\u6570\u7684\u5e2e\u52a9\u4fe1\u606f\uff0c\u5e76\u9000\u51fa\u3002", "signature": {"url": "/docs/12/app-ecpg.html", "text": "-? --help"}}], "title": "\u624b\u518c\u4e2d\u7684\u9009\u9879", "columns": [{"key": "signature", "label": "\u9009\u9879\u4e0e\u53c2\u6570"}, {"key": "summary", "label": "\u8bf4\u660e"}]}], "options": [{"names": ["-c"], "summary": "Automatically generate certain C code from SQL code. Currently, this works for EXEC SQL TYPE .", "signature": "-c", "source_url": "/docs/12/app-ecpg.html", "description": "Automatically generate certain C code from SQL code. Currently, this works for EXEC SQL TYPE ."}, {"names": ["-C mode"], "summary": "Set a compatibility mode. mode can be INFORMIX , INFORMIX_SE , or ORACLE .", "signature": "-C mode", "source_url": "/docs/12/app-ecpg.html", "description": "Set a compatibility mode. mode can be INFORMIX , INFORMIX_SE , or ORACLE ."}, {"names": ["-D symbol [= value ]"], "summary": "Define a preprocessor symbol, equivalently to the EXEC SQL DEFINE directive. If no value is specified, the symbol is defined with the value 1 .", "signature": "-D symbol [= value ]", "source_url": "/docs/12/app-ecpg.html", "description": "Define a preprocessor symbol, equivalently to the EXEC SQL DEFINE directive. If no value is specified, the symbol is defined with the value 1 ."}, {"names": ["-h"], "summary": "Process header files. When this option is specified, the output file extension becomes .h not .c , and the default input file extension is .pgh not .pgc . Also, the -c option is forced on.", "signature": "-h", "source_url": "/docs/12/app-ecpg.html", "description": "Process header files. When this option is specified, the output file extension becomes .h not .c , and the default input file extension is .pgh not .pgc . Also, the -c option is forced on."}, {"names": ["-i"], "summary": "Parse system include files as well.", "signature": "-i", "source_url": "/docs/12/app-ecpg.html", "description": "Parse system include files as well."}, {"names": ["-I directory"], "summary": "Specify an additional include path, used to find files included via EXEC SQL INCLUDE . Defaults are . (current directory), /usr/local/include , the PostgreSQL include directory which is defined at compile time (default: /usr/local/pgsql/include ), and /usr/include , in that order.", "signature": "-I directory", "source_url": "/docs/12/app-ecpg.html", "description": "Specify an additional include path, used to find files included via EXEC SQL INCLUDE . Defaults are . (current directory), /usr/local/include , the PostgreSQL include directory which is defined at compile time (default: /usr/local/pgsql/include ), and /usr/include , in that order."}, {"names": ["-o filename"], "summary": "Specifies that ecpg should write all its output to the given filename . Write -o - to send all output to standard output.", "signature": "-o filename", "source_url": "/docs/12/app-ecpg.html", "description": "Specifies that ecpg should write all its output to the given filename . Write -o - to send all output to standard output."}, {"names": ["-r option"], "summary": "Selects run-time behavior. Option can be one of the following:", "signature": "-r option", "source_url": "/docs/12/app-ecpg.html", "description": "Selects run-time behavior. Option can be one of the following: no_indicator Do not use indicators but instead use special values to represent null values. Historically there have been databases using this approach. prepare Prepare all statements before using them. Libecpg will keep a cache of prepared statements and reuse a statement if it gets executed again. If the cache runs full, libecpg will free the least used statement. questionmarks Allow question mark as placeholder for compatibility reasons. This used to be the default long ago."}, {"names": ["-t"], "summary": "Turn on autocommit of transactions. In this mode, each SQL command is automatically committed unless it is inside an explicit transaction block. In the default mode, commands are committed only when EXEC SQL COMMIT is issued.", "signature": "-t", "source_url": "/docs/12/app-ecpg.html", "description": "Turn on autocommit of transactions. In this mode, each SQL command is automatically committed unless it is inside an explicit transaction block. In the default mode, commands are committed only when EXEC SQL COMMIT is issued."}, {"names": ["-v"], "summary": "Print additional information including the version and the \"include\" path.", "signature": "-v", "source_url": "/docs/12/app-ecpg.html", "description": "Print additional information including the version and the \"include\" path."}, {"names": ["--version"], "summary": "Print the ecpg version and exit.", "signature": "--version", "source_url": "/docs/12/app-ecpg.html", "description": "Print the ecpg version and exit."}, {"names": ["-?", "--help"], "summary": "Show help about ecpg command line arguments, and exit.", "signature": "-? --help", "source_url": "/docs/12/app-ecpg.html", "description": "Show help about ecpg command line arguments, and exit."}], "related": [], "release": {"ref": "https://ftp.postgresql.org/pub/source/v12.22/postgresql-12.22.tar.bz2", "label": "12.22", "major": "12", "channel": "historical", "manifest": {"pdf": {"A4": {"url": "/files/documentation/pdf/12/postgresql-12-A4.pdf", "bytes": 13424351, "pages": 2803, "sha256": "7422cf53fd1939e7a3d2925231a88b0330e468afa5393627cac0ff86158a0621", "built_at": "2026-09-26"}, "US": {"url": "/files/documentation/pdf/12/postgresql-12-US.pdf", "bytes": 13322565, "pages": 2958, "sha256": "51f3b04e72907fc38512685946223452ea65f84419c60c66241dfa3396035e77", "built_at": "2026-09-26"}}, "tree": "12", "index": "index.html", "major": "12", "pages": 1131, "release": "12.22", "source_url": "https://ftp.postgresql.org/pub/source/v12.22/postgresql-12.22.tar.bz2", "svg_assets": 2, "source_mode": "en HTML verified against the pinned official archive", "source_sha256": "8df3c0474782589d3c6f374b5133b1bd14d168086edbc13c6e72e67dd4527a3b"}, "revision": "7a827e97cbfacd7febff75f34443e2043e40723de5b6d8c9d81a9430b65a37e4", "evidence_kind": "English manual and source declarations", "source_sha256": "8df3c0474782589d3c6f374b5133b1bd14d168086edbc13c6e72e67dd4527a3b"}, "sources": [{"url": "https://pg.center/docs/12/app-ecpg.html", "file": "app-ecpg.html", "label": "12.22 English manual \u00b7 app-ecpg.html", "anchor": "", "sha256": "41252bd4d3552a190709e096e6557ea78a07489e9477ece5382fd54b68589dba", "language": "en", "original_url": "/docs/12/app-ecpg.html"}, {"url": "https://pg.center/docs/12/reference-client.html", "file": "reference-client.html", "label": "Client applications inventory", "anchor": "", "sha256": "089624dd131f52eea682b304f87a1acb03392ee7bcf78b000699c9b17c7ca22d", "language": "en", "original_url": "/docs/12/reference-client.html"}], "sections": [], "synopsis": ["ecpg [ option ...] file ..."], "signature": "ecpg [ option ...] file ...", "description": ["ecpg \u2014 \u5d4c\u5165\u5f0f SQL C \u9884\u5904\u7406\u5668"], "environment": [], "manual_html": "<div><div class=\"refentry\" id=\"APP-ECPG\">\n<div class=\"titlepage\"></div>\n<div class=\"refnamediv\">\n<h2><span class=\"refentrytitle\"><span class=\"application\">ecpg</span></span></h2>\n<p lang=\"zh\"><span class=\"application\">ecpg</span> \u2014 \u5d4c\u5165\u5f0f SQL C \u9884\u5904\u7406\u5668</p>\n</div>\n<div class=\"refsynopsisdiv\">\n<h2 lang=\"zh\">\u5927\u7eb2</h2>\n<div class=\"cmdsynopsis\">\n<p id=\"id-1.9.4.8.4.1\"><code class=\"command\">ecpg</code> [<em class=\"replaceable\"><code>option</code></em>...] <em class=\"replaceable\"><code>file</code></em>...</p>\n</div>\n</div>\n<div class=\"refsect1\" id=\"APP-ECPG-DESCRIPTION\">\n<h2 lang=\"zh\">\u8bf4\u660e</h2>\n<p lang=\"zh\"><code class=\"command\">ecpg</code>\u662f\u4f9b C \u7a0b\u5e8f\u4f7f\u7528\u7684\u5d4c\u5165\u5f0f SQL \u9884\u5904\u7406\u5668\u3002\u5b83\u4f1a\u628a\u5d4c\u5165\u4e86 SQL \u8bed\u53e5\u7684 C \u7a0b\u5e8f\u8f6c\u6362\u6210\u666e\u901a C \u4ee3\u7801\uff0c\u65b9\u6cd5\u662f\u5c06 SQL \u8c03\u7528\u66ff\u6362\u4e3a\u7279\u6b8a\u7684\u51fd\u6570\u8c03\u7528\u3002\u751f\u6210\u7684\u8f93\u51fa\u6587\u4ef6\u968f\u540e\u53ef\u4ee5\u7531\u4efb\u4f55 C \u7f16\u8bd1\u5668\u5de5\u5177\u94fe\u5904\u7406\u3002</p>\n<p lang=\"zh\"><code class=\"command\">ecpg</code>\u4f1a\u5c06\u547d\u4ee4\u884c\u4e2d\u7ed9\u51fa\u7684\u6bcf\u4e2a\u8f93\u5165\u6587\u4ef6\u8f6c\u6362\u6210\u5bf9\u5e94\u7684 C \u8f93\u51fa\u6587\u4ef6\u3002\u82e5\u8f93\u5165\u6587\u4ef6\u540d\u6ca1\u6709\u4efb\u4f55\u6269\u5c55\u540d\uff0c\u5219\u5047\u5b9a\u5176\u6269\u5c55\u540d\u4e3a<code class=\"filename\">.pgc</code>\u3002\u968f\u540e\u4f1a\u628a\u8be5\u6587\u4ef6\u7684\u6269\u5c55\u540d\u66ff\u6362\u4e3a <code class=\"filename\">.c</code>\uff0c\u4ee5\u6784\u9020\u8f93\u51fa\u6587\u4ef6\u540d\u3002\u4e0d\u8fc7\uff0c\u4e5f\u53ef\u4ee5\u7528<code class=\"option\">-o</code>\u9009\u9879\u8986\u76d6\u8f93\u51fa\u6587\u4ef6\u540d\u3002</p>\n<p lang=\"zh\">\u5982\u679c\u8f93\u5165\u6587\u4ef6\u540d\u53ea\u662f<code class=\"literal\">-</code>\uff0c<code class=\"command\">ecpg</code>\u5c31\u4f1a\u4ece\u6807\u51c6\u8f93\u5165\u8bfb\u53d6\u7a0b\u5e8f\uff08\u5e76\u5199\u5230\u6807\u51c6\u8f93\u51fa\uff0c\u9664\u975e\u4f7f\u7528<code class=\"option\">-o</code>\u8986\u76d6\u8be5\u884c\u4e3a\uff09\u3002</p>\n<p lang=\"zh\">\u672c\u53c2\u8003\u9875\u4e0d\u63cf\u8ff0\u5d4c\u5165\u5f0f SQL \u8bed\u8a00\u3002\u6709\u5173\u8be5\u4e3b\u9898\u7684\u66f4\u591a\u4fe1\u606f\uff0c\u89c1<a class=\"xref\" href=\"/docs/12/ecpg.html\" title=\"\u7b2c\u00a035\u00a0\u7ae0\u00a0ECPG - C \u4e2d\u7684\u5d4c\u5165\u5f0f SQL\">\u7b2c\u00a035\u00a0\u7ae0</a>\u3002</p>\n</div>\n<div class=\"refsect1\" id=\"id-1.9.4.8.6\">\n<h2 lang=\"zh\">\u9009\u9879</h2>\n<p lang=\"zh\"><code class=\"command\">ecpg</code>\u63a5\u53d7\u4ee5\u4e0b\u547d\u4ee4\u884c\u53c2\u6570\uff1a</p>\n<div class=\"variablelist\">\n<dl class=\"variablelist\">\n<dt><span class=\"term\"><code class=\"option\">-c</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u81ea\u52a8\u4ece SQL \u4ee3\u7801\u751f\u6210\u67d0\u4e9b C \u4ee3\u7801\u3002\u76ee\u524d\uff0c\u8fd9\u9002\u7528\u4e8e<code class=\"literal\">EXEC SQL TYPE</code>\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-C <em class=\"replaceable\"><code>mode</code></em></code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u8bbe\u7f6e\u517c\u5bb9\u6a21\u5f0f\u3002<em class=\"replaceable\"><code>mode</code></em>\u53ef\u4ee5\u662f<code class=\"literal\">INFORMIX</code>\u3001<code class=\"literal\">INFORMIX_SE</code>\uff0c\u6216<code class=\"literal\">ORACLE</code>\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-D <em class=\"replaceable\"><code>symbol</code></em>[=<em class=\"replaceable\"><code>value</code></em>]</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u5b9a\u4e49\u4e00\u4e2a\u9884\u5904\u7406\u5668\u7b26\u53f7\uff0c\u7b49\u6548\u4e8e<code class=\"command\">EXEC SQL DEFINE</code>\u6307\u4ee4\u3002\u5982\u679c\u672a\u6307\u5b9a<em class=\"replaceable\"><code>value</code></em>\uff0c\u5219\u8be5\u7b26\u53f7\u4f1a\u88ab\u5b9a\u4e49\u4e3a\u503c<code class=\"literal\">1</code>\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-h</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u5904\u7406\u5934\u6587\u4ef6\u3002\u6307\u5b9a\u8be5\u9009\u9879\u65f6\uff0c\u8f93\u51fa\u6587\u4ef6\u6269\u5c55\u540d\u53d8\u4e3a<code class=\"literal\">.h</code>\u800c\u4e0d\u662f<code class=\"literal\">.c</code>\uff0c\u9ed8\u8ba4\u8f93\u5165\u6587\u4ef6\u6269\u5c55\u540d\u4e5f\u53d8\u4e3a<code class=\"literal\">.pgh</code>\u800c\u4e0d\u662f<code class=\"literal\">.pgc</code>\u3002\u6b64\u5916\uff0c\u8fd8\u4f1a\u5f3a\u5236\u542f\u7528<code class=\"option\">-c</code>\u9009\u9879\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-i</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u4e5f\u89e3\u6790\u7cfb\u7edf\u5305\u542b\u6587\u4ef6\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-I <em class=\"replaceable\"><code>directory</code></em></code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6307\u5b9a\u4e00\u4e2a\u9644\u52a0\u7684\u5305\u542b\u6587\u4ef6\u641c\u7d22\u8def\u5f84\uff0c\u7528\u4e8e\u67e5\u627e\u901a\u8fc7<code class=\"literal\">EXEC SQL INCLUDE</code>\u5305\u542b\u7684\u6587\u4ef6\u3002\u9ed8\u8ba4\u8def\u5f84\u4f9d\u6b21\u4e3a<code class=\"filename\">.</code>\uff08\u5f53\u524d\u76ee\u5f55\uff09\u3001<code class=\"filename\">/usr/local/include</code>\u3001\u7f16\u8bd1\u65f6\u5b9a\u4e49\u7684<span class=\"productname\">PostgreSQL</span>\u5305\u542b\u6587\u4ef6\u76ee\u5f55\uff08\u9ed8\u8ba4\uff1a<code class=\"filename\">/usr/local/pgsql/include</code>\uff09\uff0c\u4ee5\u53ca<code class=\"filename\">/usr/include</code>\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-o <em class=\"replaceable\"><code>filename</code></em></code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6307\u5b9a<code class=\"command\">ecpg</code>\u5e94\u5c06\u5168\u90e8\u8f93\u51fa\u5199\u5165\u7ed9\u5b9a\u7684<em class=\"replaceable\"><code>filename</code></em>\u3002\u5199\u6210<code class=\"literal\">-o -</code>\u53ef\u5c06\u5168\u90e8\u8f93\u51fa\u53d1\u9001\u5230\u6807\u51c6\u8f93\u51fa\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-r <em class=\"replaceable\"><code>option</code></em></code></span></dt>\n<dd>\n<p lang=\"zh\">\u9009\u62e9\u8fd0\u884c\u65f6\u884c\u4e3a\u3002\u9009\u9879\u53ef\u4ee5\u662f\u4e0b\u5217\u503c\u4e4b\u4e00\uff1a</p>\n<div class=\"variablelist\">\n<dl class=\"variablelist\">\n<dt><span class=\"term\"><code class=\"option\">no_indicator</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u4e0d\u4f7f\u7528\u6307\u793a\u7b26\uff0c\u800c\u6539\u7528\u7279\u6b8a\u503c\u8868\u793a\u7a7a\u503c\u3002\u5386\u53f2\u4e0a\u66fe\u6709\u6570\u636e\u5e93\u91c7\u7528\u8fd9\u79cd\u65b9\u5f0f\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">prepare</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u5728\u4f7f\u7528\u524d\u9884\u5907\u6240\u6709\u8bed\u53e5\u3002libecpg\u4f1a\u7ef4\u62a4\u4e00\u4e2a\u5df2\u9884\u5907\u8bed\u53e5\u7684\u7f13\u5b58\uff1b\u5982\u679c\u67d0\u6761\u8bed\u53e5\u518d\u6b21\u6267\u884c\uff0c\u5c31\u4f1a\u590d\u7528\u5b83\u3002\u82e5\u7f13\u5b58\u5df2\u6ee1\uff0clibecpg\u4f1a\u91ca\u653e\u4f7f\u7528\u6b21\u6570\u6700\u5c11\u7684\u8bed\u53e5\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">questionmarks</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u51fa\u4e8e\u517c\u5bb9\u6027\u539f\u56e0\uff0c\u5141\u8bb8\u4f7f\u7528\u95ee\u53f7\u4f5c\u4e3a\u5360\u4f4d\u7b26\u3002\u8fd9\u5728\u5f88\u4e45\u4ee5\u524d\u66fe\u662f\u9ed8\u8ba4\u884c\u4e3a\u3002</p>\n</p>\n</dd>\n</dl>\n</div>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-t</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6253\u5f00\u4e8b\u52a1\u81ea\u52a8\u63d0\u4ea4\u3002\u5728\u6b64\u6a21\u5f0f\u4e0b\uff0c\u9664\u975e SQL \u547d\u4ee4\u4f4d\u4e8e\u663e\u5f0f\u4e8b\u52a1\u5757\u4e2d\uff0c\u5426\u5219\u6bcf\u6761 SQL \u547d\u4ee4\u90fd\u4f1a\u81ea\u52a8\u63d0\u4ea4\u3002\u5728\u9ed8\u8ba4\u6a21\u5f0f\u4e0b\uff0c\u53ea\u6709\u53d1\u51fa<code class=\"command\">EXEC SQL COMMIT</code>\u65f6\u624d\u4f1a\u63d0\u4ea4\u547d\u4ee4\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-v</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6253\u5370\u9644\u52a0\u4fe1\u606f\uff0c\u5305\u62ec\u7248\u672c\u548c\u5305\u542b\u6587\u4ef6\u641c\u7d22\u8def\u5f84\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">--version</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6253\u5370<span class=\"application\">ecpg</span>\u7248\u672c\u5e76\u9000\u51fa\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-?</code><br/></span><span class=\"term\"><code class=\"option\">--help</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u663e\u793a\u5173\u4e8e<span class=\"application\">ecpg</span>\u547d\u4ee4\u884c\u53c2\u6570\u7684\u5e2e\u52a9\u4fe1\u606f\uff0c\u5e76\u9000\u51fa\u3002</p>\n</p>\n</dd>\n</dl>\n</div>\n</div>\n<div class=\"refsect1\" id=\"id-1.9.4.8.7\">\n<h2 lang=\"zh\">\u6ce8\u89e3</h2>\n<p lang=\"zh\">\u5728\u7f16\u8bd1\u9884\u5904\u7406\u540e\u7684 C \u4ee3\u7801\u6587\u4ef6\u65f6\uff0c\u7f16\u8bd1\u5668\u5fc5\u987b\u80fd\u591f\u5728<span class=\"productname\">PostgreSQL</span>\u7684\u5305\u542b\u6587\u4ef6\u76ee\u5f55\u4e2d\u627e\u5230<span class=\"application\">ECPG</span>\u5934\u6587\u4ef6\u3002\u56e0\u6b64\uff0c\u8c03\u7528\u7f16\u8bd1\u5668\u65f6\u4f60\u53ef\u80fd\u9700\u8981\u4f7f\u7528<code class=\"option\">-I</code>\u9009\u9879\uff08\u4f8b\u5982<code class=\"literal\">-I/usr/local/pgsql/include</code>\uff09\u3002</p>\n<p lang=\"zh\">\u4f7f\u7528\u5d4c\u5165\u5f0f SQL \u7684 C \u7a0b\u5e8f\u5fc5\u987b\u4e0e<code class=\"filename\">libecpg</code>\u5e93\u94fe\u63a5\uff0c\u4f8b\u5982\u53ef\u4f7f\u7528\u94fe\u63a5\u5668\u9009\u9879<code class=\"literal\">-L/usr/local/pgsql/lib -lecpg</code>\u3002</p>\n<p lang=\"zh\">\u5f53\u524d\u5b89\u88c5\u4f7f\u7528\u7684\u8fd9\u4e24\u4e2a\u76ee\u5f55\u53ef\u901a\u8fc7<a class=\"xref\" href=\"/docs/12/app-pgconfig.html\" title=\"pg_config\"><span class=\"refentrytitle\">pg_config</span></a>\u67e5\u8be2\u3002</p>\n</div>\n<div class=\"refsect1\" id=\"id-1.9.4.8.8\">\n<h2 lang=\"zh\">\u793a\u4f8b</h2>\n<p lang=\"zh\">\u5982\u679c\u4f60\u6709\u4e00\u4e2a\u540d\u4e3a<code class=\"filename\">prog1.pgc</code>\u7684\u5d4c\u5165\u5f0f SQL C \u6e90\u6587\u4ef6\uff0c\u5c31\u53ef\u4ee5\u4f7f\u7528\u4e0b\u5217\u547d\u4ee4\u5e8f\u5217\u521b\u5efa\u4e00\u4e2a\u53ef\u6267\u884c\u7a0b\u5e8f\uff1a</p>\n<pre class=\"programlisting\">ecpg prog1.pgc\ncc -I/usr/local/pgsql/include -c prog1.c\ncc -o prog1 prog1.o -L/usr/local/pgsql/lib -lecpg\n</pre>\n</div>\n</div></div>", "manual_path": "app-ecpg.html", "localization": {"status": "complete", "sources": [{"url": "/docs/12/app-ecpg.html", "method": "same-major semantic node", "sha256": "d26ad748c0c1ebedc1bfbd7de2fe06804106ef775c4496b7e58d5812d5d6eb7a", "language": "zh", "matched_nodes": ["#APP-ECPG/div[2]/p[1]", "#APP-ECPG/div[3]/h2[0]", "#APP-ECPG/div[4]/p[1]", "#APP-ECPG/div[4]/p[2]", "#APP-ECPG/div[4]/p[3]", "#APP-ECPG/div[4]/p[4]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[11]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[13]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[15]/div[1]/dl[0]/dd[1]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[15]/div[1]/dl[0]/dd[3]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[15]/div[1]/dl[0]/dd[5]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[17]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[19]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[1]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[21]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[23]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[3]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[5]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[7]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[9]", "#APP-ECPG/div[5]/p[1]", "#APP-ECPG/div[6]/h2[0]", "#APP-ECPG/div[6]/p[1]", "#APP-ECPG/div[6]/p[2]", "#APP-ECPG/div[6]/p[3]", "#APP-ECPG/div[7]/h2[0]", "#APP-ECPG/div[7]/p[1]"]}], "language": "zh", "original_text": {"/versions/12/description/0": "ecpg \u2014 embedded SQL C preprocessor", "/versions/12/facts/0/label": "Documented executable", "/versions/12/facts/1/label": "Executable version", "/versions/12/facts/2/label": "Reference inventory", "/versions/12/facts/2/value": "Client applications", "/versions/12/facts/3/label": "Option definition groups", "/versions/12/tables/0/title": "Documented options", "/versions/12/tables/0/rows/0/summary": "Automatically generate certain C code from SQL code. Currently, this works for EXEC SQL TYPE .", "/versions/12/tables/0/rows/1/summary": "Set a compatibility mode. mode can be INFORMIX , INFORMIX_SE , or ORACLE .", "/versions/12/tables/0/rows/2/summary": "Define a preprocessor symbol, equivalently to the EXEC SQL DEFINE directive. If no value is specified, the symbol is defined with the value 1 .", "/versions/12/tables/0/rows/3/summary": "Process header files. When this option is specified, the output file extension becomes .h not .c , and the default input file extension is .pgh not .pgc . Also, the -c option is forced on.", "/versions/12/tables/0/rows/4/summary": "Parse system include files as well.", "/versions/12/tables/0/rows/5/summary": "Specify an additional include path, used to find files included via EXEC SQL INCLUDE . Defaults are . (current directory), /usr/local/include , the PostgreSQL include directory which is defined at compile time (default: /usr/local/pgsql/include ), and /usr/include , in that order.", "/versions/12/tables/0/rows/6/summary": "Specifies that ecpg should write all its output to the given filename . Write -o - to send all output to standard output.", "/versions/12/tables/0/rows/7/summary": "Selects run-time behavior. Option can be one of the following:", "/versions/12/tables/0/rows/8/summary": "Turn on autocommit of transactions. In this mode, each SQL command is automatically committed unless it is inside an explicit transaction block. In the default mode, commands are committed only when EXEC SQL COMMIT is issued.", "/versions/12/tables/0/rows/9/summary": "Print additional information including the version and the \"include\" path.", "/versions/12/tables/0/columns/0/label": "Option and arguments", "/versions/12/tables/0/columns/1/label": "Description", "/versions/12/tables/0/rows/10/summary": "Print the ecpg version and exit.", "/versions/12/tables/0/rows/11/summary": "Show help about ecpg command line arguments, and exit."}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "ba7f1836511918c39f32454d8aac2a8d8bdbb76dfcc6696d66b134883005129f"}, "comparison_data": {"options": [{"names": ["-c"], "signature": "-c", "description": "Automatically generate certain C code from SQL code. Currently, this works for EXEC SQL TYPE ."}, {"names": ["-C mode"], "signature": "-C mode", "description": "Set a compatibility mode. mode can be INFORMIX , INFORMIX_SE , or ORACLE ."}, {"names": ["-D symbol [= value ]"], "signature": "-D symbol [= value ]", "description": "Define a preprocessor symbol, equivalently to the EXEC SQL DEFINE directive. If no value is specified, the symbol is defined with the value 1 ."}, {"names": ["-h"], "signature": "-h", "description": "Process header files. When this option is specified, the output file extension becomes .h not .c , and the default input file extension is .pgh not .pgc . Also, the -c option is forced on."}, {"names": ["-i"], "signature": "-i", "description": "Parse system include files as well."}, {"names": ["-I directory"], "signature": "-I directory", "description": "Specify an additional include path, used to find files included via EXEC SQL INCLUDE . Defaults are . (current directory), /usr/local/include , the PostgreSQL include directory which is defined at compile time (default: /usr/local/pgsql/include ), and /usr/include , in that order."}, {"names": ["-o filename"], "signature": "-o filename", "description": "Specifies that ecpg should write all its output to the given filename . Write -o - to send all output to standard output."}, {"names": ["-r option"], "signature": "-r option", "description": "Selects run-time behavior. Option can be one of the following: no_indicator Do not use indicators but instead use special values to represent null values. Historically there have been databases using this approach. prepare Prepare all statements before using them. Libecpg will keep a cache of prepared statements and reuse a statement if it gets executed again. If the cache runs full, libecpg will free the least used statement. questionmarks Allow question mark as placeholder for compatibility reasons. This used to be the default long ago."}, {"names": ["-t"], "signature": "-t", "description": "Turn on autocommit of transactions. In this mode, each SQL command is automatically committed unless it is inside an explicit transaction block. In the default mode, commands are committed only when EXEC SQL COMMIT is issued."}, {"names": ["-v"], "signature": "-v", "description": "Print additional information including the version and the \"include\" path."}, {"names": ["--version"], "signature": "--version", "description": "Print the ecpg version and exit."}, {"names": ["-?", "--help"], "signature": "-? --help", "description": "Show help about ecpg command line arguments, and exit."}], "synopsis": ["ecpg [ option ...] file ..."], "environment": []}, "comparison_hash": "9b115ab9dbd18516028622d20fe8fe477e01f88cb80ad0615213dea618875d6d", "manual_language": "zh"}, "13": {"facts": [{"label": "\u624b\u518c\u4e2d\u7684\u53ef\u6267\u884c\u7a0b\u5e8f", "value": "ecpg"}, {"label": "\u7a0b\u5e8f\u7248\u672c", "value": "13.23"}, {"label": "\u53c2\u8003\u6e05\u5355", "value": "\u5ba2\u6237\u7aef\u7a0b\u5e8f"}, {"label": "\u9009\u9879\u5b9a\u4e49\u7ec4", "value": "12"}], "tables": [{"key": "options", "rows": [{"summary": "\u81ea\u52a8\u4ece SQL \u4ee3\u7801\u751f\u6210\u67d0\u4e9b C \u4ee3\u7801\u3002\u76ee\u524d\uff0c\u8fd9\u9002\u7528\u4e8e EXEC SQL TYPE \u3002", "signature": {"url": "/docs/13/app-ecpg.html", "text": "-c"}}, {"summary": "\u8bbe\u7f6e\u517c\u5bb9\u6a21\u5f0f\u3002 mode \u53ef\u4ee5\u662f INFORMIX \u3001 INFORMIX_SE \uff0c\u6216 ORACLE \u3002", "signature": {"url": "/docs/13/app-ecpg.html", "text": "-C mode"}}, {"summary": "\u5b9a\u4e49\u4e00\u4e2a\u9884\u5904\u7406\u5668\u7b26\u53f7\uff0c\u7b49\u6548\u4e8e EXEC SQL DEFINE \u6307\u4ee4\u3002\u5982\u679c\u672a\u6307\u5b9a value \uff0c\u5219\u8be5\u7b26\u53f7\u4f1a\u88ab\u5b9a\u4e49\u4e3a\u503c 1 \u3002", "signature": {"url": "/docs/13/app-ecpg.html", "text": "-D symbol [= value ]"}}, {"summary": "\u5904\u7406\u5934\u6587\u4ef6\u3002\u6307\u5b9a\u8be5\u9009\u9879\u65f6\uff0c\u8f93\u51fa\u6587\u4ef6\u6269\u5c55\u540d\u53d8\u4e3a .h \u800c\u4e0d\u662f .c \uff0c\u9ed8\u8ba4\u8f93\u5165\u6587\u4ef6\u6269\u5c55\u540d\u4e5f\u53d8\u4e3a .pgh \u800c\u4e0d\u662f .pgc \u3002\u6b64\u5916\uff0c\u8fd8\u4f1a\u5f3a\u5236\u542f\u7528 -c \u9009\u9879\u3002", "signature": {"url": "/docs/13/app-ecpg.html", "text": "-h"}}, {"summary": "\u4e5f\u89e3\u6790\u7cfb\u7edf\u5305\u542b\u6587\u4ef6\u3002", "signature": {"url": "/docs/13/app-ecpg.html", "text": "-i"}}, {"summary": "\u6307\u5b9a\u4e00\u4e2a\u9644\u52a0\u7684\u5305\u542b\u6587\u4ef6\u641c\u7d22\u8def\u5f84\uff0c\u7528\u4e8e\u67e5\u627e\u901a\u8fc7 EXEC SQL INCLUDE \u5305\u542b\u7684\u6587\u4ef6\u3002\u9ed8\u8ba4\u8def\u5f84\u4f9d\u6b21\u4e3a . \uff08\u5f53\u524d\u76ee\u5f55\uff09\u3001 /usr/local/include \u3001\u7f16\u8bd1\u65f6\u5b9a\u4e49\u7684 PostgreSQL \u5305\u542b\u6587\u4ef6\u76ee\u5f55\uff08\u9ed8\u8ba4\uff1a /usr/local/pgsql/include \uff09\uff0c\u4ee5\u53ca /usr/include \u3002", "signature": {"url": "/docs/13/app-ecpg.html", "text": "-I directory"}}, {"summary": "\u6307\u5b9a ecpg \u5e94\u5c06\u5168\u90e8\u8f93\u51fa\u5199\u5165\u7ed9\u5b9a\u7684 filename \u3002\u5199\u6210 -o - \u53ef\u5c06\u5168\u90e8\u8f93\u51fa\u53d1\u9001\u5230\u6807\u51c6\u8f93\u51fa\u3002", "signature": {"url": "/docs/13/app-ecpg.html", "text": "-o filename"}}, {"summary": "\u9009\u62e9\u8fd0\u884c\u65f6\u884c\u4e3a\u3002\u9009\u9879\u53ef\u4ee5\u662f\u4e0b\u5217\u503c\u4e4b\u4e00\uff1a", "signature": {"url": "/docs/13/app-ecpg.html", "text": "-r option"}}, {"summary": "\u6253\u5f00\u4e8b\u52a1\u81ea\u52a8\u63d0\u4ea4\u3002\u5728\u6b64\u6a21\u5f0f\u4e0b\uff0c\u9664\u975e SQL \u547d\u4ee4\u4f4d\u4e8e\u663e\u5f0f\u4e8b\u52a1\u5757\u4e2d\uff0c\u5426\u5219\u6bcf\u6761 SQL \u547d\u4ee4\u90fd\u4f1a\u81ea\u52a8\u63d0\u4ea4\u3002\u5728\u9ed8\u8ba4\u6a21\u5f0f\u4e0b\uff0c\u53ea\u6709\u53d1\u51fa EXEC SQL COMMIT \u65f6\u624d\u4f1a\u63d0\u4ea4\u547d\u4ee4\u3002", "signature": {"url": "/docs/13/app-ecpg.html", "text": "-t"}}, {"summary": "\u6253\u5370\u9644\u52a0\u4fe1\u606f\uff0c\u5305\u62ec\u7248\u672c\u548c\u5305\u542b\u6587\u4ef6\u641c\u7d22\u8def\u5f84\u3002", "signature": {"url": "/docs/13/app-ecpg.html", "text": "-v"}}, {"summary": "\u6253\u5370 ecpg \u7248\u672c\u5e76\u9000\u51fa\u3002", "signature": {"url": "/docs/13/app-ecpg.html", "text": "--version"}}, {"summary": "\u663e\u793a\u5173\u4e8e ecpg \u547d\u4ee4\u884c\u53c2\u6570\u7684\u5e2e\u52a9\u4fe1\u606f\uff0c\u5e76\u9000\u51fa\u3002", "signature": {"url": "/docs/13/app-ecpg.html", "text": "-? --help"}}], "title": "\u624b\u518c\u4e2d\u7684\u9009\u9879", "columns": [{"key": "signature", "label": "\u9009\u9879\u4e0e\u53c2\u6570"}, {"key": "summary", "label": "\u8bf4\u660e"}]}], "options": [{"names": ["-c"], "summary": "Automatically generate certain C code from SQL code. Currently, this works for EXEC SQL TYPE .", "signature": "-c", "source_url": "/docs/13/app-ecpg.html", "description": "Automatically generate certain C code from SQL code. Currently, this works for EXEC SQL TYPE ."}, {"names": ["-C mode"], "summary": "Set a compatibility mode. mode can be INFORMIX , INFORMIX_SE , or ORACLE .", "signature": "-C mode", "source_url": "/docs/13/app-ecpg.html", "description": "Set a compatibility mode. mode can be INFORMIX , INFORMIX_SE , or ORACLE ."}, {"names": ["-D symbol [= value ]"], "summary": "Define a preprocessor symbol, equivalently to the EXEC SQL DEFINE directive. If no value is specified, the symbol is defined with the value 1 .", "signature": "-D symbol [= value ]", "source_url": "/docs/13/app-ecpg.html", "description": "Define a preprocessor symbol, equivalently to the EXEC SQL DEFINE directive. If no value is specified, the symbol is defined with the value 1 ."}, {"names": ["-h"], "summary": "Process header files. When this option is specified, the output file extension becomes .h not .c , and the default input file extension is .pgh not .pgc . Also, the -c option is forced on.", "signature": "-h", "source_url": "/docs/13/app-ecpg.html", "description": "Process header files. When this option is specified, the output file extension becomes .h not .c , and the default input file extension is .pgh not .pgc . Also, the -c option is forced on."}, {"names": ["-i"], "summary": "Parse system include files as well.", "signature": "-i", "source_url": "/docs/13/app-ecpg.html", "description": "Parse system include files as well."}, {"names": ["-I directory"], "summary": "Specify an additional include path, used to find files included via EXEC SQL INCLUDE . Defaults are . (current directory), /usr/local/include , the PostgreSQL include directory which is defined at compile time (default: /usr/local/pgsql/include ), and /usr/include , in that order.", "signature": "-I directory", "source_url": "/docs/13/app-ecpg.html", "description": "Specify an additional include path, used to find files included via EXEC SQL INCLUDE . Defaults are . (current directory), /usr/local/include , the PostgreSQL include directory which is defined at compile time (default: /usr/local/pgsql/include ), and /usr/include , in that order."}, {"names": ["-o filename"], "summary": "Specifies that ecpg should write all its output to the given filename . Write -o - to send all output to standard output.", "signature": "-o filename", "source_url": "/docs/13/app-ecpg.html", "description": "Specifies that ecpg should write all its output to the given filename . Write -o - to send all output to standard output."}, {"names": ["-r option"], "summary": "Selects run-time behavior. Option can be one of the following:", "signature": "-r option", "source_url": "/docs/13/app-ecpg.html", "description": "Selects run-time behavior. Option can be one of the following: no_indicator Do not use indicators but instead use special values to represent null values. Historically there have been databases using this approach. prepare Prepare all statements before using them. Libecpg will keep a cache of prepared statements and reuse a statement if it gets executed again. If the cache runs full, libecpg will free the least used statement. questionmarks Allow question mark as placeholder for compatibility reasons. This used to be the default long ago."}, {"names": ["-t"], "summary": "Turn on autocommit of transactions. In this mode, each SQL command is automatically committed unless it is inside an explicit transaction block. In the default mode, commands are committed only when EXEC SQL COMMIT is issued.", "signature": "-t", "source_url": "/docs/13/app-ecpg.html", "description": "Turn on autocommit of transactions. In this mode, each SQL command is automatically committed unless it is inside an explicit transaction block. In the default mode, commands are committed only when EXEC SQL COMMIT is issued."}, {"names": ["-v"], "summary": "Print additional information including the version and the \"include\" path.", "signature": "-v", "source_url": "/docs/13/app-ecpg.html", "description": "Print additional information including the version and the \"include\" path."}, {"names": ["--version"], "summary": "Print the ecpg version and exit.", "signature": "--version", "source_url": "/docs/13/app-ecpg.html", "description": "Print the ecpg version and exit."}, {"names": ["-?", "--help"], "summary": "Show help about ecpg command line arguments, and exit.", "signature": "-? --help", "source_url": "/docs/13/app-ecpg.html", "description": "Show help about ecpg command line arguments, and exit."}], "related": [], "release": {"ref": "https://ftp.postgresql.org/pub/source/v13.23/postgresql-13.23.tar.bz2", "label": "13.23", "major": "13", "channel": "historical", "manifest": {"pdf": {"A4": {"url": "/files/documentation/pdf/13/postgresql-13-A4.pdf", "bytes": 13843239, "pages": 2826, "sha256": "171cc09f90936dbc1cbd503a98ff07ae72ea58ab9771ff051313f1217737799c", "built_at": "2026-09-26"}, "US": {"url": "/files/documentation/pdf/13/postgresql-13-US.pdf", "bytes": 13739572, "pages": 2984, "sha256": "48d09c6e197d9db4220f41afe83efe848a8661b1b168d3b89419751ecaf6c24d", "built_at": "2026-09-26"}}, "tree": "13", "index": "index.html", "major": "13", "pages": 1139, "release": "13.23", "source_url": "https://ftp.postgresql.org/pub/source/v13.23/postgresql-13.23.tar.bz2", "svg_assets": 3, "source_mode": "en HTML verified against the pinned official archive", "source_sha256": "6ec3c82726af92b7dec873fa1cdf881eca92a4219787dfad05acb6b10e041fd6"}, "revision": "614ee3133270254e476c118cdf6f72af78d4e4b8bbd9b28ed9ab1e14e4e9c0f6", "evidence_kind": "English manual and source declarations", "source_sha256": "6ec3c82726af92b7dec873fa1cdf881eca92a4219787dfad05acb6b10e041fd6"}, "sources": [{"url": "https://pg.center/docs/13/app-ecpg.html", "file": "app-ecpg.html", "label": "13.23 English manual \u00b7 app-ecpg.html", "anchor": "", "sha256": "4d37bc1eed0d6c61ef43a7db2c87bbdad17c1dfda86ad891bbb7a8e0369594e8", "language": "en", "original_url": "/docs/13/app-ecpg.html"}, {"url": "https://pg.center/docs/13/reference-client.html", "file": "reference-client.html", "label": "Client applications inventory", "anchor": "", "sha256": "2a16c2982d9803edd4bd6920f76b66083e7f2959182d6a3bcec7ccfbac0a9ad8", "language": "en", "original_url": "/docs/13/reference-client.html"}], "sections": [], "synopsis": ["ecpg [ option ...] file ..."], "signature": "ecpg [ option ...] file ...", "description": ["ecpg \u2014 \u5d4c\u5165\u5f0f SQL C \u9884\u5904\u7406\u5668"], "environment": [], "manual_html": "<div><div class=\"refentry\" id=\"APP-ECPG\">\n<div class=\"titlepage\"></div>\n<div class=\"refnamediv\">\n<h2><span class=\"refentrytitle\"><span class=\"application\">ecpg</span></span></h2>\n<p lang=\"zh\"><span class=\"application\">ecpg</span> \u2014 \u5d4c\u5165\u5f0f SQL C \u9884\u5904\u7406\u5668</p>\n</div>\n<div class=\"refsynopsisdiv\">\n<h2 lang=\"zh\">\u5927\u7eb2</h2>\n<div class=\"cmdsynopsis\">\n<p id=\"id-1.9.4.8.4.1\"><code class=\"command\">ecpg</code> [<em class=\"replaceable\"><code>option</code></em>...] <em class=\"replaceable\"><code>file</code></em>...</p>\n</div>\n</div>\n<div class=\"refsect1\" id=\"APP-ECPG-DESCRIPTION\">\n<h2 lang=\"zh\">\u8bf4\u660e</h2>\n<p lang=\"zh\"><code class=\"command\">ecpg</code>\u662f\u4f9b C \u7a0b\u5e8f\u4f7f\u7528\u7684\u5d4c\u5165\u5f0f SQL \u9884\u5904\u7406\u5668\u3002\u5b83\u4f1a\u628a\u5d4c\u5165\u4e86 SQL \u8bed\u53e5\u7684 C \u7a0b\u5e8f\u8f6c\u6362\u6210\u666e\u901a C \u4ee3\u7801\uff0c\u65b9\u6cd5\u662f\u5c06 SQL \u8c03\u7528\u66ff\u6362\u4e3a\u7279\u6b8a\u7684\u51fd\u6570\u8c03\u7528\u3002\u751f\u6210\u7684\u8f93\u51fa\u6587\u4ef6\u968f\u540e\u53ef\u4ee5\u7531\u4efb\u4f55 C \u7f16\u8bd1\u5668\u5de5\u5177\u94fe\u5904\u7406\u3002</p>\n<p lang=\"zh\"><code class=\"command\">ecpg</code>\u4f1a\u5c06\u547d\u4ee4\u884c\u4e2d\u7ed9\u51fa\u7684\u6bcf\u4e2a\u8f93\u5165\u6587\u4ef6\u8f6c\u6362\u6210\u5bf9\u5e94\u7684 C \u8f93\u51fa\u6587\u4ef6\u3002\u82e5\u8f93\u5165\u6587\u4ef6\u540d\u6ca1\u6709\u4efb\u4f55\u6269\u5c55\u540d\uff0c\u5219\u5047\u5b9a\u5176\u6269\u5c55\u540d\u4e3a<code class=\"filename\">.pgc</code>\u3002\u968f\u540e\u4f1a\u628a\u8be5\u6587\u4ef6\u7684\u6269\u5c55\u540d\u66ff\u6362\u4e3a <code class=\"filename\">.c</code>\uff0c\u4ee5\u6784\u9020\u8f93\u51fa\u6587\u4ef6\u540d\u3002\u4e0d\u8fc7\uff0c\u4e5f\u53ef\u4ee5\u7528<code class=\"option\">-o</code>\u9009\u9879\u8986\u76d6\u8f93\u51fa\u6587\u4ef6\u540d\u3002</p>\n<p lang=\"zh\">\u5982\u679c\u8f93\u5165\u6587\u4ef6\u540d\u53ea\u662f<code class=\"literal\">-</code>\uff0c<code class=\"command\">ecpg</code>\u5c31\u4f1a\u4ece\u6807\u51c6\u8f93\u5165\u8bfb\u53d6\u7a0b\u5e8f\uff08\u5e76\u5199\u5230\u6807\u51c6\u8f93\u51fa\uff0c\u9664\u975e\u4f7f\u7528<code class=\"option\">-o</code>\u8986\u76d6\u8be5\u884c\u4e3a\uff09\u3002</p>\n<p lang=\"zh\">\u672c\u53c2\u8003\u9875\u4e0d\u63cf\u8ff0\u5d4c\u5165\u5f0f SQL \u8bed\u8a00\u3002\u6709\u5173\u8be5\u4e3b\u9898\u7684\u66f4\u591a\u4fe1\u606f\uff0c\u89c1<a class=\"xref\" href=\"/docs/13/ecpg.html\" title=\"\u7b2c\u00a035\u00a0\u7ae0\u00a0ECPG \u2014 C \u4e2d\u7684\u5d4c\u5165\u5f0f SQL\">\u7b2c\u00a035\u00a0\u7ae0</a>\u3002</p>\n</div>\n<div class=\"refsect1\" id=\"id-1.9.4.8.6\">\n<h2 lang=\"zh\">\u9009\u9879</h2>\n<p lang=\"zh\"><code class=\"command\">ecpg</code>\u63a5\u53d7\u4ee5\u4e0b\u547d\u4ee4\u884c\u53c2\u6570\uff1a</p>\n<div class=\"variablelist\">\n<dl class=\"variablelist\">\n<dt><span class=\"term\"><code class=\"option\">-c</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u81ea\u52a8\u4ece SQL \u4ee3\u7801\u751f\u6210\u67d0\u4e9b C \u4ee3\u7801\u3002\u76ee\u524d\uff0c\u8fd9\u9002\u7528\u4e8e<code class=\"literal\">EXEC SQL TYPE</code>\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-C <em class=\"replaceable\"><code>mode</code></em></code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u8bbe\u7f6e\u517c\u5bb9\u6a21\u5f0f\u3002<em class=\"replaceable\"><code>mode</code></em>\u53ef\u4ee5\u662f<code class=\"literal\">INFORMIX</code>\u3001<code class=\"literal\">INFORMIX_SE</code>\uff0c\u6216<code class=\"literal\">ORACLE</code>\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-D <em class=\"replaceable\"><code>symbol</code></em>[=<em class=\"replaceable\"><code>value</code></em>]</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u5b9a\u4e49\u4e00\u4e2a\u9884\u5904\u7406\u5668\u7b26\u53f7\uff0c\u7b49\u6548\u4e8e<code class=\"command\">EXEC SQL DEFINE</code>\u6307\u4ee4\u3002\u5982\u679c\u672a\u6307\u5b9a<em class=\"replaceable\"><code>value</code></em>\uff0c\u5219\u8be5\u7b26\u53f7\u4f1a\u88ab\u5b9a\u4e49\u4e3a\u503c<code class=\"literal\">1</code>\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-h</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u5904\u7406\u5934\u6587\u4ef6\u3002\u6307\u5b9a\u8be5\u9009\u9879\u65f6\uff0c\u8f93\u51fa\u6587\u4ef6\u6269\u5c55\u540d\u53d8\u4e3a<code class=\"literal\">.h</code>\u800c\u4e0d\u662f<code class=\"literal\">.c</code>\uff0c\u9ed8\u8ba4\u8f93\u5165\u6587\u4ef6\u6269\u5c55\u540d\u4e5f\u53d8\u4e3a<code class=\"literal\">.pgh</code>\u800c\u4e0d\u662f<code class=\"literal\">.pgc</code>\u3002\u6b64\u5916\uff0c\u8fd8\u4f1a\u5f3a\u5236\u542f\u7528<code class=\"option\">-c</code>\u9009\u9879\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-i</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u4e5f\u89e3\u6790\u7cfb\u7edf\u5305\u542b\u6587\u4ef6\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-I <em class=\"replaceable\"><code>directory</code></em></code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6307\u5b9a\u4e00\u4e2a\u9644\u52a0\u7684\u5305\u542b\u6587\u4ef6\u641c\u7d22\u8def\u5f84\uff0c\u7528\u4e8e\u67e5\u627e\u901a\u8fc7<code class=\"literal\">EXEC SQL INCLUDE</code>\u5305\u542b\u7684\u6587\u4ef6\u3002\u9ed8\u8ba4\u8def\u5f84\u4f9d\u6b21\u4e3a<code class=\"filename\">.</code>\uff08\u5f53\u524d\u76ee\u5f55\uff09\u3001<code class=\"filename\">/usr/local/include</code>\u3001\u7f16\u8bd1\u65f6\u5b9a\u4e49\u7684<span class=\"productname\">PostgreSQL</span>\u5305\u542b\u6587\u4ef6\u76ee\u5f55\uff08\u9ed8\u8ba4\uff1a<code class=\"filename\">/usr/local/pgsql/include</code>\uff09\uff0c\u4ee5\u53ca<code class=\"filename\">/usr/include</code>\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-o <em class=\"replaceable\"><code>filename</code></em></code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6307\u5b9a<code class=\"command\">ecpg</code>\u5e94\u5c06\u5168\u90e8\u8f93\u51fa\u5199\u5165\u7ed9\u5b9a\u7684<em class=\"replaceable\"><code>filename</code></em>\u3002\u5199\u6210<code class=\"literal\">-o -</code>\u53ef\u5c06\u5168\u90e8\u8f93\u51fa\u53d1\u9001\u5230\u6807\u51c6\u8f93\u51fa\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-r <em class=\"replaceable\"><code>option</code></em></code></span></dt>\n<dd>\n<p lang=\"zh\">\u9009\u62e9\u8fd0\u884c\u65f6\u884c\u4e3a\u3002\u9009\u9879\u53ef\u4ee5\u662f\u4e0b\u5217\u503c\u4e4b\u4e00\uff1a</p>\n<div class=\"variablelist\">\n<dl class=\"variablelist\">\n<dt><span class=\"term\"><code class=\"option\">no_indicator</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u4e0d\u4f7f\u7528\u6307\u793a\u7b26\uff0c\u800c\u6539\u7528\u7279\u6b8a\u503c\u8868\u793a\u7a7a\u503c\u3002\u5386\u53f2\u4e0a\u66fe\u6709\u6570\u636e\u5e93\u91c7\u7528\u8fd9\u79cd\u65b9\u5f0f\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">prepare</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u5728\u4f7f\u7528\u524d\u9884\u5907\u6240\u6709\u8bed\u53e5\u3002libecpg\u4f1a\u7ef4\u62a4\u4e00\u4e2a\u5df2\u9884\u5907\u8bed\u53e5\u7684\u7f13\u5b58\uff1b\u5982\u679c\u67d0\u6761\u8bed\u53e5\u518d\u6b21\u6267\u884c\uff0c\u5c31\u4f1a\u590d\u7528\u5b83\u3002\u82e5\u7f13\u5b58\u5df2\u6ee1\uff0clibecpg\u4f1a\u91ca\u653e\u4f7f\u7528\u6b21\u6570\u6700\u5c11\u7684\u8bed\u53e5\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">questionmarks</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u51fa\u4e8e\u517c\u5bb9\u6027\u539f\u56e0\uff0c\u5141\u8bb8\u4f7f\u7528\u95ee\u53f7\u4f5c\u4e3a\u5360\u4f4d\u7b26\u3002\u8fd9\u5728\u5f88\u4e45\u4ee5\u524d\u66fe\u662f\u9ed8\u8ba4\u884c\u4e3a\u3002</p>\n</p>\n</dd>\n</dl>\n</div>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-t</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6253\u5f00\u4e8b\u52a1\u81ea\u52a8\u63d0\u4ea4\u3002\u5728\u6b64\u6a21\u5f0f\u4e0b\uff0c\u9664\u975e SQL \u547d\u4ee4\u4f4d\u4e8e\u663e\u5f0f\u4e8b\u52a1\u5757\u4e2d\uff0c\u5426\u5219\u6bcf\u6761 SQL \u547d\u4ee4\u90fd\u4f1a\u81ea\u52a8\u63d0\u4ea4\u3002\u5728\u9ed8\u8ba4\u6a21\u5f0f\u4e0b\uff0c\u53ea\u6709\u53d1\u51fa<code class=\"command\">EXEC SQL COMMIT</code>\u65f6\u624d\u4f1a\u63d0\u4ea4\u547d\u4ee4\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-v</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6253\u5370\u9644\u52a0\u4fe1\u606f\uff0c\u5305\u62ec\u7248\u672c\u548c\u5305\u542b\u6587\u4ef6\u641c\u7d22\u8def\u5f84\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">--version</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6253\u5370<span class=\"application\">ecpg</span>\u7248\u672c\u5e76\u9000\u51fa\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-?</code><br/></span><span class=\"term\"><code class=\"option\">--help</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u663e\u793a\u5173\u4e8e<span class=\"application\">ecpg</span>\u547d\u4ee4\u884c\u53c2\u6570\u7684\u5e2e\u52a9\u4fe1\u606f\uff0c\u5e76\u9000\u51fa\u3002</p>\n</p>\n</dd>\n</dl>\n</div>\n</div>\n<div class=\"refsect1\" id=\"id-1.9.4.8.7\">\n<h2 lang=\"zh\">\u6ce8\u89e3</h2>\n<p lang=\"zh\">\u5728\u7f16\u8bd1\u9884\u5904\u7406\u540e\u7684 C \u4ee3\u7801\u6587\u4ef6\u65f6\uff0c\u7f16\u8bd1\u5668\u5fc5\u987b\u80fd\u591f\u5728<span class=\"productname\">PostgreSQL</span>\u7684\u5305\u542b\u6587\u4ef6\u76ee\u5f55\u4e2d\u627e\u5230<span class=\"application\">ECPG</span>\u5934\u6587\u4ef6\u3002\u56e0\u6b64\uff0c\u8c03\u7528\u7f16\u8bd1\u5668\u65f6\u4f60\u53ef\u80fd\u9700\u8981\u4f7f\u7528<code class=\"option\">-I</code>\u9009\u9879\uff08\u4f8b\u5982<code class=\"literal\">-I/usr/local/pgsql/include</code>\uff09\u3002</p>\n<p lang=\"zh\">\u4f7f\u7528\u5d4c\u5165\u5f0f SQL \u7684 C \u7a0b\u5e8f\u5fc5\u987b\u4e0e<code class=\"filename\">libecpg</code>\u5e93\u94fe\u63a5\uff0c\u4f8b\u5982\u53ef\u4f7f\u7528\u94fe\u63a5\u5668\u9009\u9879<code class=\"literal\">-L/usr/local/pgsql/lib -lecpg</code>\u3002</p>\n<p lang=\"zh\">\u5f53\u524d\u5b89\u88c5\u4f7f\u7528\u7684\u8fd9\u4e24\u4e2a\u76ee\u5f55\u53ef\u901a\u8fc7<a class=\"xref\" href=\"/docs/13/app-pgconfig.html\" title=\"pg_config\"><span class=\"refentrytitle\">pg_config</span></a>\u67e5\u8be2\u3002</p>\n</div>\n<div class=\"refsect1\" id=\"id-1.9.4.8.8\">\n<h2 lang=\"zh\">\u793a\u4f8b</h2>\n<p lang=\"zh\">\u5982\u679c\u4f60\u6709\u4e00\u4e2a\u540d\u4e3a<code class=\"filename\">prog1.pgc</code>\u7684\u5d4c\u5165\u5f0f SQL C \u6e90\u6587\u4ef6\uff0c\u5c31\u53ef\u4ee5\u4f7f\u7528\u4e0b\u5217\u547d\u4ee4\u5e8f\u5217\u521b\u5efa\u4e00\u4e2a\u53ef\u6267\u884c\u7a0b\u5e8f\uff1a</p>\n<pre class=\"programlisting\">ecpg prog1.pgc\ncc -I/usr/local/pgsql/include -c prog1.c\ncc -o prog1 prog1.o -L/usr/local/pgsql/lib -lecpg\n</pre>\n</div>\n</div></div>", "manual_path": "app-ecpg.html", "localization": {"status": "complete", "sources": [{"url": "/docs/13/app-ecpg.html", "method": "same-major semantic node", "sha256": "48697201e5cccd0ec4e1928eb80fa3677c0a6bd19bf6d29f49199e1a0ba98cd0", "language": "zh", "matched_nodes": ["#APP-ECPG/div[2]/p[1]", "#APP-ECPG/div[3]/h2[0]", "#APP-ECPG/div[4]/p[1]", "#APP-ECPG/div[4]/p[2]", "#APP-ECPG/div[4]/p[3]", "#APP-ECPG/div[4]/p[4]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[11]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[13]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[15]/div[1]/dl[0]/dd[1]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[15]/div[1]/dl[0]/dd[3]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[15]/div[1]/dl[0]/dd[5]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[17]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[19]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[1]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[21]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[23]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[3]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[5]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[7]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[9]", "#APP-ECPG/div[5]/p[1]", "#APP-ECPG/div[6]/h2[0]", "#APP-ECPG/div[6]/p[1]", "#APP-ECPG/div[6]/p[2]", "#APP-ECPG/div[6]/p[3]", "#APP-ECPG/div[7]/h2[0]", "#APP-ECPG/div[7]/p[1]"]}], "language": "zh", "original_text": {"/versions/13/description/0": "ecpg \u2014 embedded SQL C preprocessor", "/versions/13/facts/0/label": "Documented executable", "/versions/13/facts/1/label": "Executable version", "/versions/13/facts/2/label": "Reference inventory", "/versions/13/facts/2/value": "Client applications", "/versions/13/facts/3/label": "Option definition groups", "/versions/13/tables/0/title": "Documented options", "/versions/13/tables/0/rows/0/summary": "Automatically generate certain C code from SQL code. Currently, this works for EXEC SQL TYPE .", "/versions/13/tables/0/rows/1/summary": "Set a compatibility mode. mode can be INFORMIX , INFORMIX_SE , or ORACLE .", "/versions/13/tables/0/rows/2/summary": "Define a preprocessor symbol, equivalently to the EXEC SQL DEFINE directive. If no value is specified, the symbol is defined with the value 1 .", "/versions/13/tables/0/rows/3/summary": "Process header files. When this option is specified, the output file extension becomes .h not .c , and the default input file extension is .pgh not .pgc . Also, the -c option is forced on.", "/versions/13/tables/0/rows/4/summary": "Parse system include files as well.", "/versions/13/tables/0/rows/5/summary": "Specify an additional include path, used to find files included via EXEC SQL INCLUDE . Defaults are . (current directory), /usr/local/include , the PostgreSQL include directory which is defined at compile time (default: /usr/local/pgsql/include ), and /usr/include , in that order.", "/versions/13/tables/0/rows/6/summary": "Specifies that ecpg should write all its output to the given filename . Write -o - to send all output to standard output.", "/versions/13/tables/0/rows/7/summary": "Selects run-time behavior. Option can be one of the following:", "/versions/13/tables/0/rows/8/summary": "Turn on autocommit of transactions. In this mode, each SQL command is automatically committed unless it is inside an explicit transaction block. In the default mode, commands are committed only when EXEC SQL COMMIT is issued.", "/versions/13/tables/0/rows/9/summary": "Print additional information including the version and the \"include\" path.", "/versions/13/tables/0/columns/0/label": "Option and arguments", "/versions/13/tables/0/columns/1/label": "Description", "/versions/13/tables/0/rows/10/summary": "Print the ecpg version and exit.", "/versions/13/tables/0/rows/11/summary": "Show help about ecpg command line arguments, and exit."}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "9c83ef6e62ce95671c998196fcc7421d01788b404c31e914523043e19d2a3ad6"}, "comparison_data": {"options": [{"names": ["-c"], "signature": "-c", "description": "Automatically generate certain C code from SQL code. Currently, this works for EXEC SQL TYPE ."}, {"names": ["-C mode"], "signature": "-C mode", "description": "Set a compatibility mode. mode can be INFORMIX , INFORMIX_SE , or ORACLE ."}, {"names": ["-D symbol [= value ]"], "signature": "-D symbol [= value ]", "description": "Define a preprocessor symbol, equivalently to the EXEC SQL DEFINE directive. If no value is specified, the symbol is defined with the value 1 ."}, {"names": ["-h"], "signature": "-h", "description": "Process header files. When this option is specified, the output file extension becomes .h not .c , and the default input file extension is .pgh not .pgc . Also, the -c option is forced on."}, {"names": ["-i"], "signature": "-i", "description": "Parse system include files as well."}, {"names": ["-I directory"], "signature": "-I directory", "description": "Specify an additional include path, used to find files included via EXEC SQL INCLUDE . Defaults are . (current directory), /usr/local/include , the PostgreSQL include directory which is defined at compile time (default: /usr/local/pgsql/include ), and /usr/include , in that order."}, {"names": ["-o filename"], "signature": "-o filename", "description": "Specifies that ecpg should write all its output to the given filename . Write -o - to send all output to standard output."}, {"names": ["-r option"], "signature": "-r option", "description": "Selects run-time behavior. Option can be one of the following: no_indicator Do not use indicators but instead use special values to represent null values. Historically there have been databases using this approach. prepare Prepare all statements before using them. Libecpg will keep a cache of prepared statements and reuse a statement if it gets executed again. If the cache runs full, libecpg will free the least used statement. questionmarks Allow question mark as placeholder for compatibility reasons. This used to be the default long ago."}, {"names": ["-t"], "signature": "-t", "description": "Turn on autocommit of transactions. In this mode, each SQL command is automatically committed unless it is inside an explicit transaction block. In the default mode, commands are committed only when EXEC SQL COMMIT is issued."}, {"names": ["-v"], "signature": "-v", "description": "Print additional information including the version and the \"include\" path."}, {"names": ["--version"], "signature": "--version", "description": "Print the ecpg version and exit."}, {"names": ["-?", "--help"], "signature": "-? --help", "description": "Show help about ecpg command line arguments, and exit."}], "synopsis": ["ecpg [ option ...] file ..."], "environment": []}, "comparison_hash": "9b115ab9dbd18516028622d20fe8fe477e01f88cb80ad0615213dea618875d6d", "manual_language": "zh"}, "14": {"facts": [{"label": "\u624b\u518c\u4e2d\u7684\u53ef\u6267\u884c\u7a0b\u5e8f", "value": "ecpg"}, {"label": "\u7a0b\u5e8f\u7248\u672c", "value": "14.24"}, {"label": "\u53c2\u8003\u6e05\u5355", "value": "\u5ba2\u6237\u7aef\u7a0b\u5e8f"}, {"label": "\u9009\u9879\u5b9a\u4e49\u7ec4", "value": "12"}], "tables": [{"key": "options", "rows": [{"summary": "\u81ea\u52a8\u4ece SQL \u4ee3\u7801\u751f\u6210\u67d0\u4e9b C \u4ee3\u7801\u3002\u76ee\u524d\uff0c\u8fd9\u9002\u7528\u4e8e EXEC SQL TYPE \u3002", "signature": {"url": "/docs/14/app-ecpg.html", "text": "-c"}}, {"summary": "\u8bbe\u7f6e\u517c\u5bb9\u6a21\u5f0f\u3002 mode \u53ef\u4ee5\u662f INFORMIX \u3001 INFORMIX_SE \uff0c\u6216 ORACLE \u3002", "signature": {"url": "/docs/14/app-ecpg.html", "text": "-C mode"}}, {"summary": "\u5b9a\u4e49\u4e00\u4e2a\u9884\u5904\u7406\u5668\u7b26\u53f7\uff0c\u7b49\u6548\u4e8e EXEC SQL DEFINE \u6307\u4ee4\u3002\u5982\u679c\u672a\u6307\u5b9a value \uff0c\u5219\u8be5\u7b26\u53f7\u4f1a\u88ab\u5b9a\u4e49\u4e3a\u503c 1 \u3002", "signature": {"url": "/docs/14/app-ecpg.html", "text": "-D symbol [= value ]"}}, {"summary": "\u5904\u7406\u5934\u6587\u4ef6\u3002\u6307\u5b9a\u8be5\u9009\u9879\u65f6\uff0c\u8f93\u51fa\u6587\u4ef6\u6269\u5c55\u540d\u53d8\u4e3a .h \u800c\u4e0d\u662f .c \uff0c\u9ed8\u8ba4\u8f93\u5165\u6587\u4ef6\u6269\u5c55\u540d\u4e5f\u53d8\u4e3a .pgh \u800c\u4e0d\u662f .pgc \u3002\u6b64\u5916\uff0c\u8fd8\u4f1a\u5f3a\u5236\u542f\u7528 -c \u9009\u9879\u3002", "signature": {"url": "/docs/14/app-ecpg.html", "text": "-h"}}, {"summary": "\u4e5f\u89e3\u6790\u7cfb\u7edf\u5305\u542b\u6587\u4ef6\u3002", "signature": {"url": "/docs/14/app-ecpg.html", "text": "-i"}}, {"summary": "\u6307\u5b9a\u4e00\u4e2a\u9644\u52a0\u7684\u5305\u542b\u6587\u4ef6\u641c\u7d22\u8def\u5f84\uff0c\u7528\u4e8e\u67e5\u627e\u901a\u8fc7 EXEC SQL INCLUDE \u5305\u542b\u7684\u6587\u4ef6\u3002\u9ed8\u8ba4\u8def\u5f84\u4f9d\u6b21\u4e3a . \uff08\u5f53\u524d\u76ee\u5f55\uff09\u3001 /usr/local/include \u3001\u7f16\u8bd1\u65f6\u5b9a\u4e49\u7684 PostgreSQL \u5305\u542b\u6587\u4ef6\u76ee\u5f55\uff08\u9ed8\u8ba4\uff1a /usr/local/pgsql/include \uff09\uff0c\u4ee5\u53ca /usr/include \u3002", "signature": {"url": "/docs/14/app-ecpg.html", "text": "-I directory"}}, {"summary": "\u6307\u5b9a ecpg \u5e94\u5c06\u5168\u90e8\u8f93\u51fa\u5199\u5165\u7ed9\u5b9a\u7684 filename \u3002\u5199\u6210 -o - \u53ef\u5c06\u5168\u90e8\u8f93\u51fa\u53d1\u9001\u5230\u6807\u51c6\u8f93\u51fa\u3002", "signature": {"url": "/docs/14/app-ecpg.html", "text": "-o filename"}}, {"summary": "\u9009\u62e9\u8fd0\u884c\u65f6\u884c\u4e3a\u3002\u9009\u9879\u53ef\u4ee5\u662f\u4e0b\u5217\u503c\u4e4b\u4e00\uff1a", "signature": {"url": "/docs/14/app-ecpg.html", "text": "-r option"}}, {"summary": "\u6253\u5f00\u4e8b\u52a1\u81ea\u52a8\u63d0\u4ea4\u3002\u5728\u6b64\u6a21\u5f0f\u4e0b\uff0c\u9664\u975e SQL \u547d\u4ee4\u4f4d\u4e8e\u663e\u5f0f\u4e8b\u52a1\u5757\u4e2d\uff0c\u5426\u5219\u6bcf\u6761 SQL \u547d\u4ee4\u90fd\u4f1a\u81ea\u52a8\u63d0\u4ea4\u3002\u5728\u9ed8\u8ba4\u6a21\u5f0f\u4e0b\uff0c\u53ea\u6709\u53d1\u51fa EXEC SQL COMMIT \u65f6\u624d\u4f1a\u63d0\u4ea4\u547d\u4ee4\u3002", "signature": {"url": "/docs/14/app-ecpg.html", "text": "-t"}}, {"summary": "\u6253\u5370\u9644\u52a0\u4fe1\u606f\uff0c\u5305\u62ec\u7248\u672c\u548c\u5305\u542b\u6587\u4ef6\u641c\u7d22\u8def\u5f84\u3002", "signature": {"url": "/docs/14/app-ecpg.html", "text": "-v"}}, {"summary": "\u6253\u5370 ecpg \u7248\u672c\u5e76\u9000\u51fa\u3002", "signature": {"url": "/docs/14/app-ecpg.html", "text": "--version"}}, {"summary": "\u663e\u793a\u5173\u4e8e ecpg \u547d\u4ee4\u884c\u53c2\u6570\u7684\u5e2e\u52a9\u4fe1\u606f\uff0c\u5e76\u9000\u51fa\u3002", "signature": {"url": "/docs/14/app-ecpg.html", "text": "-? --help"}}], "title": "\u624b\u518c\u4e2d\u7684\u9009\u9879", "columns": [{"key": "signature", "label": "\u9009\u9879\u4e0e\u53c2\u6570"}, {"key": "summary", "label": "\u8bf4\u660e"}]}], "options": [{"names": ["-c"], "summary": "Automatically generate certain C code from SQL code. Currently, this works for EXEC SQL TYPE .", "signature": "-c", "source_url": "/docs/14/app-ecpg.html", "description": "Automatically generate certain C code from SQL code. Currently, this works for EXEC SQL TYPE ."}, {"names": ["-C mode"], "summary": "Set a compatibility mode. mode can be INFORMIX , INFORMIX_SE , or ORACLE .", "signature": "-C mode", "source_url": "/docs/14/app-ecpg.html", "description": "Set a compatibility mode. mode can be INFORMIX , INFORMIX_SE , or ORACLE ."}, {"names": ["-D symbol [= value ]"], "summary": "Define a preprocessor symbol, equivalently to the EXEC SQL DEFINE directive. If no value is specified, the symbol is defined with the value 1 .", "signature": "-D symbol [= value ]", "source_url": "/docs/14/app-ecpg.html", "description": "Define a preprocessor symbol, equivalently to the EXEC SQL DEFINE directive. If no value is specified, the symbol is defined with the value 1 ."}, {"names": ["-h"], "summary": "Process header files. When this option is specified, the output file extension becomes .h not .c , and the default input file extension is .pgh not .pgc . Also, the -c option is forced on.", "signature": "-h", "source_url": "/docs/14/app-ecpg.html", "description": "Process header files. When this option is specified, the output file extension becomes .h not .c , and the default input file extension is .pgh not .pgc . Also, the -c option is forced on."}, {"names": ["-i"], "summary": "Parse system include files as well.", "signature": "-i", "source_url": "/docs/14/app-ecpg.html", "description": "Parse system include files as well."}, {"names": ["-I directory"], "summary": "Specify an additional include path, used to find files included via EXEC SQL INCLUDE . Defaults are . (current directory), /usr/local/include , the PostgreSQL include directory which is defined at compile time (default: /usr/local/pgsql/include ), and /usr/include , in that order.", "signature": "-I directory", "source_url": "/docs/14/app-ecpg.html", "description": "Specify an additional include path, used to find files included via EXEC SQL INCLUDE . Defaults are . (current directory), /usr/local/include , the PostgreSQL include directory which is defined at compile time (default: /usr/local/pgsql/include ), and /usr/include , in that order."}, {"names": ["-o filename"], "summary": "Specifies that ecpg should write all its output to the given filename . Write -o - to send all output to standard output.", "signature": "-o filename", "source_url": "/docs/14/app-ecpg.html", "description": "Specifies that ecpg should write all its output to the given filename . Write -o - to send all output to standard output."}, {"names": ["-r option"], "summary": "Selects run-time behavior. Option can be one of the following:", "signature": "-r option", "source_url": "/docs/14/app-ecpg.html", "description": "Selects run-time behavior. Option can be one of the following: no_indicator Do not use indicators but instead use special values to represent null values. Historically there have been databases using this approach. prepare Prepare all statements before using them. Libecpg will keep a cache of prepared statements and reuse a statement if it gets executed again. If the cache runs full, libecpg will free the least used statement. questionmarks Allow question mark as placeholder for compatibility reasons. This used to be the default long ago."}, {"names": ["-t"], "summary": "Turn on autocommit of transactions. In this mode, each SQL command is automatically committed unless it is inside an explicit transaction block. In the default mode, commands are committed only when EXEC SQL COMMIT is issued.", "signature": "-t", "source_url": "/docs/14/app-ecpg.html", "description": "Turn on autocommit of transactions. In this mode, each SQL command is automatically committed unless it is inside an explicit transaction block. In the default mode, commands are committed only when EXEC SQL COMMIT is issued."}, {"names": ["-v"], "summary": "Print additional information including the version and the \"include\" path.", "signature": "-v", "source_url": "/docs/14/app-ecpg.html", "description": "Print additional information including the version and the \"include\" path."}, {"names": ["--version"], "summary": "Print the ecpg version and exit.", "signature": "--version", "source_url": "/docs/14/app-ecpg.html", "description": "Print the ecpg version and exit."}, {"names": ["-?", "--help"], "summary": "Show help about ecpg command line arguments, and exit.", "signature": "-? --help", "source_url": "/docs/14/app-ecpg.html", "description": "Show help about ecpg command line arguments, and exit."}], "related": [], "release": {"ref": "https://ftp.postgresql.org/pub/source/v14.24/postgresql-14.24.tar.bz2", "label": "14.24", "major": "14", "channel": "stable", "manifest": {"pdf": {"A4": {"url": "/files/documentation/pdf/14/postgresql-14-A4.pdf", "bytes": 14354704, "pages": 2944, "sha256": "8bc6b9dd7b246888bb77f0a5e8c39a2eae52e9926569832669c7d1600becb27c", "built_at": "2026-09-26"}, "US": {"url": "/files/documentation/pdf/14/postgresql-14-US.pdf", "bytes": 14242178, "pages": 3102, "sha256": "b7ecb5a5f62d8b9f73a69e25a7d26ba285373bc53168a553bff7b77955506db4", "built_at": "2026-09-26"}}, "tree": "14", "index": "index.html", "major": "14", "pages": 1158, "release": "14.24", "source_url": "https://ftp.postgresql.org/pub/source/v14.24/postgresql-14.24.tar.bz2", "svg_assets": 3, "source_mode": "en HTML verified against the pinned official archive", "source_sha256": "a7fa7ed3d558172355f51406097a7bd4f6b473be80f311ef7cda96bf383d8897"}, "revision": "588700d46356d8837c77c7c0a4e71e645fe6535983b8f1830aa8f2e4e41c40ae", "evidence_kind": "English manual and source declarations", "source_sha256": "a7fa7ed3d558172355f51406097a7bd4f6b473be80f311ef7cda96bf383d8897"}, "sources": [{"url": "https://pg.center/docs/14/app-ecpg.html", "file": "app-ecpg.html", "label": "14.24 English manual \u00b7 app-ecpg.html", "anchor": "", "sha256": "e99a32676a25cc3c5214abb143a82e1428aedeb64b86fc333a34902f15c19a5c", "language": "en", "original_url": "/docs/14/app-ecpg.html"}, {"url": "https://pg.center/docs/14/reference-client.html", "file": "reference-client.html", "label": "Client applications inventory", "anchor": "", "sha256": "5a13567a052954dfe494dfaab9f50919faa1ae56023930fdbb78d45e53feccde", "language": "en", "original_url": "/docs/14/reference-client.html"}], "sections": [], "synopsis": ["ecpg [ option ...] file ..."], "signature": "ecpg [ option ...] file ...", "description": ["ecpg \u2014 \u5d4c\u5165\u5f0f SQL C \u9884\u5904\u7406\u5668"], "environment": [], "manual_html": "<div><div class=\"refentry\" id=\"APP-ECPG\">\n<div class=\"titlepage\"></div>\n<div class=\"refnamediv\">\n<h2><span class=\"refentrytitle\"><span class=\"application\">ecpg</span></span></h2>\n<p lang=\"zh\"><span class=\"application\">ecpg</span> \u2014 \u5d4c\u5165\u5f0f SQL C \u9884\u5904\u7406\u5668</p>\n</div>\n<div class=\"refsynopsisdiv\">\n<h2 lang=\"zh\">\u5927\u7eb2</h2>\n<div class=\"cmdsynopsis\">\n<p id=\"id-1.9.4.8.4.1\"><code class=\"command\">ecpg</code> [<em class=\"replaceable\"><code>option</code></em>...] <em class=\"replaceable\"><code>file</code></em>...</p>\n</div>\n</div>\n<div class=\"refsect1\" id=\"APP-ECPG-DESCRIPTION\">\n<h2 lang=\"zh\">\u8bf4\u660e</h2>\n<p lang=\"zh\"><code class=\"command\">ecpg</code>\u662f\u4f9b C \u7a0b\u5e8f\u4f7f\u7528\u7684\u5d4c\u5165\u5f0f SQL \u9884\u5904\u7406\u5668\u3002\u5b83\u4f1a\u628a\u5d4c\u5165\u4e86 SQL \u8bed\u53e5\u7684 C \u7a0b\u5e8f\u8f6c\u6362\u6210\u666e\u901a C \u4ee3\u7801\uff0c\u65b9\u6cd5\u662f\u5c06 SQL \u8c03\u7528\u66ff\u6362\u4e3a\u7279\u6b8a\u7684\u51fd\u6570\u8c03\u7528\u3002\u751f\u6210\u7684\u8f93\u51fa\u6587\u4ef6\u968f\u540e\u53ef\u4ee5\u7531\u4efb\u4f55 C \u7f16\u8bd1\u5668\u5de5\u5177\u94fe\u5904\u7406\u3002</p>\n<p lang=\"zh\"><code class=\"command\">ecpg</code>\u4f1a\u5c06\u547d\u4ee4\u884c\u4e2d\u7ed9\u51fa\u7684\u6bcf\u4e2a\u8f93\u5165\u6587\u4ef6\u8f6c\u6362\u6210\u5bf9\u5e94\u7684 C \u8f93\u51fa\u6587\u4ef6\u3002\u82e5\u8f93\u5165\u6587\u4ef6\u540d\u6ca1\u6709\u4efb\u4f55\u6269\u5c55\u540d\uff0c\u5219\u5047\u5b9a\u5176\u6269\u5c55\u540d\u4e3a<code class=\"filename\">.pgc</code>\u3002\u968f\u540e\u4f1a\u628a\u8be5\u6587\u4ef6\u7684\u6269\u5c55\u540d\u66ff\u6362\u4e3a <code class=\"filename\">.c</code>\uff0c\u4ee5\u6784\u9020\u8f93\u51fa\u6587\u4ef6\u540d\u3002\u4e0d\u8fc7\uff0c\u4e5f\u53ef\u4ee5\u7528<code class=\"option\">-o</code>\u9009\u9879\u8986\u76d6\u8f93\u51fa\u6587\u4ef6\u540d\u3002</p>\n<p lang=\"zh\">\u5982\u679c\u8f93\u5165\u6587\u4ef6\u540d\u53ea\u662f<code class=\"literal\">-</code>\uff0c<code class=\"command\">ecpg</code>\u5c31\u4f1a\u4ece\u6807\u51c6\u8f93\u5165\u8bfb\u53d6\u7a0b\u5e8f\uff08\u5e76\u5199\u5230\u6807\u51c6\u8f93\u51fa\uff0c\u9664\u975e\u4f7f\u7528<code class=\"option\">-o</code>\u8986\u76d6\u8be5\u884c\u4e3a\uff09\u3002</p>\n<p lang=\"zh\">\u672c\u53c2\u8003\u9875\u4e0d\u63cf\u8ff0\u5d4c\u5165\u5f0f SQL \u8bed\u8a00\u3002\u6709\u5173\u8be5\u4e3b\u9898\u7684\u66f4\u591a\u4fe1\u606f\uff0c\u89c1<a class=\"xref\" href=\"/docs/14/ecpg.html\" title=\"\u7b2c\u00a036\u00a0\u7ae0\u00a0ECPG \u2014 C \u4e2d\u7684\u5d4c\u5165\u5f0f SQL\">\u7b2c\u00a036\u00a0\u7ae0</a>\u3002</p>\n</div>\n<div class=\"refsect1\" id=\"id-1.9.4.8.6\">\n<h2 lang=\"zh\">\u9009\u9879</h2>\n<p lang=\"zh\"><code class=\"command\">ecpg</code>\u63a5\u53d7\u4ee5\u4e0b\u547d\u4ee4\u884c\u53c2\u6570\uff1a</p>\n<div class=\"variablelist\">\n<dl class=\"variablelist\">\n<dt><span class=\"term\"><code class=\"option\">-c</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u81ea\u52a8\u4ece SQL \u4ee3\u7801\u751f\u6210\u67d0\u4e9b C \u4ee3\u7801\u3002\u76ee\u524d\uff0c\u8fd9\u9002\u7528\u4e8e<code class=\"literal\">EXEC SQL TYPE</code>\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-C <em class=\"replaceable\"><code>mode</code></em></code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u8bbe\u7f6e\u517c\u5bb9\u6a21\u5f0f\u3002<em class=\"replaceable\"><code>mode</code></em>\u53ef\u4ee5\u662f<code class=\"literal\">INFORMIX</code>\u3001<code class=\"literal\">INFORMIX_SE</code>\uff0c\u6216<code class=\"literal\">ORACLE</code>\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-D <em class=\"replaceable\"><code>symbol</code></em>[=<em class=\"replaceable\"><code>value</code></em>]</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u5b9a\u4e49\u4e00\u4e2a\u9884\u5904\u7406\u5668\u7b26\u53f7\uff0c\u7b49\u6548\u4e8e<code class=\"command\">EXEC SQL DEFINE</code>\u6307\u4ee4\u3002\u5982\u679c\u672a\u6307\u5b9a<em class=\"replaceable\"><code>value</code></em>\uff0c\u5219\u8be5\u7b26\u53f7\u4f1a\u88ab\u5b9a\u4e49\u4e3a\u503c<code class=\"literal\">1</code>\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-h</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u5904\u7406\u5934\u6587\u4ef6\u3002\u6307\u5b9a\u8be5\u9009\u9879\u65f6\uff0c\u8f93\u51fa\u6587\u4ef6\u6269\u5c55\u540d\u53d8\u4e3a<code class=\"literal\">.h</code>\u800c\u4e0d\u662f<code class=\"literal\">.c</code>\uff0c\u9ed8\u8ba4\u8f93\u5165\u6587\u4ef6\u6269\u5c55\u540d\u4e5f\u53d8\u4e3a<code class=\"literal\">.pgh</code>\u800c\u4e0d\u662f<code class=\"literal\">.pgc</code>\u3002\u6b64\u5916\uff0c\u8fd8\u4f1a\u5f3a\u5236\u542f\u7528<code class=\"option\">-c</code>\u9009\u9879\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-i</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u4e5f\u89e3\u6790\u7cfb\u7edf\u5305\u542b\u6587\u4ef6\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-I <em class=\"replaceable\"><code>directory</code></em></code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6307\u5b9a\u4e00\u4e2a\u9644\u52a0\u7684\u5305\u542b\u6587\u4ef6\u641c\u7d22\u8def\u5f84\uff0c\u7528\u4e8e\u67e5\u627e\u901a\u8fc7<code class=\"literal\">EXEC SQL INCLUDE</code>\u5305\u542b\u7684\u6587\u4ef6\u3002\u9ed8\u8ba4\u8def\u5f84\u4f9d\u6b21\u4e3a<code class=\"filename\">.</code>\uff08\u5f53\u524d\u76ee\u5f55\uff09\u3001<code class=\"filename\">/usr/local/include</code>\u3001\u7f16\u8bd1\u65f6\u5b9a\u4e49\u7684<span class=\"productname\">PostgreSQL</span>\u5305\u542b\u6587\u4ef6\u76ee\u5f55\uff08\u9ed8\u8ba4\uff1a<code class=\"filename\">/usr/local/pgsql/include</code>\uff09\uff0c\u4ee5\u53ca<code class=\"filename\">/usr/include</code>\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-o <em class=\"replaceable\"><code>filename</code></em></code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6307\u5b9a<code class=\"command\">ecpg</code>\u5e94\u5c06\u5168\u90e8\u8f93\u51fa\u5199\u5165\u7ed9\u5b9a\u7684<em class=\"replaceable\"><code>filename</code></em>\u3002\u5199\u6210<code class=\"literal\">-o -</code>\u53ef\u5c06\u5168\u90e8\u8f93\u51fa\u53d1\u9001\u5230\u6807\u51c6\u8f93\u51fa\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-r <em class=\"replaceable\"><code>option</code></em></code></span></dt>\n<dd>\n<p lang=\"zh\">\u9009\u62e9\u8fd0\u884c\u65f6\u884c\u4e3a\u3002\u9009\u9879\u53ef\u4ee5\u662f\u4e0b\u5217\u503c\u4e4b\u4e00\uff1a</p>\n<div class=\"variablelist\">\n<dl class=\"variablelist\">\n<dt><span class=\"term\"><code class=\"option\">no_indicator</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u4e0d\u4f7f\u7528\u6307\u793a\u7b26\uff0c\u800c\u6539\u7528\u7279\u6b8a\u503c\u8868\u793a\u7a7a\u503c\u3002\u5386\u53f2\u4e0a\u66fe\u6709\u6570\u636e\u5e93\u91c7\u7528\u8fd9\u79cd\u65b9\u5f0f\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">prepare</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u5728\u4f7f\u7528\u524d\u9884\u5907\u6240\u6709\u8bed\u53e5\u3002libecpg\u4f1a\u7ef4\u62a4\u4e00\u4e2a\u5df2\u9884\u5907\u8bed\u53e5\u7684\u7f13\u5b58\uff1b\u5982\u679c\u67d0\u6761\u8bed\u53e5\u518d\u6b21\u6267\u884c\uff0c\u5c31\u4f1a\u590d\u7528\u5b83\u3002\u82e5\u7f13\u5b58\u5df2\u6ee1\uff0clibecpg\u4f1a\u91ca\u653e\u4f7f\u7528\u6b21\u6570\u6700\u5c11\u7684\u8bed\u53e5\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">questionmarks</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u51fa\u4e8e\u517c\u5bb9\u6027\u539f\u56e0\uff0c\u5141\u8bb8\u4f7f\u7528\u95ee\u53f7\u4f5c\u4e3a\u5360\u4f4d\u7b26\u3002\u8fd9\u5728\u5f88\u4e45\u4ee5\u524d\u66fe\u662f\u9ed8\u8ba4\u884c\u4e3a\u3002</p>\n</p>\n</dd>\n</dl>\n</div>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-t</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6253\u5f00\u4e8b\u52a1\u81ea\u52a8\u63d0\u4ea4\u3002\u5728\u6b64\u6a21\u5f0f\u4e0b\uff0c\u9664\u975e SQL \u547d\u4ee4\u4f4d\u4e8e\u663e\u5f0f\u4e8b\u52a1\u5757\u4e2d\uff0c\u5426\u5219\u6bcf\u6761 SQL \u547d\u4ee4\u90fd\u4f1a\u81ea\u52a8\u63d0\u4ea4\u3002\u5728\u9ed8\u8ba4\u6a21\u5f0f\u4e0b\uff0c\u53ea\u6709\u53d1\u51fa<code class=\"command\">EXEC SQL COMMIT</code>\u65f6\u624d\u4f1a\u63d0\u4ea4\u547d\u4ee4\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-v</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6253\u5370\u9644\u52a0\u4fe1\u606f\uff0c\u5305\u62ec\u7248\u672c\u548c\u5305\u542b\u6587\u4ef6\u641c\u7d22\u8def\u5f84\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">--version</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6253\u5370<span class=\"application\">ecpg</span>\u7248\u672c\u5e76\u9000\u51fa\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-?</code><br/></span><span class=\"term\"><code class=\"option\">--help</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u663e\u793a\u5173\u4e8e<span class=\"application\">ecpg</span>\u547d\u4ee4\u884c\u53c2\u6570\u7684\u5e2e\u52a9\u4fe1\u606f\uff0c\u5e76\u9000\u51fa\u3002</p>\n</p>\n</dd>\n</dl>\n</div>\n</div>\n<div class=\"refsect1\" id=\"id-1.9.4.8.7\">\n<h2 lang=\"zh\">\u6ce8\u89e3</h2>\n<p lang=\"zh\">\u5728\u7f16\u8bd1\u9884\u5904\u7406\u540e\u7684 C \u4ee3\u7801\u6587\u4ef6\u65f6\uff0c\u7f16\u8bd1\u5668\u5fc5\u987b\u80fd\u591f\u5728<span class=\"productname\">PostgreSQL</span>\u7684\u5305\u542b\u6587\u4ef6\u76ee\u5f55\u4e2d\u627e\u5230<span class=\"application\">ECPG</span>\u5934\u6587\u4ef6\u3002\u56e0\u6b64\uff0c\u8c03\u7528\u7f16\u8bd1\u5668\u65f6\u4f60\u53ef\u80fd\u9700\u8981\u4f7f\u7528<code class=\"option\">-I</code>\u9009\u9879\uff08\u4f8b\u5982<code class=\"literal\">-I/usr/local/pgsql/include</code>\uff09\u3002</p>\n<p lang=\"zh\">\u4f7f\u7528\u5d4c\u5165\u5f0f SQL \u7684 C \u7a0b\u5e8f\u5fc5\u987b\u4e0e<code class=\"filename\">libecpg</code>\u5e93\u94fe\u63a5\uff0c\u4f8b\u5982\u53ef\u4f7f\u7528\u94fe\u63a5\u5668\u9009\u9879<code class=\"literal\">-L/usr/local/pgsql/lib -lecpg</code>\u3002</p>\n<p lang=\"zh\">\u5f53\u524d\u5b89\u88c5\u4f7f\u7528\u7684\u8fd9\u4e24\u4e2a\u76ee\u5f55\u53ef\u901a\u8fc7<a class=\"xref\" href=\"/docs/14/app-pgconfig.html\" title=\"pg_config\"><span class=\"refentrytitle\"><span class=\"application\">pg_config</span></span></a>\u67e5\u8be2\u3002</p>\n</div>\n<div class=\"refsect1\" id=\"id-1.9.4.8.8\">\n<h2 lang=\"zh\">\u793a\u4f8b</h2>\n<p lang=\"zh\">\u5982\u679c\u4f60\u6709\u4e00\u4e2a\u540d\u4e3a<code class=\"filename\">prog1.pgc</code>\u7684\u5d4c\u5165\u5f0f SQL C \u6e90\u6587\u4ef6\uff0c\u5c31\u53ef\u4ee5\u4f7f\u7528\u4e0b\u5217\u547d\u4ee4\u5e8f\u5217\u521b\u5efa\u4e00\u4e2a\u53ef\u6267\u884c\u7a0b\u5e8f\uff1a</p>\n<pre class=\"programlisting\">ecpg prog1.pgc\ncc -I/usr/local/pgsql/include -c prog1.c\ncc -o prog1 prog1.o -L/usr/local/pgsql/lib -lecpg\n</pre>\n</div>\n</div></div>", "manual_path": "app-ecpg.html", "localization": {"status": "complete", "sources": [{"url": "/docs/14/app-ecpg.html", "method": "same-major semantic node", "sha256": "eedad372907405850211272ae35e1f77affebbed219aa240ac3047dc1ef0c22c", "language": "zh", "matched_nodes": ["#APP-ECPG/div[2]/p[1]", "#APP-ECPG/div[3]/h2[0]", "#APP-ECPG/div[4]/p[1]", "#APP-ECPG/div[4]/p[2]", "#APP-ECPG/div[4]/p[3]", "#APP-ECPG/div[4]/p[4]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[11]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[13]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[15]/div[1]/dl[0]/dd[1]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[15]/div[1]/dl[0]/dd[3]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[15]/div[1]/dl[0]/dd[5]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[17]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[19]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[1]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[21]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[23]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[3]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[5]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[7]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[9]", "#APP-ECPG/div[5]/p[1]", "#APP-ECPG/div[6]/h2[0]", "#APP-ECPG/div[6]/p[1]", "#APP-ECPG/div[6]/p[2]", "#APP-ECPG/div[6]/p[3]", "#APP-ECPG/div[7]/h2[0]", "#APP-ECPG/div[7]/p[1]"]}], "language": "zh", "original_text": {"/versions/14/description/0": "ecpg \u2014 embedded SQL C preprocessor", "/versions/14/facts/0/label": "Documented executable", "/versions/14/facts/1/label": "Executable version", "/versions/14/facts/2/label": "Reference inventory", "/versions/14/facts/2/value": "Client applications", "/versions/14/facts/3/label": "Option definition groups", "/versions/14/tables/0/title": "Documented options", "/versions/14/tables/0/rows/0/summary": "Automatically generate certain C code from SQL code. Currently, this works for EXEC SQL TYPE .", "/versions/14/tables/0/rows/1/summary": "Set a compatibility mode. mode can be INFORMIX , INFORMIX_SE , or ORACLE .", "/versions/14/tables/0/rows/2/summary": "Define a preprocessor symbol, equivalently to the EXEC SQL DEFINE directive. If no value is specified, the symbol is defined with the value 1 .", "/versions/14/tables/0/rows/3/summary": "Process header files. When this option is specified, the output file extension becomes .h not .c , and the default input file extension is .pgh not .pgc . Also, the -c option is forced on.", "/versions/14/tables/0/rows/4/summary": "Parse system include files as well.", "/versions/14/tables/0/rows/5/summary": "Specify an additional include path, used to find files included via EXEC SQL INCLUDE . Defaults are . (current directory), /usr/local/include , the PostgreSQL include directory which is defined at compile time (default: /usr/local/pgsql/include ), and /usr/include , in that order.", "/versions/14/tables/0/rows/6/summary": "Specifies that ecpg should write all its output to the given filename . Write -o - to send all output to standard output.", "/versions/14/tables/0/rows/7/summary": "Selects run-time behavior. Option can be one of the following:", "/versions/14/tables/0/rows/8/summary": "Turn on autocommit of transactions. In this mode, each SQL command is automatically committed unless it is inside an explicit transaction block. In the default mode, commands are committed only when EXEC SQL COMMIT is issued.", "/versions/14/tables/0/rows/9/summary": "Print additional information including the version and the \"include\" path.", "/versions/14/tables/0/columns/0/label": "Option and arguments", "/versions/14/tables/0/columns/1/label": "Description", "/versions/14/tables/0/rows/10/summary": "Print the ecpg version and exit.", "/versions/14/tables/0/rows/11/summary": "Show help about ecpg command line arguments, and exit."}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "9571a7f86273bce5335bcdc6e8c8999af509c65c4ca7a9b10abb8ad5697e8b36"}, "comparison_data": {"options": [{"names": ["-c"], "signature": "-c", "description": "Automatically generate certain C code from SQL code. Currently, this works for EXEC SQL TYPE ."}, {"names": ["-C mode"], "signature": "-C mode", "description": "Set a compatibility mode. mode can be INFORMIX , INFORMIX_SE , or ORACLE ."}, {"names": ["-D symbol [= value ]"], "signature": "-D symbol [= value ]", "description": "Define a preprocessor symbol, equivalently to the EXEC SQL DEFINE directive. If no value is specified, the symbol is defined with the value 1 ."}, {"names": ["-h"], "signature": "-h", "description": "Process header files. When this option is specified, the output file extension becomes .h not .c , and the default input file extension is .pgh not .pgc . Also, the -c option is forced on."}, {"names": ["-i"], "signature": "-i", "description": "Parse system include files as well."}, {"names": ["-I directory"], "signature": "-I directory", "description": "Specify an additional include path, used to find files included via EXEC SQL INCLUDE . Defaults are . (current directory), /usr/local/include , the PostgreSQL include directory which is defined at compile time (default: /usr/local/pgsql/include ), and /usr/include , in that order."}, {"names": ["-o filename"], "signature": "-o filename", "description": "Specifies that ecpg should write all its output to the given filename . Write -o - to send all output to standard output."}, {"names": ["-r option"], "signature": "-r option", "description": "Selects run-time behavior. Option can be one of the following: no_indicator Do not use indicators but instead use special values to represent null values. Historically there have been databases using this approach. prepare Prepare all statements before using them. Libecpg will keep a cache of prepared statements and reuse a statement if it gets executed again. If the cache runs full, libecpg will free the least used statement. questionmarks Allow question mark as placeholder for compatibility reasons. This used to be the default long ago."}, {"names": ["-t"], "signature": "-t", "description": "Turn on autocommit of transactions. In this mode, each SQL command is automatically committed unless it is inside an explicit transaction block. In the default mode, commands are committed only when EXEC SQL COMMIT is issued."}, {"names": ["-v"], "signature": "-v", "description": "Print additional information including the version and the \"include\" path."}, {"names": ["--version"], "signature": "--version", "description": "Print the ecpg version and exit."}, {"names": ["-?", "--help"], "signature": "-? --help", "description": "Show help about ecpg command line arguments, and exit."}], "synopsis": ["ecpg [ option ...] file ..."], "environment": []}, "comparison_hash": "9b115ab9dbd18516028622d20fe8fe477e01f88cb80ad0615213dea618875d6d", "manual_language": "zh"}, "15": {"facts": [{"label": "\u624b\u518c\u4e2d\u7684\u53ef\u6267\u884c\u7a0b\u5e8f", "value": "ecpg"}, {"label": "\u7a0b\u5e8f\u7248\u672c", "value": "15.19"}, {"label": "\u53c2\u8003\u6e05\u5355", "value": "\u5ba2\u6237\u7aef\u7a0b\u5e8f"}, {"label": "\u9009\u9879\u5b9a\u4e49\u7ec4", "value": "12"}], "tables": [{"key": "options", "rows": [{"summary": "\u81ea\u52a8\u4ece SQL \u4ee3\u7801\u751f\u6210\u67d0\u4e9b C \u4ee3\u7801\u3002\u76ee\u524d\uff0c\u8fd9\u9002\u7528\u4e8e EXEC SQL TYPE \u3002", "signature": {"url": "/docs/15/app-ecpg.html", "text": "-c"}}, {"summary": "\u8bbe\u7f6e\u517c\u5bb9\u6a21\u5f0f\u3002 mode \u53ef\u4ee5\u662f INFORMIX \u3001 INFORMIX_SE \uff0c\u6216 ORACLE \u3002", "signature": {"url": "/docs/15/app-ecpg.html", "text": "-C mode"}}, {"summary": "\u5b9a\u4e49\u4e00\u4e2a\u9884\u5904\u7406\u5668\u7b26\u53f7\uff0c\u7b49\u6548\u4e8e EXEC SQL DEFINE \u6307\u4ee4\u3002\u5982\u679c\u672a\u6307\u5b9a value \uff0c\u5219\u8be5\u7b26\u53f7\u4f1a\u88ab\u5b9a\u4e49\u4e3a\u503c 1 \u3002", "signature": {"url": "/docs/15/app-ecpg.html", "text": "-D symbol [= value ]"}}, {"summary": "\u5904\u7406\u5934\u6587\u4ef6\u3002\u6307\u5b9a\u8be5\u9009\u9879\u65f6\uff0c\u8f93\u51fa\u6587\u4ef6\u6269\u5c55\u540d\u53d8\u4e3a .h \u800c\u4e0d\u662f .c \uff0c\u9ed8\u8ba4\u8f93\u5165\u6587\u4ef6\u6269\u5c55\u540d\u4e5f\u53d8\u4e3a .pgh \u800c\u4e0d\u662f .pgc \u3002\u6b64\u5916\uff0c\u8fd8\u4f1a\u5f3a\u5236\u542f\u7528 -c \u9009\u9879\u3002", "signature": {"url": "/docs/15/app-ecpg.html", "text": "-h"}}, {"summary": "\u4e5f\u89e3\u6790\u7cfb\u7edf\u5305\u542b\u6587\u4ef6\u3002", "signature": {"url": "/docs/15/app-ecpg.html", "text": "-i"}}, {"summary": "\u6307\u5b9a\u4e00\u4e2a\u9644\u52a0\u7684\u5305\u542b\u6587\u4ef6\u641c\u7d22\u8def\u5f84\uff0c\u7528\u4e8e\u67e5\u627e\u901a\u8fc7 EXEC SQL INCLUDE \u5305\u542b\u7684\u6587\u4ef6\u3002\u9ed8\u8ba4\u8def\u5f84\u4f9d\u6b21\u4e3a . \uff08\u5f53\u524d\u76ee\u5f55\uff09\u3001 /usr/local/include \u3001\u7f16\u8bd1\u65f6\u5b9a\u4e49\u7684 PostgreSQL \u5305\u542b\u6587\u4ef6\u76ee\u5f55\uff08\u9ed8\u8ba4\uff1a /usr/local/pgsql/include \uff09\uff0c\u4ee5\u53ca /usr/include \u3002", "signature": {"url": "/docs/15/app-ecpg.html", "text": "-I directory"}}, {"summary": "\u6307\u5b9a ecpg \u5e94\u5c06\u5168\u90e8\u8f93\u51fa\u5199\u5165\u7ed9\u5b9a\u7684 filename \u3002\u5199\u6210 -o - \u53ef\u5c06\u5168\u90e8\u8f93\u51fa\u53d1\u9001\u5230\u6807\u51c6\u8f93\u51fa\u3002", "signature": {"url": "/docs/15/app-ecpg.html", "text": "-o filename"}}, {"summary": "\u9009\u62e9\u8fd0\u884c\u65f6\u884c\u4e3a\u3002\u9009\u9879\u53ef\u4ee5\u662f\u4e0b\u5217\u503c\u4e4b\u4e00\uff1a", "signature": {"url": "/docs/15/app-ecpg.html", "text": "-r option"}}, {"summary": "\u6253\u5f00\u4e8b\u52a1\u81ea\u52a8\u63d0\u4ea4\u3002\u5728\u6b64\u6a21\u5f0f\u4e0b\uff0c\u9664\u975e SQL \u547d\u4ee4\u4f4d\u4e8e\u663e\u5f0f\u4e8b\u52a1\u5757\u4e2d\uff0c\u5426\u5219\u6bcf\u6761 SQL \u547d\u4ee4\u90fd\u4f1a\u81ea\u52a8\u63d0\u4ea4\u3002\u5728\u9ed8\u8ba4\u6a21\u5f0f\u4e0b\uff0c\u53ea\u6709\u53d1\u51fa EXEC SQL COMMIT \u65f6\u624d\u4f1a\u63d0\u4ea4\u547d\u4ee4\u3002", "signature": {"url": "/docs/15/app-ecpg.html", "text": "-t"}}, {"summary": "\u6253\u5370\u9644\u52a0\u4fe1\u606f\uff0c\u5305\u62ec\u7248\u672c\u548c\u5305\u542b\u6587\u4ef6\u641c\u7d22\u8def\u5f84\u3002", "signature": {"url": "/docs/15/app-ecpg.html", "text": "-v"}}, {"summary": "\u6253\u5370 ecpg \u7248\u672c\u5e76\u9000\u51fa\u3002", "signature": {"url": "/docs/15/app-ecpg.html", "text": "--version"}}, {"summary": "\u663e\u793a\u5173\u4e8e ecpg \u547d\u4ee4\u884c\u53c2\u6570\u7684\u5e2e\u52a9\u4fe1\u606f\uff0c\u5e76\u9000\u51fa\u3002", "signature": {"url": "/docs/15/app-ecpg.html", "text": "-? --help"}}], "title": "\u624b\u518c\u4e2d\u7684\u9009\u9879", "columns": [{"key": "signature", "label": "\u9009\u9879\u4e0e\u53c2\u6570"}, {"key": "summary", "label": "\u8bf4\u660e"}]}], "options": [{"names": ["-c"], "summary": "Automatically generate certain C code from SQL code. Currently, this works for EXEC SQL TYPE .", "signature": "-c", "source_url": "/docs/15/app-ecpg.html", "description": "Automatically generate certain C code from SQL code. Currently, this works for EXEC SQL TYPE ."}, {"names": ["-C mode"], "summary": "Set a compatibility mode. mode can be INFORMIX , INFORMIX_SE , or ORACLE .", "signature": "-C mode", "source_url": "/docs/15/app-ecpg.html", "description": "Set a compatibility mode. mode can be INFORMIX , INFORMIX_SE , or ORACLE ."}, {"names": ["-D symbol [= value ]"], "summary": "Define a preprocessor symbol, equivalently to the EXEC SQL DEFINE directive. If no value is specified, the symbol is defined with the value 1 .", "signature": "-D symbol [= value ]", "source_url": "/docs/15/app-ecpg.html", "description": "Define a preprocessor symbol, equivalently to the EXEC SQL DEFINE directive. If no value is specified, the symbol is defined with the value 1 ."}, {"names": ["-h"], "summary": "Process header files. When this option is specified, the output file extension becomes .h not .c , and the default input file extension is .pgh not .pgc . Also, the -c option is forced on.", "signature": "-h", "source_url": "/docs/15/app-ecpg.html", "description": "Process header files. When this option is specified, the output file extension becomes .h not .c , and the default input file extension is .pgh not .pgc . Also, the -c option is forced on."}, {"names": ["-i"], "summary": "Parse system include files as well.", "signature": "-i", "source_url": "/docs/15/app-ecpg.html", "description": "Parse system include files as well."}, {"names": ["-I directory"], "summary": "Specify an additional include path, used to find files included via EXEC SQL INCLUDE . Defaults are . (current directory), /usr/local/include , the PostgreSQL include directory which is defined at compile time (default: /usr/local/pgsql/include ), and /usr/include , in that order.", "signature": "-I directory", "source_url": "/docs/15/app-ecpg.html", "description": "Specify an additional include path, used to find files included via EXEC SQL INCLUDE . Defaults are . (current directory), /usr/local/include , the PostgreSQL include directory which is defined at compile time (default: /usr/local/pgsql/include ), and /usr/include , in that order."}, {"names": ["-o filename"], "summary": "Specifies that ecpg should write all its output to the given filename . Write -o - to send all output to standard output.", "signature": "-o filename", "source_url": "/docs/15/app-ecpg.html", "description": "Specifies that ecpg should write all its output to the given filename . Write -o - to send all output to standard output."}, {"names": ["-r option"], "summary": "Selects run-time behavior. Option can be one of the following:", "signature": "-r option", "source_url": "/docs/15/app-ecpg.html", "description": "Selects run-time behavior. Option can be one of the following: no_indicator Do not use indicators but instead use special values to represent null values. Historically there have been databases using this approach. prepare Prepare all statements before using them. Libecpg will keep a cache of prepared statements and reuse a statement if it gets executed again. If the cache runs full, libecpg will free the least used statement. questionmarks Allow question mark as placeholder for compatibility reasons. This used to be the default long ago."}, {"names": ["-t"], "summary": "Turn on autocommit of transactions. In this mode, each SQL command is automatically committed unless it is inside an explicit transaction block. In the default mode, commands are committed only when EXEC SQL COMMIT is issued.", "signature": "-t", "source_url": "/docs/15/app-ecpg.html", "description": "Turn on autocommit of transactions. In this mode, each SQL command is automatically committed unless it is inside an explicit transaction block. In the default mode, commands are committed only when EXEC SQL COMMIT is issued."}, {"names": ["-v"], "summary": "Print additional information including the version and the \"include\" path.", "signature": "-v", "source_url": "/docs/15/app-ecpg.html", "description": "Print additional information including the version and the \"include\" path."}, {"names": ["--version"], "summary": "Print the ecpg version and exit.", "signature": "--version", "source_url": "/docs/15/app-ecpg.html", "description": "Print the ecpg version and exit."}, {"names": ["-?", "--help"], "summary": "Show help about ecpg command line arguments, and exit.", "signature": "-? --help", "source_url": "/docs/15/app-ecpg.html", "description": "Show help about ecpg command line arguments, and exit."}], "related": [], "release": {"ref": "https://ftp.postgresql.org/pub/source/v15.19/postgresql-15.19.tar.bz2", "label": "15.19", "major": "15", "channel": "stable", "manifest": {"pdf": {"A4": {"url": "/files/documentation/pdf/15/postgresql-15-A4.pdf", "bytes": 14609140, "pages": 2987, "sha256": "66228564a4d16efb47d6a914085716ecfe22ca1566db56bc7c3d82f790646d72", "built_at": "2026-09-26"}, "US": {"url": "/files/documentation/pdf/15/postgresql-15-US.pdf", "bytes": 14495690, "pages": 3153, "sha256": "645a498c2390d47a6223ec74770631185807a19c484edb0fc5a295d9f460bc02", "built_at": "2026-09-26"}}, "tree": "15", "index": "index.html", "major": "15", "pages": 1168, "release": "15.19", "source_url": "https://ftp.postgresql.org/pub/source/v15.19/postgresql-15.19.tar.bz2", "svg_assets": 3, "source_mode": "en HTML verified against the pinned official archive", "source_sha256": "e1a64a87a46b825b88c082e4518161a47aab53c45694964f8ba1df28f7859f89"}, "revision": "6af958c6520151fc7697d56e0616b03fb00522c4568158674d452ae0644ba545", "evidence_kind": "English manual and source declarations", "source_sha256": "e1a64a87a46b825b88c082e4518161a47aab53c45694964f8ba1df28f7859f89"}, "sources": [{"url": "https://pg.center/docs/15/app-ecpg.html", "file": "app-ecpg.html", "label": "15.19 English manual \u00b7 app-ecpg.html", "anchor": "", "sha256": "86f933b4855a4c1e43001e1348adf31c9440352b8cd5c187da39a272c6afe41d", "language": "en", "original_url": "/docs/15/app-ecpg.html"}, {"url": "https://pg.center/docs/15/reference-client.html", "file": "reference-client.html", "label": "Client applications inventory", "anchor": "", "sha256": "015b2ea2bd205946a55a1b837e735570631bac831c92074a6bf58444f9a3cb98", "language": "en", "original_url": "/docs/15/reference-client.html"}], "sections": [], "synopsis": ["ecpg [ option ...] file ..."], "signature": "ecpg [ option ...] file ...", "description": ["ecpg \u2014 \u5d4c\u5165\u5f0f SQL C \u9884\u5904\u7406\u5668"], "environment": [], "manual_html": "<div><div class=\"refentry\" id=\"APP-ECPG\">\n<div class=\"titlepage\"></div>\n<div class=\"refnamediv\">\n<h2><span class=\"refentrytitle\"><span class=\"application\">ecpg</span></span></h2>\n<p lang=\"zh\"><span class=\"application\">ecpg</span> \u2014 \u5d4c\u5165\u5f0f SQL C \u9884\u5904\u7406\u5668</p>\n</div>\n<div class=\"refsynopsisdiv\">\n<h2 lang=\"zh\">\u5927\u7eb2</h2>\n<div class=\"cmdsynopsis\">\n<p id=\"id-1.9.4.8.4.1\"><code class=\"command\">ecpg</code> [<em class=\"replaceable\"><code>option</code></em>...] <em class=\"replaceable\"><code>file</code></em>...</p>\n</div>\n</div>\n<div class=\"refsect1\" id=\"APP-ECPG-DESCRIPTION\">\n<h2 lang=\"zh\">\u8bf4\u660e</h2>\n<p lang=\"zh\"><code class=\"command\">ecpg</code>\u662f\u4f9b C \u7a0b\u5e8f\u4f7f\u7528\u7684\u5d4c\u5165\u5f0f SQL \u9884\u5904\u7406\u5668\u3002\u5b83\u4f1a\u628a\u5d4c\u5165\u4e86 SQL \u8bed\u53e5\u7684 C \u7a0b\u5e8f\u8f6c\u6362\u6210\u666e\u901a C \u4ee3\u7801\uff0c\u65b9\u6cd5\u662f\u5c06 SQL \u8c03\u7528\u66ff\u6362\u4e3a\u7279\u6b8a\u7684\u51fd\u6570\u8c03\u7528\u3002\u751f\u6210\u7684\u8f93\u51fa\u6587\u4ef6\u968f\u540e\u53ef\u4ee5\u7531\u4efb\u4f55 C \u7f16\u8bd1\u5668\u5de5\u5177\u94fe\u5904\u7406\u3002</p>\n<p lang=\"zh\"><code class=\"command\">ecpg</code>\u4f1a\u5c06\u547d\u4ee4\u884c\u4e2d\u7ed9\u51fa\u7684\u6bcf\u4e2a\u8f93\u5165\u6587\u4ef6\u8f6c\u6362\u6210\u5bf9\u5e94\u7684 C \u8f93\u51fa\u6587\u4ef6\u3002\u82e5\u8f93\u5165\u6587\u4ef6\u540d\u6ca1\u6709\u4efb\u4f55\u6269\u5c55\u540d\uff0c\u5219\u5047\u5b9a\u5176\u6269\u5c55\u540d\u4e3a<code class=\"filename\">.pgc</code>\u3002\u968f\u540e\u4f1a\u628a\u8be5\u6587\u4ef6\u7684\u6269\u5c55\u540d\u66ff\u6362\u4e3a <code class=\"filename\">.c</code>\uff0c\u4ee5\u6784\u9020\u8f93\u51fa\u6587\u4ef6\u540d\u3002\u4e0d\u8fc7\uff0c\u4e5f\u53ef\u4ee5\u7528<code class=\"option\">-o</code>\u9009\u9879\u8986\u76d6\u8f93\u51fa\u6587\u4ef6\u540d\u3002</p>\n<p lang=\"zh\">\u5982\u679c\u8f93\u5165\u6587\u4ef6\u540d\u53ea\u662f<code class=\"literal\">-</code>\uff0c<code class=\"command\">ecpg</code>\u5c31\u4f1a\u4ece\u6807\u51c6\u8f93\u5165\u8bfb\u53d6\u7a0b\u5e8f\uff08\u5e76\u5199\u5230\u6807\u51c6\u8f93\u51fa\uff0c\u9664\u975e\u4f7f\u7528<code class=\"option\">-o</code>\u8986\u76d6\u8be5\u884c\u4e3a\uff09\u3002</p>\n<p lang=\"zh\">\u672c\u53c2\u8003\u9875\u4e0d\u63cf\u8ff0\u5d4c\u5165\u5f0f SQL \u8bed\u8a00\u3002\u6709\u5173\u8be5\u4e3b\u9898\u7684\u66f4\u591a\u4fe1\u606f\uff0c\u89c1<a class=\"xref\" href=\"/docs/15/ecpg.html\" title=\"\u7b2c\u00a036\u00a0\u7ae0\u00a0ECPG \u2014 C \u4e2d\u7684\u5d4c\u5165\u5f0f SQL\">\u7b2c\u00a036\u00a0\u7ae0</a>\u3002</p>\n</div>\n<div class=\"refsect1\" id=\"id-1.9.4.8.6\">\n<h2 lang=\"zh\">\u9009\u9879</h2>\n<p lang=\"zh\"><code class=\"command\">ecpg</code>\u63a5\u53d7\u4ee5\u4e0b\u547d\u4ee4\u884c\u53c2\u6570\uff1a</p>\n<div class=\"variablelist\">\n<dl class=\"variablelist\">\n<dt><span class=\"term\"><code class=\"option\">-c</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u81ea\u52a8\u4ece SQL \u4ee3\u7801\u751f\u6210\u67d0\u4e9b C \u4ee3\u7801\u3002\u76ee\u524d\uff0c\u8fd9\u9002\u7528\u4e8e<code class=\"literal\">EXEC SQL TYPE</code>\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-C <em class=\"replaceable\"><code>mode</code></em></code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u8bbe\u7f6e\u517c\u5bb9\u6a21\u5f0f\u3002<em class=\"replaceable\"><code>mode</code></em>\u53ef\u4ee5\u662f<code class=\"literal\">INFORMIX</code>\u3001<code class=\"literal\">INFORMIX_SE</code>\uff0c\u6216<code class=\"literal\">ORACLE</code>\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-D <em class=\"replaceable\"><code>symbol</code></em>[=<em class=\"replaceable\"><code>value</code></em>]</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u5b9a\u4e49\u4e00\u4e2a\u9884\u5904\u7406\u5668\u7b26\u53f7\uff0c\u7b49\u6548\u4e8e<code class=\"command\">EXEC SQL DEFINE</code>\u6307\u4ee4\u3002\u5982\u679c\u672a\u6307\u5b9a<em class=\"replaceable\"><code>value</code></em>\uff0c\u5219\u8be5\u7b26\u53f7\u4f1a\u88ab\u5b9a\u4e49\u4e3a\u503c<code class=\"literal\">1</code>\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-h</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u5904\u7406\u5934\u6587\u4ef6\u3002\u6307\u5b9a\u8be5\u9009\u9879\u65f6\uff0c\u8f93\u51fa\u6587\u4ef6\u6269\u5c55\u540d\u53d8\u4e3a<code class=\"literal\">.h</code>\u800c\u4e0d\u662f<code class=\"literal\">.c</code>\uff0c\u9ed8\u8ba4\u8f93\u5165\u6587\u4ef6\u6269\u5c55\u540d\u4e5f\u53d8\u4e3a<code class=\"literal\">.pgh</code>\u800c\u4e0d\u662f<code class=\"literal\">.pgc</code>\u3002\u6b64\u5916\uff0c\u8fd8\u4f1a\u5f3a\u5236\u542f\u7528<code class=\"option\">-c</code>\u9009\u9879\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-i</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u4e5f\u89e3\u6790\u7cfb\u7edf\u5305\u542b\u6587\u4ef6\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-I <em class=\"replaceable\"><code>directory</code></em></code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6307\u5b9a\u4e00\u4e2a\u9644\u52a0\u7684\u5305\u542b\u6587\u4ef6\u641c\u7d22\u8def\u5f84\uff0c\u7528\u4e8e\u67e5\u627e\u901a\u8fc7<code class=\"literal\">EXEC SQL INCLUDE</code>\u5305\u542b\u7684\u6587\u4ef6\u3002\u9ed8\u8ba4\u8def\u5f84\u4f9d\u6b21\u4e3a<code class=\"filename\">.</code>\uff08\u5f53\u524d\u76ee\u5f55\uff09\u3001<code class=\"filename\">/usr/local/include</code>\u3001\u7f16\u8bd1\u65f6\u5b9a\u4e49\u7684<span class=\"productname\">PostgreSQL</span>\u5305\u542b\u6587\u4ef6\u76ee\u5f55\uff08\u9ed8\u8ba4\uff1a<code class=\"filename\">/usr/local/pgsql/include</code>\uff09\uff0c\u4ee5\u53ca<code class=\"filename\">/usr/include</code>\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-o <em class=\"replaceable\"><code>filename</code></em></code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6307\u5b9a<code class=\"command\">ecpg</code>\u5e94\u5c06\u5168\u90e8\u8f93\u51fa\u5199\u5165\u7ed9\u5b9a\u7684<em class=\"replaceable\"><code>filename</code></em>\u3002\u5199\u6210<code class=\"literal\">-o -</code>\u53ef\u5c06\u5168\u90e8\u8f93\u51fa\u53d1\u9001\u5230\u6807\u51c6\u8f93\u51fa\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-r <em class=\"replaceable\"><code>option</code></em></code></span></dt>\n<dd>\n<p lang=\"zh\">\u9009\u62e9\u8fd0\u884c\u65f6\u884c\u4e3a\u3002\u9009\u9879\u53ef\u4ee5\u662f\u4e0b\u5217\u503c\u4e4b\u4e00\uff1a</p>\n<div class=\"variablelist\">\n<dl class=\"variablelist\">\n<dt><span class=\"term\"><code class=\"option\">no_indicator</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u4e0d\u4f7f\u7528\u6307\u793a\u7b26\uff0c\u800c\u6539\u7528\u7279\u6b8a\u503c\u8868\u793a\u7a7a\u503c\u3002\u5386\u53f2\u4e0a\u66fe\u6709\u6570\u636e\u5e93\u91c7\u7528\u8fd9\u79cd\u65b9\u5f0f\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">prepare</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u5728\u4f7f\u7528\u524d\u9884\u5907\u6240\u6709\u8bed\u53e5\u3002libecpg\u4f1a\u7ef4\u62a4\u4e00\u4e2a\u5df2\u9884\u5907\u8bed\u53e5\u7684\u7f13\u5b58\uff1b\u5982\u679c\u67d0\u6761\u8bed\u53e5\u518d\u6b21\u6267\u884c\uff0c\u5c31\u4f1a\u590d\u7528\u5b83\u3002\u82e5\u7f13\u5b58\u5df2\u6ee1\uff0clibecpg\u4f1a\u91ca\u653e\u4f7f\u7528\u6b21\u6570\u6700\u5c11\u7684\u8bed\u53e5\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">questionmarks</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u51fa\u4e8e\u517c\u5bb9\u6027\u539f\u56e0\uff0c\u5141\u8bb8\u4f7f\u7528\u95ee\u53f7\u4f5c\u4e3a\u5360\u4f4d\u7b26\u3002\u8fd9\u5728\u5f88\u4e45\u4ee5\u524d\u66fe\u662f\u9ed8\u8ba4\u884c\u4e3a\u3002</p>\n</p>\n</dd>\n</dl>\n</div>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-t</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6253\u5f00\u4e8b\u52a1\u81ea\u52a8\u63d0\u4ea4\u3002\u5728\u6b64\u6a21\u5f0f\u4e0b\uff0c\u9664\u975e SQL \u547d\u4ee4\u4f4d\u4e8e\u663e\u5f0f\u4e8b\u52a1\u5757\u4e2d\uff0c\u5426\u5219\u6bcf\u6761 SQL \u547d\u4ee4\u90fd\u4f1a\u81ea\u52a8\u63d0\u4ea4\u3002\u5728\u9ed8\u8ba4\u6a21\u5f0f\u4e0b\uff0c\u53ea\u6709\u53d1\u51fa<code class=\"command\">EXEC SQL COMMIT</code>\u65f6\u624d\u4f1a\u63d0\u4ea4\u547d\u4ee4\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-v</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6253\u5370\u9644\u52a0\u4fe1\u606f\uff0c\u5305\u62ec\u7248\u672c\u548c\u5305\u542b\u6587\u4ef6\u641c\u7d22\u8def\u5f84\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">--version</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6253\u5370<span class=\"application\">ecpg</span>\u7248\u672c\u5e76\u9000\u51fa\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-?</code><br/></span><span class=\"term\"><code class=\"option\">--help</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u663e\u793a\u5173\u4e8e<span class=\"application\">ecpg</span>\u547d\u4ee4\u884c\u53c2\u6570\u7684\u5e2e\u52a9\u4fe1\u606f\uff0c\u5e76\u9000\u51fa\u3002</p>\n</p>\n</dd>\n</dl>\n</div>\n</div>\n<div class=\"refsect1\" id=\"id-1.9.4.8.7\">\n<h2 lang=\"zh\">\u6ce8\u89e3</h2>\n<p lang=\"zh\">\u5728\u7f16\u8bd1\u9884\u5904\u7406\u540e\u7684 C \u4ee3\u7801\u6587\u4ef6\u65f6\uff0c\u7f16\u8bd1\u5668\u5fc5\u987b\u80fd\u591f\u5728<span class=\"productname\">PostgreSQL</span>\u7684\u5305\u542b\u6587\u4ef6\u76ee\u5f55\u4e2d\u627e\u5230<span class=\"application\">ECPG</span>\u5934\u6587\u4ef6\u3002\u56e0\u6b64\uff0c\u8c03\u7528\u7f16\u8bd1\u5668\u65f6\u4f60\u53ef\u80fd\u9700\u8981\u4f7f\u7528<code class=\"option\">-I</code>\u9009\u9879\uff08\u4f8b\u5982<code class=\"literal\">-I/usr/local/pgsql/include</code>\uff09\u3002</p>\n<p lang=\"zh\">\u4f7f\u7528\u5d4c\u5165\u5f0f SQL \u7684 C \u7a0b\u5e8f\u5fc5\u987b\u4e0e<code class=\"filename\">libecpg</code>\u5e93\u94fe\u63a5\uff0c\u4f8b\u5982\u53ef\u4f7f\u7528\u94fe\u63a5\u5668\u9009\u9879<code class=\"literal\">-L/usr/local/pgsql/lib -lecpg</code>\u3002</p>\n<p lang=\"zh\">\u5f53\u524d\u5b89\u88c5\u4f7f\u7528\u7684\u8fd9\u4e24\u4e2a\u76ee\u5f55\u53ef\u901a\u8fc7<a class=\"xref\" href=\"/docs/15/app-pgconfig.html\" title=\"pg_config\"><span class=\"refentrytitle\"><span class=\"application\">pg_config</span></span></a>\u67e5\u8be2\u3002</p>\n</div>\n<div class=\"refsect1\" id=\"id-1.9.4.8.8\">\n<h2 lang=\"zh\">\u793a\u4f8b</h2>\n<p lang=\"zh\">\u5982\u679c\u4f60\u6709\u4e00\u4e2a\u540d\u4e3a<code class=\"filename\">prog1.pgc</code>\u7684\u5d4c\u5165\u5f0f SQL C \u6e90\u6587\u4ef6\uff0c\u5c31\u53ef\u4ee5\u4f7f\u7528\u4e0b\u5217\u547d\u4ee4\u5e8f\u5217\u521b\u5efa\u4e00\u4e2a\u53ef\u6267\u884c\u7a0b\u5e8f\uff1a</p>\n<pre class=\"programlisting\">ecpg prog1.pgc\ncc -I/usr/local/pgsql/include -c prog1.c\ncc -o prog1 prog1.o -L/usr/local/pgsql/lib -lecpg\n</pre>\n</div>\n</div></div>", "manual_path": "app-ecpg.html", "localization": {"status": "complete", "sources": [{"url": "/docs/15/app-ecpg.html", "method": "same-major semantic node", "sha256": "d746b6b40cc478b34adda60aca0a6c0f41480f60231a20c01977ca1eaf13d1e1", "language": "zh", "matched_nodes": ["#APP-ECPG/div[2]/p[1]", "#APP-ECPG/div[3]/h2[0]", "#APP-ECPG/div[4]/p[1]", "#APP-ECPG/div[4]/p[2]", "#APP-ECPG/div[4]/p[3]", "#APP-ECPG/div[4]/p[4]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[11]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[13]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[15]/div[1]/dl[0]/dd[1]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[15]/div[1]/dl[0]/dd[3]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[15]/div[1]/dl[0]/dd[5]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[17]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[19]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[1]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[21]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[23]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[3]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[5]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[7]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[9]", "#APP-ECPG/div[5]/p[1]", "#APP-ECPG/div[6]/h2[0]", "#APP-ECPG/div[6]/p[1]", "#APP-ECPG/div[6]/p[2]", "#APP-ECPG/div[6]/p[3]", "#APP-ECPG/div[7]/h2[0]", "#APP-ECPG/div[7]/p[1]"]}], "language": "zh", "original_text": {"/versions/15/description/0": "ecpg \u2014 embedded SQL C preprocessor", "/versions/15/facts/0/label": "Documented executable", "/versions/15/facts/1/label": "Executable version", "/versions/15/facts/2/label": "Reference inventory", "/versions/15/facts/2/value": "Client applications", "/versions/15/facts/3/label": "Option definition groups", "/versions/15/tables/0/title": "Documented options", "/versions/15/tables/0/rows/0/summary": "Automatically generate certain C code from SQL code. Currently, this works for EXEC SQL TYPE .", "/versions/15/tables/0/rows/1/summary": "Set a compatibility mode. mode can be INFORMIX , INFORMIX_SE , or ORACLE .", "/versions/15/tables/0/rows/2/summary": "Define a preprocessor symbol, equivalently to the EXEC SQL DEFINE directive. If no value is specified, the symbol is defined with the value 1 .", "/versions/15/tables/0/rows/3/summary": "Process header files. When this option is specified, the output file extension becomes .h not .c , and the default input file extension is .pgh not .pgc . Also, the -c option is forced on.", "/versions/15/tables/0/rows/4/summary": "Parse system include files as well.", "/versions/15/tables/0/rows/5/summary": "Specify an additional include path, used to find files included via EXEC SQL INCLUDE . Defaults are . (current directory), /usr/local/include , the PostgreSQL include directory which is defined at compile time (default: /usr/local/pgsql/include ), and /usr/include , in that order.", "/versions/15/tables/0/rows/6/summary": "Specifies that ecpg should write all its output to the given filename . Write -o - to send all output to standard output.", "/versions/15/tables/0/rows/7/summary": "Selects run-time behavior. Option can be one of the following:", "/versions/15/tables/0/rows/8/summary": "Turn on autocommit of transactions. In this mode, each SQL command is automatically committed unless it is inside an explicit transaction block. In the default mode, commands are committed only when EXEC SQL COMMIT is issued.", "/versions/15/tables/0/rows/9/summary": "Print additional information including the version and the \"include\" path.", "/versions/15/tables/0/columns/0/label": "Option and arguments", "/versions/15/tables/0/columns/1/label": "Description", "/versions/15/tables/0/rows/10/summary": "Print the ecpg version and exit.", "/versions/15/tables/0/rows/11/summary": "Show help about ecpg command line arguments, and exit."}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "cbd2583d3b93d4e200884660fd9e1e058a27c8cb4830609c2c2a5e8b6fde6dc9"}, "comparison_data": {"options": [{"names": ["-c"], "signature": "-c", "description": "Automatically generate certain C code from SQL code. Currently, this works for EXEC SQL TYPE ."}, {"names": ["-C mode"], "signature": "-C mode", "description": "Set a compatibility mode. mode can be INFORMIX , INFORMIX_SE , or ORACLE ."}, {"names": ["-D symbol [= value ]"], "signature": "-D symbol [= value ]", "description": "Define a preprocessor symbol, equivalently to the EXEC SQL DEFINE directive. If no value is specified, the symbol is defined with the value 1 ."}, {"names": ["-h"], "signature": "-h", "description": "Process header files. When this option is specified, the output file extension becomes .h not .c , and the default input file extension is .pgh not .pgc . Also, the -c option is forced on."}, {"names": ["-i"], "signature": "-i", "description": "Parse system include files as well."}, {"names": ["-I directory"], "signature": "-I directory", "description": "Specify an additional include path, used to find files included via EXEC SQL INCLUDE . Defaults are . (current directory), /usr/local/include , the PostgreSQL include directory which is defined at compile time (default: /usr/local/pgsql/include ), and /usr/include , in that order."}, {"names": ["-o filename"], "signature": "-o filename", "description": "Specifies that ecpg should write all its output to the given filename . Write -o - to send all output to standard output."}, {"names": ["-r option"], "signature": "-r option", "description": "Selects run-time behavior. Option can be one of the following: no_indicator Do not use indicators but instead use special values to represent null values. Historically there have been databases using this approach. prepare Prepare all statements before using them. Libecpg will keep a cache of prepared statements and reuse a statement if it gets executed again. If the cache runs full, libecpg will free the least used statement. questionmarks Allow question mark as placeholder for compatibility reasons. This used to be the default long ago."}, {"names": ["-t"], "signature": "-t", "description": "Turn on autocommit of transactions. In this mode, each SQL command is automatically committed unless it is inside an explicit transaction block. In the default mode, commands are committed only when EXEC SQL COMMIT is issued."}, {"names": ["-v"], "signature": "-v", "description": "Print additional information including the version and the \"include\" path."}, {"names": ["--version"], "signature": "--version", "description": "Print the ecpg version and exit."}, {"names": ["-?", "--help"], "signature": "-? --help", "description": "Show help about ecpg command line arguments, and exit."}], "synopsis": ["ecpg [ option ...] file ..."], "environment": []}, "comparison_hash": "9b115ab9dbd18516028622d20fe8fe477e01f88cb80ad0615213dea618875d6d", "manual_language": "zh"}, "16": {"facts": [{"label": "\u624b\u518c\u4e2d\u7684\u53ef\u6267\u884c\u7a0b\u5e8f", "value": "ecpg"}, {"label": "\u7a0b\u5e8f\u7248\u672c", "value": "16.15"}, {"label": "\u53c2\u8003\u6e05\u5355", "value": "\u5ba2\u6237\u7aef\u7a0b\u5e8f"}, {"label": "\u9009\u9879\u5b9a\u4e49\u7ec4", "value": "12"}], "tables": [{"key": "options", "rows": [{"summary": "\u81ea\u52a8\u4ece SQL \u4ee3\u7801\u751f\u6210\u67d0\u4e9b C \u4ee3\u7801\u3002\u76ee\u524d\uff0c\u8fd9\u9002\u7528\u4e8e EXEC SQL TYPE \u3002", "signature": {"url": "/docs/16/app-ecpg.html", "text": "-c"}}, {"summary": "\u8bbe\u7f6e\u517c\u5bb9\u6a21\u5f0f\u3002 mode \u53ef\u4ee5\u662f INFORMIX \u3001 INFORMIX_SE \uff0c\u6216 ORACLE \u3002", "signature": {"url": "/docs/16/app-ecpg.html", "text": "-C mode"}}, {"summary": "\u5b9a\u4e49\u4e00\u4e2a\u9884\u5904\u7406\u5668\u7b26\u53f7\uff0c\u7b49\u6548\u4e8e EXEC SQL DEFINE \u6307\u4ee4\u3002\u5982\u679c\u672a\u6307\u5b9a value \uff0c\u5219\u8be5\u7b26\u53f7\u4f1a\u88ab\u5b9a\u4e49\u4e3a\u503c 1 \u3002", "signature": {"url": "/docs/16/app-ecpg.html", "text": "-D symbol [= value ]"}}, {"summary": "\u5904\u7406\u5934\u6587\u4ef6\u3002\u6307\u5b9a\u8be5\u9009\u9879\u65f6\uff0c\u8f93\u51fa\u6587\u4ef6\u6269\u5c55\u540d\u53d8\u4e3a .h \u800c\u4e0d\u662f .c \uff0c\u9ed8\u8ba4\u8f93\u5165\u6587\u4ef6\u6269\u5c55\u540d\u4e5f\u53d8\u4e3a .pgh \u800c\u4e0d\u662f .pgc \u3002\u6b64\u5916\uff0c\u8fd8\u4f1a\u5f3a\u5236\u542f\u7528 -c \u9009\u9879\u3002", "signature": {"url": "/docs/16/app-ecpg.html", "text": "-h"}}, {"summary": "\u4e5f\u89e3\u6790\u7cfb\u7edf\u5305\u542b\u6587\u4ef6\u3002", "signature": {"url": "/docs/16/app-ecpg.html", "text": "-i"}}, {"summary": "\u6307\u5b9a\u4e00\u4e2a\u9644\u52a0\u7684\u5305\u542b\u6587\u4ef6\u641c\u7d22\u8def\u5f84\uff0c\u7528\u4e8e\u67e5\u627e\u901a\u8fc7 EXEC SQL INCLUDE \u5305\u542b\u7684\u6587\u4ef6\u3002\u9ed8\u8ba4\u8def\u5f84\u4f9d\u6b21\u4e3a . \uff08\u5f53\u524d\u76ee\u5f55\uff09\u3001 /usr/local/include \u3001\u7f16\u8bd1\u65f6\u5b9a\u4e49\u7684 PostgreSQL \u5305\u542b\u6587\u4ef6\u76ee\u5f55\uff08\u9ed8\u8ba4\uff1a /usr/local/pgsql/include \uff09\uff0c\u4ee5\u53ca /usr/include \u3002", "signature": {"url": "/docs/16/app-ecpg.html", "text": "-I directory"}}, {"summary": "\u6307\u5b9a ecpg \u5e94\u5c06\u5168\u90e8\u8f93\u51fa\u5199\u5165\u7ed9\u5b9a\u7684 filename \u3002\u5199\u6210 -o - \u53ef\u5c06\u5168\u90e8\u8f93\u51fa\u53d1\u9001\u5230\u6807\u51c6\u8f93\u51fa\u3002", "signature": {"url": "/docs/16/app-ecpg.html", "text": "-o filename"}}, {"summary": "\u9009\u62e9\u8fd0\u884c\u65f6\u884c\u4e3a\u3002\u9009\u9879\u53ef\u4ee5\u662f\u4e0b\u5217\u503c\u4e4b\u4e00\uff1a", "signature": {"url": "/docs/16/app-ecpg.html", "text": "-r option"}}, {"summary": "\u6253\u5f00\u4e8b\u52a1\u81ea\u52a8\u63d0\u4ea4\u3002\u5728\u6b64\u6a21\u5f0f\u4e0b\uff0c\u9664\u975e SQL \u547d\u4ee4\u4f4d\u4e8e\u663e\u5f0f\u4e8b\u52a1\u5757\u4e2d\uff0c\u5426\u5219\u6bcf\u6761 SQL \u547d\u4ee4\u90fd\u4f1a\u81ea\u52a8\u63d0\u4ea4\u3002\u5728\u9ed8\u8ba4\u6a21\u5f0f\u4e0b\uff0c\u53ea\u6709\u53d1\u51fa EXEC SQL COMMIT \u65f6\u624d\u4f1a\u63d0\u4ea4\u547d\u4ee4\u3002", "signature": {"url": "/docs/16/app-ecpg.html", "text": "-t"}}, {"summary": "\u6253\u5370\u9644\u52a0\u4fe1\u606f\uff0c\u5305\u62ec\u7248\u672c\u548c\u5305\u542b\u6587\u4ef6\u641c\u7d22\u8def\u5f84\u3002", "signature": {"url": "/docs/16/app-ecpg.html", "text": "-v"}}, {"summary": "\u6253\u5370 ecpg \u7248\u672c\u5e76\u9000\u51fa\u3002", "signature": {"url": "/docs/16/app-ecpg.html", "text": "--version"}}, {"summary": "\u663e\u793a\u5173\u4e8e ecpg \u547d\u4ee4\u884c\u53c2\u6570\u7684\u5e2e\u52a9\u4fe1\u606f\uff0c\u5e76\u9000\u51fa\u3002", "signature": {"url": "/docs/16/app-ecpg.html", "text": "-? --help"}}], "title": "\u624b\u518c\u4e2d\u7684\u9009\u9879", "columns": [{"key": "signature", "label": "\u9009\u9879\u4e0e\u53c2\u6570"}, {"key": "summary", "label": "\u8bf4\u660e"}]}], "options": [{"names": ["-c"], "summary": "Automatically generate certain C code from SQL code. Currently, this works for EXEC SQL TYPE .", "signature": "-c", "source_url": "/docs/16/app-ecpg.html", "description": "Automatically generate certain C code from SQL code. Currently, this works for EXEC SQL TYPE ."}, {"names": ["-C mode"], "summary": "Set a compatibility mode. mode can be INFORMIX , INFORMIX_SE , or ORACLE .", "signature": "-C mode", "source_url": "/docs/16/app-ecpg.html", "description": "Set a compatibility mode. mode can be INFORMIX , INFORMIX_SE , or ORACLE ."}, {"names": ["-D symbol [= value ]"], "summary": "Define a preprocessor symbol, equivalently to the EXEC SQL DEFINE directive. If no value is specified, the symbol is defined with the value 1 .", "signature": "-D symbol [= value ]", "source_url": "/docs/16/app-ecpg.html", "description": "Define a preprocessor symbol, equivalently to the EXEC SQL DEFINE directive. If no value is specified, the symbol is defined with the value 1 ."}, {"names": ["-h"], "summary": "Process header files. When this option is specified, the output file extension becomes .h not .c , and the default input file extension is .pgh not .pgc . Also, the -c option is forced on.", "signature": "-h", "source_url": "/docs/16/app-ecpg.html", "description": "Process header files. When this option is specified, the output file extension becomes .h not .c , and the default input file extension is .pgh not .pgc . Also, the -c option is forced on."}, {"names": ["-i"], "summary": "Parse system include files as well.", "signature": "-i", "source_url": "/docs/16/app-ecpg.html", "description": "Parse system include files as well."}, {"names": ["-I directory"], "summary": "Specify an additional include path, used to find files included via EXEC SQL INCLUDE . Defaults are . (current directory), /usr/local/include , the PostgreSQL include directory which is defined at compile time (default: /usr/local/pgsql/include ), and /usr/include , in that order.", "signature": "-I directory", "source_url": "/docs/16/app-ecpg.html", "description": "Specify an additional include path, used to find files included via EXEC SQL INCLUDE . Defaults are . (current directory), /usr/local/include , the PostgreSQL include directory which is defined at compile time (default: /usr/local/pgsql/include ), and /usr/include , in that order."}, {"names": ["-o filename"], "summary": "Specifies that ecpg should write all its output to the given filename . Write -o - to send all output to standard output.", "signature": "-o filename", "source_url": "/docs/16/app-ecpg.html", "description": "Specifies that ecpg should write all its output to the given filename . Write -o - to send all output to standard output."}, {"names": ["-r option"], "summary": "Selects run-time behavior. Option can be one of the following:", "signature": "-r option", "source_url": "/docs/16/app-ecpg.html", "description": "Selects run-time behavior. Option can be one of the following: no_indicator Do not use indicators but instead use special values to represent null values. Historically there have been databases using this approach. prepare Prepare all statements before using them. Libecpg will keep a cache of prepared statements and reuse a statement if it gets executed again. If the cache runs full, libecpg will free the least used statement. questionmarks Allow question mark as placeholder for compatibility reasons. This used to be the default long ago."}, {"names": ["-t"], "summary": "Turn on autocommit of transactions. In this mode, each SQL command is automatically committed unless it is inside an explicit transaction block. In the default mode, commands are committed only when EXEC SQL COMMIT is issued.", "signature": "-t", "source_url": "/docs/16/app-ecpg.html", "description": "Turn on autocommit of transactions. In this mode, each SQL command is automatically committed unless it is inside an explicit transaction block. In the default mode, commands are committed only when EXEC SQL COMMIT is issued."}, {"names": ["-v"], "summary": "Print additional information including the version and the \"include\" path.", "signature": "-v", "source_url": "/docs/16/app-ecpg.html", "description": "Print additional information including the version and the \"include\" path."}, {"names": ["--version"], "summary": "Print the ecpg version and exit.", "signature": "--version", "source_url": "/docs/16/app-ecpg.html", "description": "Print the ecpg version and exit."}, {"names": ["-?", "--help"], "summary": "Show help about ecpg command line arguments, and exit.", "signature": "-? --help", "source_url": "/docs/16/app-ecpg.html", "description": "Show help about ecpg command line arguments, and exit."}], "related": [], "release": {"ref": "https://ftp.postgresql.org/pub/source/v16.15/postgresql-16.15.tar.bz2", "label": "16.15", "major": "16", "channel": "stable", "manifest": {"pdf": {"A4": {"url": "/files/documentation/pdf/16/postgresql-16-A4.pdf", "bytes": 15282337, "pages": 3055, "sha256": "4bb6c1f63deedac98736d8c4c7bc0fad0ac24e85b07e21ee10411872f06afd06", "built_at": "2026-09-26"}, "US": {"url": "/files/documentation/pdf/16/postgresql-16-US.pdf", "bytes": 15164148, "pages": 3220, "sha256": "5b6b6166c89991199e144bb0ae34c17a5f29826251dbf19db1abc0df3a3e771b", "built_at": "2026-09-26"}}, "tree": "16", "index": "index.html", "major": "16", "pages": 1169, "release": "16.15", "source_url": "https://ftp.postgresql.org/pub/source/v16.15/postgresql-16.15.tar.bz2", "svg_assets": 3, "source_mode": "en HTML verified against the pinned official archive", "source_sha256": "c1575341fa7bd40f5274ea465b34390f4dc64cdd0770af327005caaeb9f6b7ed"}, "revision": "3c21e58b35318021716440e67bb8bafd392b6a2b965a244d90e9e33c99e0bdef", "evidence_kind": "English manual and source declarations", "source_sha256": "c1575341fa7bd40f5274ea465b34390f4dc64cdd0770af327005caaeb9f6b7ed"}, "sources": [{"url": "https://pg.center/docs/16/app-ecpg.html", "file": "app-ecpg.html", "label": "16.15 English manual \u00b7 app-ecpg.html", "anchor": "", "sha256": "b2e93d175de43f0066354a60940f15f399d7b6b57124eb5cdfa5b869d65d4e83", "language": "en", "original_url": "/docs/16/app-ecpg.html"}, {"url": "https://pg.center/docs/16/reference-client.html", "file": "reference-client.html", "label": "Client applications inventory", "anchor": "", "sha256": "a28c30c3c0f8783e16d56413a0b6fd39487e336da1683b29b60abf1c229cef26", "language": "en", "original_url": "/docs/16/reference-client.html"}], "sections": [], "synopsis": ["ecpg [ option ...] file ..."], "signature": "ecpg [ option ...] file ...", "description": ["ecpg \u2014 \u5d4c\u5165\u5f0f SQL C \u9884\u5904\u7406\u5668"], "environment": [], "manual_html": "<div><div class=\"refentry\" id=\"APP-ECPG\">\n<div class=\"titlepage\"></div>\n<div class=\"refnamediv\">\n<h2><span class=\"refentrytitle\"><span class=\"application\">ecpg</span></span></h2>\n<p lang=\"zh\"><span class=\"application\">ecpg</span> \u2014 \u5d4c\u5165\u5f0f SQL C \u9884\u5904\u7406\u5668</p>\n</div>\n<div class=\"refsynopsisdiv\">\n<h2 lang=\"zh\">\u5927\u7eb2</h2>\n<div class=\"cmdsynopsis\">\n<p id=\"id-1.9.4.8.4.1\"><code class=\"command\">ecpg</code> [<em class=\"replaceable\"><code>option</code></em>...] <em class=\"replaceable\"><code>file</code></em>...</p>\n</div>\n</div>\n<div class=\"refsect1\" id=\"APP-ECPG-DESCRIPTION\">\n<h2 lang=\"zh\">\u8bf4\u660e</h2>\n<p lang=\"zh\"><code class=\"command\">ecpg</code>\u662f\u4f9b C \u7a0b\u5e8f\u4f7f\u7528\u7684\u5d4c\u5165\u5f0f SQL \u9884\u5904\u7406\u5668\u3002\u5b83\u4f1a\u628a\u5d4c\u5165\u4e86 SQL \u8bed\u53e5\u7684 C \u7a0b\u5e8f\u8f6c\u6362\u6210\u666e\u901a C \u4ee3\u7801\uff0c\u65b9\u6cd5\u662f\u5c06 SQL \u8c03\u7528\u66ff\u6362\u4e3a\u7279\u6b8a\u7684\u51fd\u6570\u8c03\u7528\u3002\u751f\u6210\u7684\u8f93\u51fa\u6587\u4ef6\u968f\u540e\u53ef\u4ee5\u7531\u4efb\u4f55 C \u7f16\u8bd1\u5668\u5de5\u5177\u94fe\u5904\u7406\u3002</p>\n<p lang=\"zh\"><code class=\"command\">ecpg</code>\u4f1a\u5c06\u547d\u4ee4\u884c\u4e2d\u7ed9\u51fa\u7684\u6bcf\u4e2a\u8f93\u5165\u6587\u4ef6\u8f6c\u6362\u6210\u5bf9\u5e94\u7684 C \u8f93\u51fa\u6587\u4ef6\u3002\u82e5\u8f93\u5165\u6587\u4ef6\u540d\u6ca1\u6709\u4efb\u4f55\u6269\u5c55\u540d\uff0c\u5219\u5047\u5b9a\u5176\u6269\u5c55\u540d\u4e3a<code class=\"filename\">.pgc</code>\u3002\u968f\u540e\u4f1a\u628a\u8be5\u6587\u4ef6\u7684\u6269\u5c55\u540d\u66ff\u6362\u4e3a <code class=\"filename\">.c</code>\uff0c\u4ee5\u6784\u9020\u8f93\u51fa\u6587\u4ef6\u540d\u3002\u4e0d\u8fc7\uff0c\u4e5f\u53ef\u4ee5\u7528<code class=\"option\">-o</code>\u9009\u9879\u8986\u76d6\u8f93\u51fa\u6587\u4ef6\u540d\u3002</p>\n<p lang=\"zh\">\u5982\u679c\u8f93\u5165\u6587\u4ef6\u540d\u53ea\u662f<code class=\"literal\">-</code>\uff0c<code class=\"command\">ecpg</code>\u5c31\u4f1a\u4ece\u6807\u51c6\u8f93\u5165\u8bfb\u53d6\u7a0b\u5e8f\uff08\u5e76\u5199\u5230\u6807\u51c6\u8f93\u51fa\uff0c\u9664\u975e\u4f7f\u7528<code class=\"option\">-o</code>\u8986\u76d6\u8be5\u884c\u4e3a\uff09\u3002</p>\n<p lang=\"zh\">\u672c\u53c2\u8003\u9875\u4e0d\u63cf\u8ff0\u5d4c\u5165\u5f0f SQL \u8bed\u8a00\u3002\u6709\u5173\u8be5\u4e3b\u9898\u7684\u66f4\u591a\u4fe1\u606f\uff0c\u89c1<a class=\"xref\" href=\"/docs/16/ecpg.html\" title=\"\u7b2c\u00a036\u00a0\u7ae0\u00a0ECPG \u2014 C \u4e2d\u7684\u5d4c\u5165\u5f0f SQL\">\u7b2c\u00a036\u00a0\u7ae0</a>\u3002</p>\n</div>\n<div class=\"refsect1\" id=\"id-1.9.4.8.6\">\n<h2 lang=\"zh\">\u9009\u9879</h2>\n<p lang=\"zh\"><code class=\"command\">ecpg</code>\u63a5\u53d7\u4ee5\u4e0b\u547d\u4ee4\u884c\u53c2\u6570\uff1a</p>\n<div class=\"variablelist\">\n<dl class=\"variablelist\">\n<dt><span class=\"term\"><code class=\"option\">-c</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u81ea\u52a8\u4ece SQL \u4ee3\u7801\u751f\u6210\u67d0\u4e9b C \u4ee3\u7801\u3002\u76ee\u524d\uff0c\u8fd9\u9002\u7528\u4e8e<code class=\"literal\">EXEC SQL TYPE</code>\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-C <em class=\"replaceable\"><code>mode</code></em></code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u8bbe\u7f6e\u517c\u5bb9\u6a21\u5f0f\u3002<em class=\"replaceable\"><code>mode</code></em>\u53ef\u4ee5\u662f<code class=\"literal\">INFORMIX</code>\u3001<code class=\"literal\">INFORMIX_SE</code>\uff0c\u6216<code class=\"literal\">ORACLE</code>\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-D <em class=\"replaceable\"><code>symbol</code></em>[=<em class=\"replaceable\"><code>value</code></em>]</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u5b9a\u4e49\u4e00\u4e2a\u9884\u5904\u7406\u5668\u7b26\u53f7\uff0c\u7b49\u6548\u4e8e<code class=\"command\">EXEC SQL DEFINE</code>\u6307\u4ee4\u3002\u5982\u679c\u672a\u6307\u5b9a<em class=\"replaceable\"><code>value</code></em>\uff0c\u5219\u8be5\u7b26\u53f7\u4f1a\u88ab\u5b9a\u4e49\u4e3a\u503c<code class=\"literal\">1</code>\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-h</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u5904\u7406\u5934\u6587\u4ef6\u3002\u6307\u5b9a\u8be5\u9009\u9879\u65f6\uff0c\u8f93\u51fa\u6587\u4ef6\u6269\u5c55\u540d\u53d8\u4e3a<code class=\"literal\">.h</code>\u800c\u4e0d\u662f<code class=\"literal\">.c</code>\uff0c\u9ed8\u8ba4\u8f93\u5165\u6587\u4ef6\u6269\u5c55\u540d\u4e5f\u53d8\u4e3a<code class=\"literal\">.pgh</code>\u800c\u4e0d\u662f<code class=\"literal\">.pgc</code>\u3002\u6b64\u5916\uff0c\u8fd8\u4f1a\u5f3a\u5236\u542f\u7528<code class=\"option\">-c</code>\u9009\u9879\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-i</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u4e5f\u89e3\u6790\u7cfb\u7edf\u5305\u542b\u6587\u4ef6\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-I <em class=\"replaceable\"><code>directory</code></em></code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6307\u5b9a\u4e00\u4e2a\u9644\u52a0\u7684\u5305\u542b\u6587\u4ef6\u641c\u7d22\u8def\u5f84\uff0c\u7528\u4e8e\u67e5\u627e\u901a\u8fc7<code class=\"literal\">EXEC SQL INCLUDE</code>\u5305\u542b\u7684\u6587\u4ef6\u3002\u9ed8\u8ba4\u8def\u5f84\u4f9d\u6b21\u4e3a<code class=\"filename\">.</code>\uff08\u5f53\u524d\u76ee\u5f55\uff09\u3001<code class=\"filename\">/usr/local/include</code>\u3001\u7f16\u8bd1\u65f6\u5b9a\u4e49\u7684<span class=\"productname\">PostgreSQL</span>\u5305\u542b\u6587\u4ef6\u76ee\u5f55\uff08\u9ed8\u8ba4\uff1a<code class=\"filename\">/usr/local/pgsql/include</code>\uff09\uff0c\u4ee5\u53ca<code class=\"filename\">/usr/include</code>\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-o <em class=\"replaceable\"><code>filename</code></em></code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6307\u5b9a<code class=\"command\">ecpg</code>\u5e94\u5c06\u5168\u90e8\u8f93\u51fa\u5199\u5165\u7ed9\u5b9a\u7684<em class=\"replaceable\"><code>filename</code></em>\u3002\u5199\u6210<code class=\"literal\">-o -</code>\u53ef\u5c06\u5168\u90e8\u8f93\u51fa\u53d1\u9001\u5230\u6807\u51c6\u8f93\u51fa\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-r <em class=\"replaceable\"><code>option</code></em></code></span></dt>\n<dd>\n<p lang=\"zh\">\u9009\u62e9\u8fd0\u884c\u65f6\u884c\u4e3a\u3002\u9009\u9879\u53ef\u4ee5\u662f\u4e0b\u5217\u503c\u4e4b\u4e00\uff1a</p>\n<div class=\"variablelist\">\n<dl class=\"variablelist\">\n<dt><span class=\"term\"><code class=\"option\">no_indicator</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u4e0d\u4f7f\u7528\u6307\u793a\u7b26\uff0c\u800c\u6539\u7528\u7279\u6b8a\u503c\u8868\u793a\u7a7a\u503c\u3002\u5386\u53f2\u4e0a\u66fe\u6709\u6570\u636e\u5e93\u91c7\u7528\u8fd9\u79cd\u65b9\u5f0f\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">prepare</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u5728\u4f7f\u7528\u524d\u9884\u5907\u6240\u6709\u8bed\u53e5\u3002libecpg\u4f1a\u7ef4\u62a4\u4e00\u4e2a\u5df2\u9884\u5907\u8bed\u53e5\u7684\u7f13\u5b58\uff1b\u5982\u679c\u67d0\u6761\u8bed\u53e5\u518d\u6b21\u6267\u884c\uff0c\u5c31\u4f1a\u590d\u7528\u5b83\u3002\u82e5\u7f13\u5b58\u5df2\u6ee1\uff0clibecpg\u4f1a\u91ca\u653e\u4f7f\u7528\u6b21\u6570\u6700\u5c11\u7684\u8bed\u53e5\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">questionmarks</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u51fa\u4e8e\u517c\u5bb9\u6027\u539f\u56e0\uff0c\u5141\u8bb8\u4f7f\u7528\u95ee\u53f7\u4f5c\u4e3a\u5360\u4f4d\u7b26\u3002\u8fd9\u5728\u5f88\u4e45\u4ee5\u524d\u66fe\u662f\u9ed8\u8ba4\u884c\u4e3a\u3002</p>\n</p>\n</dd>\n</dl>\n</div>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-t</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6253\u5f00\u4e8b\u52a1\u81ea\u52a8\u63d0\u4ea4\u3002\u5728\u6b64\u6a21\u5f0f\u4e0b\uff0c\u9664\u975e SQL \u547d\u4ee4\u4f4d\u4e8e\u663e\u5f0f\u4e8b\u52a1\u5757\u4e2d\uff0c\u5426\u5219\u6bcf\u6761 SQL \u547d\u4ee4\u90fd\u4f1a\u81ea\u52a8\u63d0\u4ea4\u3002\u5728\u9ed8\u8ba4\u6a21\u5f0f\u4e0b\uff0c\u53ea\u6709\u53d1\u51fa<code class=\"command\">EXEC SQL COMMIT</code>\u65f6\u624d\u4f1a\u63d0\u4ea4\u547d\u4ee4\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-v</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6253\u5370\u9644\u52a0\u4fe1\u606f\uff0c\u5305\u62ec\u7248\u672c\u548c\u5305\u542b\u6587\u4ef6\u641c\u7d22\u8def\u5f84\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">--version</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6253\u5370<span class=\"application\">ecpg</span>\u7248\u672c\u5e76\u9000\u51fa\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-?</code><br/></span><span class=\"term\"><code class=\"option\">--help</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u663e\u793a\u5173\u4e8e<span class=\"application\">ecpg</span>\u547d\u4ee4\u884c\u53c2\u6570\u7684\u5e2e\u52a9\u4fe1\u606f\uff0c\u5e76\u9000\u51fa\u3002</p>\n</p>\n</dd>\n</dl>\n</div>\n</div>\n<div class=\"refsect1\" id=\"id-1.9.4.8.7\">\n<h2 lang=\"zh\">\u6ce8\u89e3</h2>\n<p lang=\"zh\">\u5728\u7f16\u8bd1\u9884\u5904\u7406\u540e\u7684 C \u4ee3\u7801\u6587\u4ef6\u65f6\uff0c\u7f16\u8bd1\u5668\u5fc5\u987b\u80fd\u591f\u5728<span class=\"productname\">PostgreSQL</span>\u7684\u5305\u542b\u6587\u4ef6\u76ee\u5f55\u4e2d\u627e\u5230<span class=\"application\">ECPG</span>\u5934\u6587\u4ef6\u3002\u56e0\u6b64\uff0c\u8c03\u7528\u7f16\u8bd1\u5668\u65f6\u4f60\u53ef\u80fd\u9700\u8981\u4f7f\u7528<code class=\"option\">-I</code>\u9009\u9879\uff08\u4f8b\u5982<code class=\"literal\">-I/usr/local/pgsql/include</code>\uff09\u3002</p>\n<p lang=\"zh\">\u4f7f\u7528\u5d4c\u5165\u5f0f SQL \u7684 C \u7a0b\u5e8f\u5fc5\u987b\u4e0e<code class=\"filename\">libecpg</code>\u5e93\u94fe\u63a5\uff0c\u4f8b\u5982\u53ef\u4f7f\u7528\u94fe\u63a5\u5668\u9009\u9879<code class=\"literal\">-L/usr/local/pgsql/lib -lecpg</code>\u3002</p>\n<p lang=\"zh\">\u5f53\u524d\u5b89\u88c5\u4f7f\u7528\u7684\u8fd9\u4e24\u4e2a\u76ee\u5f55\u53ef\u901a\u8fc7<a class=\"xref\" href=\"/docs/16/app-pgconfig.html\" title=\"pg_config\"><span class=\"refentrytitle\"><span class=\"application\">pg_config</span></span></a>\u67e5\u8be2\u3002</p>\n</div>\n<div class=\"refsect1\" id=\"id-1.9.4.8.8\">\n<h2 lang=\"zh\">\u793a\u4f8b</h2>\n<p lang=\"zh\">\u5982\u679c\u4f60\u6709\u4e00\u4e2a\u540d\u4e3a<code class=\"filename\">prog1.pgc</code>\u7684\u5d4c\u5165\u5f0f SQL C \u6e90\u6587\u4ef6\uff0c\u5c31\u53ef\u4ee5\u4f7f\u7528\u4e0b\u5217\u547d\u4ee4\u5e8f\u5217\u521b\u5efa\u4e00\u4e2a\u53ef\u6267\u884c\u7a0b\u5e8f\uff1a</p>\n<pre class=\"programlisting\">ecpg prog1.pgc\ncc -I/usr/local/pgsql/include -c prog1.c\ncc -o prog1 prog1.o -L/usr/local/pgsql/lib -lecpg\n</pre>\n</div>\n</div></div>", "manual_path": "app-ecpg.html", "localization": {"status": "complete", "sources": [{"url": "/docs/16/app-ecpg.html", "method": "same-major semantic node", "sha256": "a9f7cb4c68378600b90ccd7d88192ff1eb294f6dfcff5ac8472259441d3bb549", "language": "zh", "matched_nodes": ["#APP-ECPG/div[2]/p[1]", "#APP-ECPG/div[3]/h2[0]", "#APP-ECPG/div[4]/p[1]", "#APP-ECPG/div[4]/p[2]", "#APP-ECPG/div[4]/p[3]", "#APP-ECPG/div[4]/p[4]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[11]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[13]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[15]/div[1]/dl[0]/dd[1]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[15]/div[1]/dl[0]/dd[3]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[15]/div[1]/dl[0]/dd[5]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[17]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[19]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[1]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[21]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[23]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[3]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[5]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[7]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[9]", "#APP-ECPG/div[5]/p[1]", "#APP-ECPG/div[6]/h2[0]", "#APP-ECPG/div[6]/p[1]", "#APP-ECPG/div[6]/p[2]", "#APP-ECPG/div[6]/p[3]", "#APP-ECPG/div[7]/h2[0]", "#APP-ECPG/div[7]/p[1]"]}], "language": "zh", "original_text": {"/versions/16/description/0": "ecpg \u2014 embedded SQL C preprocessor", "/versions/16/facts/0/label": "Documented executable", "/versions/16/facts/1/label": "Executable version", "/versions/16/facts/2/label": "Reference inventory", "/versions/16/facts/2/value": "Client applications", "/versions/16/facts/3/label": "Option definition groups", "/versions/16/tables/0/title": "Documented options", "/versions/16/tables/0/rows/0/summary": "Automatically generate certain C code from SQL code. Currently, this works for EXEC SQL TYPE .", "/versions/16/tables/0/rows/1/summary": "Set a compatibility mode. mode can be INFORMIX , INFORMIX_SE , or ORACLE .", "/versions/16/tables/0/rows/2/summary": "Define a preprocessor symbol, equivalently to the EXEC SQL DEFINE directive. If no value is specified, the symbol is defined with the value 1 .", "/versions/16/tables/0/rows/3/summary": "Process header files. When this option is specified, the output file extension becomes .h not .c , and the default input file extension is .pgh not .pgc . Also, the -c option is forced on.", "/versions/16/tables/0/rows/4/summary": "Parse system include files as well.", "/versions/16/tables/0/rows/5/summary": "Specify an additional include path, used to find files included via EXEC SQL INCLUDE . Defaults are . (current directory), /usr/local/include , the PostgreSQL include directory which is defined at compile time (default: /usr/local/pgsql/include ), and /usr/include , in that order.", "/versions/16/tables/0/rows/6/summary": "Specifies that ecpg should write all its output to the given filename . Write -o - to send all output to standard output.", "/versions/16/tables/0/rows/7/summary": "Selects run-time behavior. Option can be one of the following:", "/versions/16/tables/0/rows/8/summary": "Turn on autocommit of transactions. In this mode, each SQL command is automatically committed unless it is inside an explicit transaction block. In the default mode, commands are committed only when EXEC SQL COMMIT is issued.", "/versions/16/tables/0/rows/9/summary": "Print additional information including the version and the \"include\" path.", "/versions/16/tables/0/columns/0/label": "Option and arguments", "/versions/16/tables/0/columns/1/label": "Description", "/versions/16/tables/0/rows/10/summary": "Print the ecpg version and exit.", "/versions/16/tables/0/rows/11/summary": "Show help about ecpg command line arguments, and exit."}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "1f891fa6041a7a813b566281471831584c43e9dbc8af9e8d5c5494f260bb8793"}, "comparison_data": {"options": [{"names": ["-c"], "signature": "-c", "description": "Automatically generate certain C code from SQL code. Currently, this works for EXEC SQL TYPE ."}, {"names": ["-C mode"], "signature": "-C mode", "description": "Set a compatibility mode. mode can be INFORMIX , INFORMIX_SE , or ORACLE ."}, {"names": ["-D symbol [= value ]"], "signature": "-D symbol [= value ]", "description": "Define a preprocessor symbol, equivalently to the EXEC SQL DEFINE directive. If no value is specified, the symbol is defined with the value 1 ."}, {"names": ["-h"], "signature": "-h", "description": "Process header files. When this option is specified, the output file extension becomes .h not .c , and the default input file extension is .pgh not .pgc . Also, the -c option is forced on."}, {"names": ["-i"], "signature": "-i", "description": "Parse system include files as well."}, {"names": ["-I directory"], "signature": "-I directory", "description": "Specify an additional include path, used to find files included via EXEC SQL INCLUDE . Defaults are . (current directory), /usr/local/include , the PostgreSQL include directory which is defined at compile time (default: /usr/local/pgsql/include ), and /usr/include , in that order."}, {"names": ["-o filename"], "signature": "-o filename", "description": "Specifies that ecpg should write all its output to the given filename . Write -o - to send all output to standard output."}, {"names": ["-r option"], "signature": "-r option", "description": "Selects run-time behavior. Option can be one of the following: no_indicator Do not use indicators but instead use special values to represent null values. Historically there have been databases using this approach. prepare Prepare all statements before using them. Libecpg will keep a cache of prepared statements and reuse a statement if it gets executed again. If the cache runs full, libecpg will free the least used statement. questionmarks Allow question mark as placeholder for compatibility reasons. This used to be the default long ago."}, {"names": ["-t"], "signature": "-t", "description": "Turn on autocommit of transactions. In this mode, each SQL command is automatically committed unless it is inside an explicit transaction block. In the default mode, commands are committed only when EXEC SQL COMMIT is issued."}, {"names": ["-v"], "signature": "-v", "description": "Print additional information including the version and the \"include\" path."}, {"names": ["--version"], "signature": "--version", "description": "Print the ecpg version and exit."}, {"names": ["-?", "--help"], "signature": "-? --help", "description": "Show help about ecpg command line arguments, and exit."}], "synopsis": ["ecpg [ option ...] file ..."], "environment": []}, "comparison_hash": "9b115ab9dbd18516028622d20fe8fe477e01f88cb80ad0615213dea618875d6d", "manual_language": "zh"}, "17": {"facts": [{"label": "\u624b\u518c\u4e2d\u7684\u53ef\u6267\u884c\u7a0b\u5e8f", "value": "ecpg"}, {"label": "\u7a0b\u5e8f\u7248\u672c", "value": "17.11"}, {"label": "\u53c2\u8003\u6e05\u5355", "value": "\u5ba2\u6237\u7aef\u7a0b\u5e8f"}, {"label": "\u9009\u9879\u5b9a\u4e49\u7ec4", "value": "12"}], "tables": [{"key": "options", "rows": [{"summary": "\u81ea\u52a8\u4ece SQL \u4ee3\u7801\u751f\u6210\u67d0\u4e9b C \u4ee3\u7801\u3002\u76ee\u524d\uff0c\u8fd9\u9002\u7528\u4e8e EXEC SQL TYPE \u3002", "signature": {"url": "/docs/17/app-ecpg.html", "text": "-c"}}, {"summary": "\u8bbe\u7f6e\u517c\u5bb9\u6a21\u5f0f\u3002 mode \u53ef\u4ee5\u662f INFORMIX \u3001 INFORMIX_SE \uff0c\u6216 ORACLE \u3002", "signature": {"url": "/docs/17/app-ecpg.html", "text": "-C mode"}}, {"summary": "\u5b9a\u4e49\u4e00\u4e2a\u9884\u5904\u7406\u5668\u7b26\u53f7\uff0c\u7b49\u6548\u4e8e EXEC SQL DEFINE \u6307\u4ee4\u3002\u5982\u679c\u672a\u6307\u5b9a value \uff0c\u5219\u8be5\u7b26\u53f7\u4f1a\u88ab\u5b9a\u4e49\u4e3a\u503c 1 \u3002", "signature": {"url": "/docs/17/app-ecpg.html", "text": "-D symbol [= value ]"}}, {"summary": "\u5904\u7406\u5934\u6587\u4ef6\u3002\u6307\u5b9a\u8be5\u9009\u9879\u65f6\uff0c\u8f93\u51fa\u6587\u4ef6\u6269\u5c55\u540d\u53d8\u4e3a .h \u800c\u4e0d\u662f .c \uff0c\u9ed8\u8ba4\u8f93\u5165\u6587\u4ef6\u6269\u5c55\u540d\u4e5f\u53d8\u4e3a .pgh \u800c\u4e0d\u662f .pgc \u3002\u6b64\u5916\uff0c\u8fd8\u4f1a\u5f3a\u5236\u542f\u7528 -c \u9009\u9879\u3002", "signature": {"url": "/docs/17/app-ecpg.html", "text": "-h"}}, {"summary": "\u4e5f\u89e3\u6790\u7cfb\u7edf\u5305\u542b\u6587\u4ef6\u3002", "signature": {"url": "/docs/17/app-ecpg.html", "text": "-i"}}, {"summary": "\u6307\u5b9a\u4e00\u4e2a\u9644\u52a0\u7684\u5305\u542b\u6587\u4ef6\u641c\u7d22\u8def\u5f84\uff0c\u7528\u4e8e\u67e5\u627e\u901a\u8fc7 EXEC SQL INCLUDE \u5305\u542b\u7684\u6587\u4ef6\u3002\u9ed8\u8ba4\u8def\u5f84\u4f9d\u6b21\u4e3a . \uff08\u5f53\u524d\u76ee\u5f55\uff09\u3001 /usr/local/include \u3001\u7f16\u8bd1\u65f6\u5b9a\u4e49\u7684 PostgreSQL \u5305\u542b\u6587\u4ef6\u76ee\u5f55\uff08\u9ed8\u8ba4\uff1a /usr/local/pgsql/include \uff09\uff0c\u4ee5\u53ca /usr/include \u3002", "signature": {"url": "/docs/17/app-ecpg.html", "text": "-I directory"}}, {"summary": "\u6307\u5b9a ecpg \u5e94\u5c06\u5168\u90e8\u8f93\u51fa\u5199\u5165\u7ed9\u5b9a\u7684 filename \u3002\u5199\u6210 -o - \u53ef\u5c06\u5168\u90e8\u8f93\u51fa\u53d1\u9001\u5230\u6807\u51c6\u8f93\u51fa\u3002", "signature": {"url": "/docs/17/app-ecpg.html", "text": "-o filename"}}, {"summary": "\u9009\u62e9\u8fd0\u884c\u65f6\u884c\u4e3a\u3002\u9009\u9879\u53ef\u4ee5\u662f\u4e0b\u5217\u503c\u4e4b\u4e00\uff1a", "signature": {"url": "/docs/17/app-ecpg.html", "text": "-r option"}}, {"summary": "\u6253\u5f00\u4e8b\u52a1\u81ea\u52a8\u63d0\u4ea4\u3002\u5728\u6b64\u6a21\u5f0f\u4e0b\uff0c\u9664\u975e SQL \u547d\u4ee4\u4f4d\u4e8e\u663e\u5f0f\u4e8b\u52a1\u5757\u4e2d\uff0c\u5426\u5219\u6bcf\u6761 SQL \u547d\u4ee4\u90fd\u4f1a\u81ea\u52a8\u63d0\u4ea4\u3002\u5728\u9ed8\u8ba4\u6a21\u5f0f\u4e0b\uff0c\u53ea\u6709\u53d1\u51fa EXEC SQL COMMIT \u65f6\u624d\u4f1a\u63d0\u4ea4\u547d\u4ee4\u3002", "signature": {"url": "/docs/17/app-ecpg.html", "text": "-t"}}, {"summary": "\u6253\u5370\u9644\u52a0\u4fe1\u606f\uff0c\u5305\u62ec\u7248\u672c\u548c\u5305\u542b\u6587\u4ef6\u641c\u7d22\u8def\u5f84\u3002", "signature": {"url": "/docs/17/app-ecpg.html", "text": "-v"}}, {"summary": "\u6253\u5370 ecpg \u7248\u672c\u5e76\u9000\u51fa\u3002", "signature": {"url": "/docs/17/app-ecpg.html", "text": "--version"}}, {"summary": "\u663e\u793a\u5173\u4e8e ecpg \u547d\u4ee4\u884c\u53c2\u6570\u7684\u5e2e\u52a9\u4fe1\u606f\uff0c\u5e76\u9000\u51fa\u3002", "signature": {"url": "/docs/17/app-ecpg.html", "text": "-? --help"}}], "title": "\u624b\u518c\u4e2d\u7684\u9009\u9879", "columns": [{"key": "signature", "label": "\u9009\u9879\u4e0e\u53c2\u6570"}, {"key": "summary", "label": "\u8bf4\u660e"}]}], "options": [{"names": ["-c"], "summary": "Automatically generate certain C code from SQL code. Currently, this works for EXEC SQL TYPE .", "signature": "-c", "source_url": "/docs/17/app-ecpg.html", "description": "Automatically generate certain C code from SQL code. Currently, this works for EXEC SQL TYPE ."}, {"names": ["-C mode"], "summary": "Set a compatibility mode. mode can be INFORMIX , INFORMIX_SE , or ORACLE .", "signature": "-C mode", "source_url": "/docs/17/app-ecpg.html", "description": "Set a compatibility mode. mode can be INFORMIX , INFORMIX_SE , or ORACLE ."}, {"names": ["-D symbol [= value ]"], "summary": "Define a preprocessor symbol, equivalently to the EXEC SQL DEFINE directive. If no value is specified, the symbol is defined with the value 1 .", "signature": "-D symbol [= value ]", "source_url": "/docs/17/app-ecpg.html", "description": "Define a preprocessor symbol, equivalently to the EXEC SQL DEFINE directive. If no value is specified, the symbol is defined with the value 1 ."}, {"names": ["-h"], "summary": "Process header files. When this option is specified, the output file extension becomes .h not .c , and the default input file extension is .pgh not .pgc . Also, the -c option is forced on.", "signature": "-h", "source_url": "/docs/17/app-ecpg.html", "description": "Process header files. When this option is specified, the output file extension becomes .h not .c , and the default input file extension is .pgh not .pgc . Also, the -c option is forced on."}, {"names": ["-i"], "summary": "Parse system include files as well.", "signature": "-i", "source_url": "/docs/17/app-ecpg.html", "description": "Parse system include files as well."}, {"names": ["-I directory"], "summary": "Specify an additional include path, used to find files included via EXEC SQL INCLUDE . Defaults are . (current directory), /usr/local/include , the PostgreSQL include directory which is defined at compile time (default: /usr/local/pgsql/include ), and /usr/include , in that order.", "signature": "-I directory", "source_url": "/docs/17/app-ecpg.html", "description": "Specify an additional include path, used to find files included via EXEC SQL INCLUDE . Defaults are . (current directory), /usr/local/include , the PostgreSQL include directory which is defined at compile time (default: /usr/local/pgsql/include ), and /usr/include , in that order."}, {"names": ["-o filename"], "summary": "Specifies that ecpg should write all its output to the given filename . Write -o - to send all output to standard output.", "signature": "-o filename", "source_url": "/docs/17/app-ecpg.html", "description": "Specifies that ecpg should write all its output to the given filename . Write -o - to send all output to standard output."}, {"names": ["-r option"], "summary": "Selects run-time behavior. Option can be one of the following:", "signature": "-r option", "source_url": "/docs/17/app-ecpg.html", "description": "Selects run-time behavior. Option can be one of the following: no_indicator Do not use indicators but instead use special values to represent null values. Historically there have been databases using this approach. prepare Prepare all statements before using them. Libecpg will keep a cache of prepared statements and reuse a statement if it gets executed again. If the cache runs full, libecpg will free the least used statement. questionmarks Allow question mark as placeholder for compatibility reasons. This used to be the default long ago."}, {"names": ["-t"], "summary": "Turn on autocommit of transactions. In this mode, each SQL command is automatically committed unless it is inside an explicit transaction block. In the default mode, commands are committed only when EXEC SQL COMMIT is issued.", "signature": "-t", "source_url": "/docs/17/app-ecpg.html", "description": "Turn on autocommit of transactions. In this mode, each SQL command is automatically committed unless it is inside an explicit transaction block. In the default mode, commands are committed only when EXEC SQL COMMIT is issued."}, {"names": ["-v"], "summary": "Print additional information including the version and the \"include\" path.", "signature": "-v", "source_url": "/docs/17/app-ecpg.html", "description": "Print additional information including the version and the \"include\" path."}, {"names": ["--version"], "summary": "Print the ecpg version and exit.", "signature": "--version", "source_url": "/docs/17/app-ecpg.html", "description": "Print the ecpg version and exit."}, {"names": ["-?", "--help"], "summary": "Show help about ecpg command line arguments, and exit.", "signature": "-? --help", "source_url": "/docs/17/app-ecpg.html", "description": "Show help about ecpg command line arguments, and exit."}], "related": [], "release": {"ref": "https://ftp.postgresql.org/pub/source/v17.11/postgresql-17.11.tar.bz2", "label": "17.11", "major": "17", "channel": "stable", "manifest": {"pdf": {"A4": {"url": "/files/documentation/pdf/17/postgresql-17-A4.pdf", "bytes": 15521293, "pages": 3099, "sha256": "1991354df0dc89e70ec39328c28988ef8b19c6a93671dab3893650b63e9f4e36", "built_at": "2026-09-26"}, "US": {"url": "/files/documentation/pdf/17/postgresql-17-US.pdf", "bytes": 15398150, "pages": 3270, "sha256": "07696c8f38abf31babf22d2db337093936e7c472d2af36d050b000c49bbcf52c", "built_at": "2026-09-26"}}, "tree": "17", "index": "index.html", "major": "17", "pages": 1143, "release": "17.11", "source_url": "https://ftp.postgresql.org/pub/source/v17.11/postgresql-17.11.tar.bz2", "svg_assets": 3, "source_mode": "en SGML built with pinned official archive", "source_sha256": "dd27f2b3c59e73ed14aa3324901242bf69a032a6347805f274e6260322d42979"}, "revision": "58419c9b0dd42cb34c8d53695bb025a7e582edf55ccd4c5bcb1c2c7c71a37487", "evidence_kind": "English manual and source declarations", "source_sha256": "dd27f2b3c59e73ed14aa3324901242bf69a032a6347805f274e6260322d42979"}, "sources": [{"url": "https://pg.center/docs/17/app-ecpg.html", "file": "app-ecpg.html", "label": "17.11 English manual \u00b7 app-ecpg.html", "anchor": "", "sha256": "6b203f82a7c2221aa35b80e5b27837797cb91443c406c9835596c639e272b426", "language": "en", "original_url": "/docs/17/app-ecpg.html"}, {"url": "https://pg.center/docs/17/reference-client.html", "file": "reference-client.html", "label": "Client applications inventory", "anchor": "", "sha256": "3194fc72ddad8e2fcba55f8e007f83413cb352146cb65aaa9457a18d0314ee1b", "language": "en", "original_url": "/docs/17/reference-client.html"}], "sections": [], "synopsis": ["ecpg [ option ...] file ..."], "signature": "ecpg [ option ...] file ...", "description": ["ecpg \u2014 \u5d4c\u5165\u5f0f SQL C \u9884\u5904\u7406\u5668"], "environment": [], "manual_html": "<div><div class=\"refentry\" id=\"APP-ECPG\">\n<div class=\"titlepage\"></div>\n<div class=\"refnamediv\">\n<h2><span class=\"refentrytitle\"><span class=\"application\">ecpg</span></span></h2>\n<p lang=\"zh\"><span class=\"application\">ecpg</span> \u2014 \u5d4c\u5165\u5f0f SQL C \u9884\u5904\u7406\u5668</p>\n</div>\n<div class=\"refsynopsisdiv\">\n<h2 lang=\"zh\">\u5927\u7eb2</h2>\n<div class=\"cmdsynopsis\">\n<p id=\"id-1.9.4.8.4.1\"><code class=\"command\">ecpg</code> [<em class=\"replaceable\"><code>option</code></em>...] <em class=\"replaceable\"><code>file</code></em>...</p>\n</div>\n</div>\n<div class=\"refsect1\" id=\"APP-ECPG-DESCRIPTION\">\n<h2 lang=\"zh\">\u8bf4\u660e</h2>\n<p lang=\"zh\"><code class=\"command\">ecpg</code>\u662f\u4f9b C \u7a0b\u5e8f\u4f7f\u7528\u7684\u5d4c\u5165\u5f0f SQL \u9884\u5904\u7406\u5668\u3002\u5b83\u4f1a\u628a\u5d4c\u5165\u4e86 SQL \u8bed\u53e5\u7684 C \u7a0b\u5e8f\u8f6c\u6362\u6210\u666e\u901a C \u4ee3\u7801\uff0c\u65b9\u6cd5\u662f\u5c06 SQL \u8c03\u7528\u66ff\u6362\u4e3a\u7279\u6b8a\u7684\u51fd\u6570\u8c03\u7528\u3002\u751f\u6210\u7684\u8f93\u51fa\u6587\u4ef6\u968f\u540e\u53ef\u4ee5\u7531\u4efb\u4f55 C \u7f16\u8bd1\u5668\u5de5\u5177\u94fe\u5904\u7406\u3002</p>\n<p lang=\"zh\"><code class=\"command\">ecpg</code>\u4f1a\u5c06\u547d\u4ee4\u884c\u4e2d\u7ed9\u51fa\u7684\u6bcf\u4e2a\u8f93\u5165\u6587\u4ef6\u8f6c\u6362\u6210\u5bf9\u5e94\u7684 C \u8f93\u51fa\u6587\u4ef6\u3002\u82e5\u8f93\u5165\u6587\u4ef6\u540d\u6ca1\u6709\u4efb\u4f55\u6269\u5c55\u540d\uff0c\u5219\u5047\u5b9a\u5176\u6269\u5c55\u540d\u4e3a<code class=\"filename\">.pgc</code>\u3002\u968f\u540e\u4f1a\u628a\u8be5\u6587\u4ef6\u7684\u6269\u5c55\u540d\u66ff\u6362\u4e3a <code class=\"filename\">.c</code>\uff0c\u4ee5\u6784\u9020\u8f93\u51fa\u6587\u4ef6\u540d\u3002\u4e0d\u8fc7\uff0c\u4e5f\u53ef\u4ee5\u7528<code class=\"option\">-o</code>\u9009\u9879\u8986\u76d6\u8f93\u51fa\u6587\u4ef6\u540d\u3002</p>\n<p lang=\"zh\">\u5982\u679c\u8f93\u5165\u6587\u4ef6\u540d\u53ea\u662f<code class=\"literal\">-</code>\uff0c<code class=\"command\">ecpg</code>\u5c31\u4f1a\u4ece\u6807\u51c6\u8f93\u5165\u8bfb\u53d6\u7a0b\u5e8f\uff08\u5e76\u5199\u5230\u6807\u51c6\u8f93\u51fa\uff0c\u9664\u975e\u4f7f\u7528<code class=\"option\">-o</code>\u8986\u76d6\u8be5\u884c\u4e3a\uff09\u3002</p>\n<p lang=\"zh\">\u672c\u53c2\u8003\u9875\u4e0d\u63cf\u8ff0\u5d4c\u5165\u5f0f SQL \u8bed\u8a00\u3002\u6709\u5173\u8be5\u4e3b\u9898\u7684\u66f4\u591a\u4fe1\u606f\uff0c\u89c1<a class=\"xref\" href=\"/docs/17/ecpg.html\" title=\"\u7b2c\u00a034\u00a0\u7ae0\u00a0ECPG \u2014 C \u4e2d\u7684\u5d4c\u5165\u5f0f SQL\">\u7b2c\u00a034\u00a0\u7ae0</a>\u3002</p>\n</div>\n<div class=\"refsect1\" id=\"id-1.9.4.8.6\">\n<h2 lang=\"zh\">\u9009\u9879</h2>\n<p lang=\"zh\"><code class=\"command\">ecpg</code>\u63a5\u53d7\u4ee5\u4e0b\u547d\u4ee4\u884c\u53c2\u6570\uff1a</p>\n<div class=\"variablelist\">\n<dl class=\"variablelist\">\n<dt><span class=\"term\"><code class=\"option\">-c</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u81ea\u52a8\u4ece SQL \u4ee3\u7801\u751f\u6210\u67d0\u4e9b C \u4ee3\u7801\u3002\u76ee\u524d\uff0c\u8fd9\u9002\u7528\u4e8e<code class=\"literal\">EXEC SQL TYPE</code>\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-C <em class=\"replaceable\"><code>mode</code></em></code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u8bbe\u7f6e\u517c\u5bb9\u6a21\u5f0f\u3002<em class=\"replaceable\"><code>mode</code></em>\u53ef\u4ee5\u662f<code class=\"literal\">INFORMIX</code>\u3001<code class=\"literal\">INFORMIX_SE</code>\uff0c\u6216<code class=\"literal\">ORACLE</code>\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-D <em class=\"replaceable\"><code>symbol</code></em>[=<em class=\"replaceable\"><code>value</code></em>]</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u5b9a\u4e49\u4e00\u4e2a\u9884\u5904\u7406\u5668\u7b26\u53f7\uff0c\u7b49\u6548\u4e8e<code class=\"command\">EXEC SQL DEFINE</code>\u6307\u4ee4\u3002\u5982\u679c\u672a\u6307\u5b9a<em class=\"replaceable\"><code>value</code></em>\uff0c\u5219\u8be5\u7b26\u53f7\u4f1a\u88ab\u5b9a\u4e49\u4e3a\u503c<code class=\"literal\">1</code>\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-h</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u5904\u7406\u5934\u6587\u4ef6\u3002\u6307\u5b9a\u8be5\u9009\u9879\u65f6\uff0c\u8f93\u51fa\u6587\u4ef6\u6269\u5c55\u540d\u53d8\u4e3a<code class=\"literal\">.h</code>\u800c\u4e0d\u662f<code class=\"literal\">.c</code>\uff0c\u9ed8\u8ba4\u8f93\u5165\u6587\u4ef6\u6269\u5c55\u540d\u4e5f\u53d8\u4e3a<code class=\"literal\">.pgh</code>\u800c\u4e0d\u662f<code class=\"literal\">.pgc</code>\u3002\u6b64\u5916\uff0c\u8fd8\u4f1a\u5f3a\u5236\u542f\u7528<code class=\"option\">-c</code>\u9009\u9879\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-i</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u4e5f\u89e3\u6790\u7cfb\u7edf\u5305\u542b\u6587\u4ef6\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-I <em class=\"replaceable\"><code>directory</code></em></code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6307\u5b9a\u4e00\u4e2a\u9644\u52a0\u7684\u5305\u542b\u6587\u4ef6\u641c\u7d22\u8def\u5f84\uff0c\u7528\u4e8e\u67e5\u627e\u901a\u8fc7<code class=\"literal\">EXEC SQL INCLUDE</code>\u5305\u542b\u7684\u6587\u4ef6\u3002\u9ed8\u8ba4\u8def\u5f84\u4f9d\u6b21\u4e3a<code class=\"filename\">.</code>\uff08\u5f53\u524d\u76ee\u5f55\uff09\u3001<code class=\"filename\">/usr/local/include</code>\u3001\u7f16\u8bd1\u65f6\u5b9a\u4e49\u7684<span class=\"productname\">PostgreSQL</span>\u5305\u542b\u6587\u4ef6\u76ee\u5f55\uff08\u9ed8\u8ba4\uff1a<code class=\"filename\">/usr/local/pgsql/include</code>\uff09\uff0c\u4ee5\u53ca<code class=\"filename\">/usr/include</code>\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-o <em class=\"replaceable\"><code>filename</code></em></code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6307\u5b9a<code class=\"command\">ecpg</code>\u5e94\u5c06\u5168\u90e8\u8f93\u51fa\u5199\u5165\u7ed9\u5b9a\u7684<em class=\"replaceable\"><code>filename</code></em>\u3002\u5199\u6210<code class=\"literal\">-o -</code>\u53ef\u5c06\u5168\u90e8\u8f93\u51fa\u53d1\u9001\u5230\u6807\u51c6\u8f93\u51fa\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-r <em class=\"replaceable\"><code>option</code></em></code></span></dt>\n<dd>\n<p lang=\"zh\">\u9009\u62e9\u8fd0\u884c\u65f6\u884c\u4e3a\u3002\u9009\u9879\u53ef\u4ee5\u662f\u4e0b\u5217\u503c\u4e4b\u4e00\uff1a</p>\n<div class=\"variablelist\">\n<dl class=\"variablelist\">\n<dt><span class=\"term\"><code class=\"option\">no_indicator</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u4e0d\u4f7f\u7528\u6307\u793a\u7b26\uff0c\u800c\u6539\u7528\u7279\u6b8a\u503c\u8868\u793a\u7a7a\u503c\u3002\u5386\u53f2\u4e0a\u66fe\u6709\u6570\u636e\u5e93\u91c7\u7528\u8fd9\u79cd\u65b9\u5f0f\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">prepare</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u5728\u4f7f\u7528\u524d\u9884\u5907\u6240\u6709\u8bed\u53e5\u3002libecpg\u4f1a\u7ef4\u62a4\u4e00\u4e2a\u5df2\u9884\u5907\u8bed\u53e5\u7684\u7f13\u5b58\uff1b\u5982\u679c\u67d0\u6761\u8bed\u53e5\u518d\u6b21\u6267\u884c\uff0c\u5c31\u4f1a\u590d\u7528\u5b83\u3002\u82e5\u7f13\u5b58\u5df2\u6ee1\uff0clibecpg\u4f1a\u91ca\u653e\u4f7f\u7528\u6b21\u6570\u6700\u5c11\u7684\u8bed\u53e5\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">questionmarks</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u51fa\u4e8e\u517c\u5bb9\u6027\u539f\u56e0\uff0c\u5141\u8bb8\u4f7f\u7528\u95ee\u53f7\u4f5c\u4e3a\u5360\u4f4d\u7b26\u3002\u8fd9\u5728\u5f88\u4e45\u4ee5\u524d\u66fe\u662f\u9ed8\u8ba4\u884c\u4e3a\u3002</p>\n</p>\n</dd>\n</dl>\n</div>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-t</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6253\u5f00\u4e8b\u52a1\u81ea\u52a8\u63d0\u4ea4\u3002\u5728\u6b64\u6a21\u5f0f\u4e0b\uff0c\u9664\u975e SQL \u547d\u4ee4\u4f4d\u4e8e\u663e\u5f0f\u4e8b\u52a1\u5757\u4e2d\uff0c\u5426\u5219\u6bcf\u6761 SQL \u547d\u4ee4\u90fd\u4f1a\u81ea\u52a8\u63d0\u4ea4\u3002\u5728\u9ed8\u8ba4\u6a21\u5f0f\u4e0b\uff0c\u53ea\u6709\u53d1\u51fa<code class=\"command\">EXEC SQL COMMIT</code>\u65f6\u624d\u4f1a\u63d0\u4ea4\u547d\u4ee4\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-v</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6253\u5370\u9644\u52a0\u4fe1\u606f\uff0c\u5305\u62ec\u7248\u672c\u548c\u5305\u542b\u6587\u4ef6\u641c\u7d22\u8def\u5f84\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">--version</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6253\u5370<span class=\"application\">ecpg</span>\u7248\u672c\u5e76\u9000\u51fa\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-?</code><br/></span><span class=\"term\"><code class=\"option\">--help</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u663e\u793a\u5173\u4e8e<span class=\"application\">ecpg</span>\u547d\u4ee4\u884c\u53c2\u6570\u7684\u5e2e\u52a9\u4fe1\u606f\uff0c\u5e76\u9000\u51fa\u3002</p>\n</p>\n</dd>\n</dl>\n</div>\n</div>\n<div class=\"refsect1\" id=\"id-1.9.4.8.7\">\n<h2 lang=\"zh\">\u6ce8\u89e3</h2>\n<p lang=\"zh\">\u5728\u7f16\u8bd1\u9884\u5904\u7406\u540e\u7684 C \u4ee3\u7801\u6587\u4ef6\u65f6\uff0c\u7f16\u8bd1\u5668\u5fc5\u987b\u80fd\u591f\u5728<span class=\"productname\">PostgreSQL</span>\u7684\u5305\u542b\u6587\u4ef6\u76ee\u5f55\u4e2d\u627e\u5230<span class=\"application\">ECPG</span>\u5934\u6587\u4ef6\u3002\u56e0\u6b64\uff0c\u8c03\u7528\u7f16\u8bd1\u5668\u65f6\u4f60\u53ef\u80fd\u9700\u8981\u4f7f\u7528<code class=\"option\">-I</code>\u9009\u9879\uff08\u4f8b\u5982<code class=\"literal\">-I/usr/local/pgsql/include</code>\uff09\u3002</p>\n<p lang=\"zh\">\u4f7f\u7528\u5d4c\u5165\u5f0f SQL \u7684 C \u7a0b\u5e8f\u5fc5\u987b\u4e0e<code class=\"filename\">libecpg</code>\u5e93\u94fe\u63a5\uff0c\u4f8b\u5982\u53ef\u4f7f\u7528\u94fe\u63a5\u5668\u9009\u9879<code class=\"literal\">-L/usr/local/pgsql/lib -lecpg</code>\u3002</p>\n<p lang=\"zh\">\u5f53\u524d\u5b89\u88c5\u4f7f\u7528\u7684\u8fd9\u4e24\u4e2a\u76ee\u5f55\u53ef\u901a\u8fc7<a class=\"xref\" href=\"/docs/17/app-pgconfig.html\" title=\"pg_config\"><span class=\"refentrytitle\"><span class=\"application\">pg_config</span></span></a>\u67e5\u8be2\u3002</p>\n</div>\n<div class=\"refsect1\" id=\"id-1.9.4.8.8\">\n<h2 lang=\"zh\">\u793a\u4f8b</h2>\n<p lang=\"zh\">\u5982\u679c\u4f60\u6709\u4e00\u4e2a\u540d\u4e3a<code class=\"filename\">prog1.pgc</code>\u7684\u5d4c\u5165\u5f0f SQL C \u6e90\u6587\u4ef6\uff0c\u5c31\u53ef\u4ee5\u4f7f\u7528\u4e0b\u5217\u547d\u4ee4\u5e8f\u5217\u521b\u5efa\u4e00\u4e2a\u53ef\u6267\u884c\u7a0b\u5e8f\uff1a</p>\n<pre class=\"programlisting\">ecpg prog1.pgc\ncc -I/usr/local/pgsql/include -c prog1.c\ncc -o prog1 prog1.o -L/usr/local/pgsql/lib -lecpg\n</pre>\n</div>\n</div></div>", "manual_path": "app-ecpg.html", "localization": {"status": "complete", "sources": [{"url": "/docs/17/app-ecpg.html", "method": "same-major semantic node", "sha256": "ebac06ef786d69a8075e630036def969c5011d778f8ad28a3dc8019e4ed8ae20", "language": "zh", "matched_nodes": ["#APP-ECPG/div[2]/p[1]", "#APP-ECPG/div[3]/h2[0]", "#APP-ECPG/div[4]/p[1]", "#APP-ECPG/div[4]/p[2]", "#APP-ECPG/div[4]/p[3]", "#APP-ECPG/div[4]/p[4]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[11]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[13]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[15]/div[1]/dl[0]/dd[1]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[15]/div[1]/dl[0]/dd[3]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[15]/div[1]/dl[0]/dd[5]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[17]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[19]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[1]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[21]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[23]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[3]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[5]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[7]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[9]", "#APP-ECPG/div[5]/p[1]", "#APP-ECPG/div[6]/h2[0]", "#APP-ECPG/div[6]/p[1]", "#APP-ECPG/div[6]/p[2]", "#APP-ECPG/div[6]/p[3]", "#APP-ECPG/div[7]/h2[0]", "#APP-ECPG/div[7]/p[1]"]}], "language": "zh", "original_text": {"/versions/17/description/0": "ecpg \u2014 embedded SQL C preprocessor", "/versions/17/facts/0/label": "Documented executable", "/versions/17/facts/1/label": "Executable version", "/versions/17/facts/2/label": "Reference inventory", "/versions/17/facts/2/value": "Client applications", "/versions/17/facts/3/label": "Option definition groups", "/versions/17/tables/0/title": "Documented options", "/versions/17/tables/0/rows/0/summary": "Automatically generate certain C code from SQL code. Currently, this works for EXEC SQL TYPE .", "/versions/17/tables/0/rows/1/summary": "Set a compatibility mode. mode can be INFORMIX , INFORMIX_SE , or ORACLE .", "/versions/17/tables/0/rows/2/summary": "Define a preprocessor symbol, equivalently to the EXEC SQL DEFINE directive. If no value is specified, the symbol is defined with the value 1 .", "/versions/17/tables/0/rows/3/summary": "Process header files. When this option is specified, the output file extension becomes .h not .c , and the default input file extension is .pgh not .pgc . Also, the -c option is forced on.", "/versions/17/tables/0/rows/4/summary": "Parse system include files as well.", "/versions/17/tables/0/rows/5/summary": "Specify an additional include path, used to find files included via EXEC SQL INCLUDE . Defaults are . (current directory), /usr/local/include , the PostgreSQL include directory which is defined at compile time (default: /usr/local/pgsql/include ), and /usr/include , in that order.", "/versions/17/tables/0/rows/6/summary": "Specifies that ecpg should write all its output to the given filename . Write -o - to send all output to standard output.", "/versions/17/tables/0/rows/7/summary": "Selects run-time behavior. Option can be one of the following:", "/versions/17/tables/0/rows/8/summary": "Turn on autocommit of transactions. In this mode, each SQL command is automatically committed unless it is inside an explicit transaction block. In the default mode, commands are committed only when EXEC SQL COMMIT is issued.", "/versions/17/tables/0/rows/9/summary": "Print additional information including the version and the \"include\" path.", "/versions/17/tables/0/columns/0/label": "Option and arguments", "/versions/17/tables/0/columns/1/label": "Description", "/versions/17/tables/0/rows/10/summary": "Print the ecpg version and exit.", "/versions/17/tables/0/rows/11/summary": "Show help about ecpg command line arguments, and exit."}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "a181980e70210823530e08180aee043b82a54c12afa14f283afeff21822fb2b6"}, "comparison_data": {"options": [{"names": ["-c"], "signature": "-c", "description": "Automatically generate certain C code from SQL code. Currently, this works for EXEC SQL TYPE ."}, {"names": ["-C mode"], "signature": "-C mode", "description": "Set a compatibility mode. mode can be INFORMIX , INFORMIX_SE , or ORACLE ."}, {"names": ["-D symbol [= value ]"], "signature": "-D symbol [= value ]", "description": "Define a preprocessor symbol, equivalently to the EXEC SQL DEFINE directive. If no value is specified, the symbol is defined with the value 1 ."}, {"names": ["-h"], "signature": "-h", "description": "Process header files. When this option is specified, the output file extension becomes .h not .c , and the default input file extension is .pgh not .pgc . Also, the -c option is forced on."}, {"names": ["-i"], "signature": "-i", "description": "Parse system include files as well."}, {"names": ["-I directory"], "signature": "-I directory", "description": "Specify an additional include path, used to find files included via EXEC SQL INCLUDE . Defaults are . (current directory), /usr/local/include , the PostgreSQL include directory which is defined at compile time (default: /usr/local/pgsql/include ), and /usr/include , in that order."}, {"names": ["-o filename"], "signature": "-o filename", "description": "Specifies that ecpg should write all its output to the given filename . Write -o - to send all output to standard output."}, {"names": ["-r option"], "signature": "-r option", "description": "Selects run-time behavior. Option can be one of the following: no_indicator Do not use indicators but instead use special values to represent null values. Historically there have been databases using this approach. prepare Prepare all statements before using them. Libecpg will keep a cache of prepared statements and reuse a statement if it gets executed again. If the cache runs full, libecpg will free the least used statement. questionmarks Allow question mark as placeholder for compatibility reasons. This used to be the default long ago."}, {"names": ["-t"], "signature": "-t", "description": "Turn on autocommit of transactions. In this mode, each SQL command is automatically committed unless it is inside an explicit transaction block. In the default mode, commands are committed only when EXEC SQL COMMIT is issued."}, {"names": ["-v"], "signature": "-v", "description": "Print additional information including the version and the \"include\" path."}, {"names": ["--version"], "signature": "--version", "description": "Print the ecpg version and exit."}, {"names": ["-?", "--help"], "signature": "-? --help", "description": "Show help about ecpg command line arguments, and exit."}], "synopsis": ["ecpg [ option ...] file ..."], "environment": []}, "comparison_hash": "9b115ab9dbd18516028622d20fe8fe477e01f88cb80ad0615213dea618875d6d", "manual_language": "zh"}, "18": {"facts": [{"label": "\u624b\u518c\u4e2d\u7684\u53ef\u6267\u884c\u7a0b\u5e8f", "value": "ecpg"}, {"label": "\u7a0b\u5e8f\u7248\u672c", "value": "18.6"}, {"label": "\u53c2\u8003\u6e05\u5355", "value": "\u5ba2\u6237\u7aef\u7a0b\u5e8f"}, {"label": "\u9009\u9879\u5b9a\u4e49\u7ec4", "value": "12"}], "tables": [{"key": "options", "rows": [{"summary": "\u81ea\u52a8\u4ece SQL \u4ee3\u7801\u751f\u6210\u67d0\u4e9b C \u4ee3\u7801\u3002\u76ee\u524d\uff0c\u8fd9\u9002\u7528\u4e8e EXEC SQL TYPE \u3002", "signature": {"url": "/docs/18/app-ecpg.html", "text": "-c"}}, {"summary": "\u8bbe\u7f6e\u517c\u5bb9\u6a21\u5f0f\u3002 mode \u53ef\u4ee5\u662f INFORMIX \u3001 INFORMIX_SE \uff0c\u6216 ORACLE \u3002", "signature": {"url": "/docs/18/app-ecpg.html", "text": "-C mode"}}, {"summary": "\u5b9a\u4e49\u4e00\u4e2a\u9884\u5904\u7406\u5668\u7b26\u53f7\uff0c\u7b49\u6548\u4e8e EXEC SQL DEFINE \u6307\u4ee4\u3002\u5982\u679c\u672a\u6307\u5b9a value \uff0c\u5219\u8be5\u7b26\u53f7\u4f1a\u88ab\u5b9a\u4e49\u4e3a\u503c 1 \u3002", "signature": {"url": "/docs/18/app-ecpg.html", "text": "-D symbol [= value ]"}}, {"summary": "\u5904\u7406\u5934\u6587\u4ef6\u3002\u6307\u5b9a\u8be5\u9009\u9879\u65f6\uff0c\u8f93\u51fa\u6587\u4ef6\u6269\u5c55\u540d\u53d8\u4e3a .h \u800c\u4e0d\u662f .c \uff0c\u9ed8\u8ba4\u8f93\u5165\u6587\u4ef6\u6269\u5c55\u540d\u4e5f\u53d8\u4e3a .pgh \u800c\u4e0d\u662f .pgc \u3002\u6b64\u5916\uff0c\u8fd8\u4f1a\u5f3a\u5236\u542f\u7528 -c \u9009\u9879\u3002", "signature": {"url": "/docs/18/app-ecpg.html", "text": "-h"}}, {"summary": "\u4e5f\u89e3\u6790\u7cfb\u7edf\u5305\u542b\u6587\u4ef6\u3002", "signature": {"url": "/docs/18/app-ecpg.html", "text": "-i"}}, {"summary": "\u6307\u5b9a\u4e00\u4e2a\u9644\u52a0\u7684\u5305\u542b\u6587\u4ef6\u641c\u7d22\u8def\u5f84\uff0c\u7528\u4e8e\u67e5\u627e\u901a\u8fc7 EXEC SQL INCLUDE \u5305\u542b\u7684\u6587\u4ef6\u3002\u9ed8\u8ba4\u8def\u5f84\u4f9d\u6b21\u4e3a . \uff08\u5f53\u524d\u76ee\u5f55\uff09\u3001 /usr/local/include \u3001\u7f16\u8bd1\u65f6\u5b9a\u4e49\u7684 PostgreSQL \u5305\u542b\u6587\u4ef6\u76ee\u5f55\uff08\u9ed8\u8ba4\uff1a /usr/local/pgsql/include \uff09\uff0c\u4ee5\u53ca /usr/include \u3002", "signature": {"url": "/docs/18/app-ecpg.html", "text": "-I directory"}}, {"summary": "\u6307\u5b9a ecpg \u5e94\u5c06\u5168\u90e8\u8f93\u51fa\u5199\u5165\u7ed9\u5b9a\u7684 filename \u3002\u5199\u6210 -o - \u53ef\u5c06\u5168\u90e8\u8f93\u51fa\u53d1\u9001\u5230\u6807\u51c6\u8f93\u51fa\u3002", "signature": {"url": "/docs/18/app-ecpg.html", "text": "-o filename"}}, {"summary": "\u9009\u62e9\u8fd0\u884c\u65f6\u884c\u4e3a\u3002\u9009\u9879\u53ef\u4ee5\u662f\u4e0b\u5217\u503c\u4e4b\u4e00\uff1a", "signature": {"url": "/docs/18/app-ecpg.html", "text": "-r option"}}, {"summary": "\u6253\u5f00\u4e8b\u52a1\u81ea\u52a8\u63d0\u4ea4\u3002\u5728\u6b64\u6a21\u5f0f\u4e0b\uff0c\u9664\u975e SQL \u547d\u4ee4\u4f4d\u4e8e\u663e\u5f0f\u4e8b\u52a1\u5757\u4e2d\uff0c\u5426\u5219\u6bcf\u6761 SQL \u547d\u4ee4\u90fd\u4f1a\u81ea\u52a8\u63d0\u4ea4\u3002\u5728\u9ed8\u8ba4\u6a21\u5f0f\u4e0b\uff0c\u53ea\u6709\u53d1\u51fa EXEC SQL COMMIT \u65f6\u624d\u4f1a\u63d0\u4ea4\u547d\u4ee4\u3002", "signature": {"url": "/docs/18/app-ecpg.html", "text": "-t"}}, {"summary": "\u6253\u5370\u9644\u52a0\u4fe1\u606f\uff0c\u5305\u62ec\u7248\u672c\u548c\u5305\u542b\u6587\u4ef6\u641c\u7d22\u8def\u5f84\u3002", "signature": {"url": "/docs/18/app-ecpg.html", "text": "-v"}}, {"summary": "\u6253\u5370 ecpg \u7248\u672c\u5e76\u9000\u51fa\u3002", "signature": {"url": "/docs/18/app-ecpg.html", "text": "--version"}}, {"summary": "\u663e\u793a\u5173\u4e8e ecpg \u547d\u4ee4\u884c\u53c2\u6570\u7684\u5e2e\u52a9\u4fe1\u606f\uff0c\u5e76\u9000\u51fa\u3002", "signature": {"url": "/docs/18/app-ecpg.html", "text": "-? --help"}}], "title": "\u624b\u518c\u4e2d\u7684\u9009\u9879", "columns": [{"key": "signature", "label": "\u9009\u9879\u4e0e\u53c2\u6570"}, {"key": "summary", "label": "\u8bf4\u660e"}]}], "options": [{"names": ["-c"], "summary": "Automatically generate certain C code from SQL code. Currently, this works for EXEC SQL TYPE .", "signature": "-c", "source_url": "/docs/18/app-ecpg.html", "description": "Automatically generate certain C code from SQL code. Currently, this works for EXEC SQL TYPE ."}, {"names": ["-C mode"], "summary": "Set a compatibility mode. mode can be INFORMIX , INFORMIX_SE , or ORACLE .", "signature": "-C mode", "source_url": "/docs/18/app-ecpg.html", "description": "Set a compatibility mode. mode can be INFORMIX , INFORMIX_SE , or ORACLE ."}, {"names": ["-D symbol [= value ]"], "summary": "Define a preprocessor symbol, equivalently to the EXEC SQL DEFINE directive. If no value is specified, the symbol is defined with the value 1 .", "signature": "-D symbol [= value ]", "source_url": "/docs/18/app-ecpg.html", "description": "Define a preprocessor symbol, equivalently to the EXEC SQL DEFINE directive. If no value is specified, the symbol is defined with the value 1 ."}, {"names": ["-h"], "summary": "Process header files. When this option is specified, the output file extension becomes .h not .c , and the default input file extension is .pgh not .pgc . Also, the -c option is forced on.", "signature": "-h", "source_url": "/docs/18/app-ecpg.html", "description": "Process header files. When this option is specified, the output file extension becomes .h not .c , and the default input file extension is .pgh not .pgc . Also, the -c option is forced on."}, {"names": ["-i"], "summary": "Parse system include files as well.", "signature": "-i", "source_url": "/docs/18/app-ecpg.html", "description": "Parse system include files as well."}, {"names": ["-I directory"], "summary": "Specify an additional include path, used to find files included via EXEC SQL INCLUDE . Defaults are . (current directory), /usr/local/include , the PostgreSQL include directory which is defined at compile time (default: /usr/local/pgsql/include ), and /usr/include , in that order.", "signature": "-I directory", "source_url": "/docs/18/app-ecpg.html", "description": "Specify an additional include path, used to find files included via EXEC SQL INCLUDE . Defaults are . (current directory), /usr/local/include , the PostgreSQL include directory which is defined at compile time (default: /usr/local/pgsql/include ), and /usr/include , in that order."}, {"names": ["-o filename"], "summary": "Specifies that ecpg should write all its output to the given filename . Write -o - to send all output to standard output.", "signature": "-o filename", "source_url": "/docs/18/app-ecpg.html", "description": "Specifies that ecpg should write all its output to the given filename . Write -o - to send all output to standard output."}, {"names": ["-r option"], "summary": "Selects run-time behavior. Option can be one of the following:", "signature": "-r option", "source_url": "/docs/18/app-ecpg.html", "description": "Selects run-time behavior. Option can be one of the following: no_indicator Do not use indicators but instead use special values to represent null values. Historically there have been databases using this approach. prepare Prepare all statements before using them. Libecpg will keep a cache of prepared statements and reuse a statement if it gets executed again. If the cache runs full, libecpg will free the least used statement. questionmarks Allow question mark as placeholder for compatibility reasons. This used to be the default long ago."}, {"names": ["-t"], "summary": "Turn on autocommit of transactions. In this mode, each SQL command is automatically committed unless it is inside an explicit transaction block. In the default mode, commands are committed only when EXEC SQL COMMIT is issued.", "signature": "-t", "source_url": "/docs/18/app-ecpg.html", "description": "Turn on autocommit of transactions. In this mode, each SQL command is automatically committed unless it is inside an explicit transaction block. In the default mode, commands are committed only when EXEC SQL COMMIT is issued."}, {"names": ["-v"], "summary": "Print additional information including the version and the \"include\" path.", "signature": "-v", "source_url": "/docs/18/app-ecpg.html", "description": "Print additional information including the version and the \"include\" path."}, {"names": ["--version"], "summary": "Print the ecpg version and exit.", "signature": "--version", "source_url": "/docs/18/app-ecpg.html", "description": "Print the ecpg version and exit."}, {"names": ["-?", "--help"], "summary": "Show help about ecpg command line arguments, and exit.", "signature": "-? --help", "source_url": "/docs/18/app-ecpg.html", "description": "Show help about ecpg command line arguments, and exit."}], "related": [], "release": {"ref": "https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2", "label": "18.6", "major": "18", "channel": "stable", "manifest": {"pdf": {"A4": {"url": "/files/documentation/pdf/18/postgresql-18-A4.pdf", "bytes": 15865106, "pages": 3154, "sha256": "19512c405da53f9f7fcf0abba359223aa65f021be025bf3411381918f92e3190", "built_at": "2026-09-26"}, "US": {"url": "/files/documentation/pdf/18/postgresql-18-US.pdf", "bytes": 15748059, "pages": 3328, "sha256": "facbe6c229e598b872d3d98bef53308f46e06746006fa4590de9a7de9dd46319", "built_at": "2026-09-26"}}, "tree": "18", "index": "index.html", "major": "18", "pages": 1148, "release": "18.6", "source_url": "https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2", "svg_assets": 3, "source_mode": "en SGML built with pinned official archive", "source_sha256": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"}, "revision": "ee8d1a3612338fd9adf250730cb640fcc5233b5491337cc00a316a44e3a0b9f8", "evidence_kind": "English manual and source declarations", "source_sha256": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"}, "sources": [{"url": "https://pg.center/docs/18/app-ecpg.html", "file": "app-ecpg.html", "label": "18.6 English manual \u00b7 app-ecpg.html", "anchor": "", "sha256": "46e369f91d3516a728d286bbeab8bf7500f9e5016436847622154cb3777b5173", "language": "en", "original_url": "/docs/18/app-ecpg.html"}, {"url": "https://pg.center/docs/18/reference-client.html", "file": "reference-client.html", "label": "Client applications inventory", "anchor": "", "sha256": "68f726af77272fe73a827be2b7b5958d0f2239a6f8ed44264e9d42496bfa4fd0", "language": "en", "original_url": "/docs/18/reference-client.html"}], "sections": [], "synopsis": ["ecpg [ option ...] file ..."], "signature": "ecpg [ option ...] file ...", "description": ["ecpg \u2014 \u5d4c\u5165\u5f0f SQL C \u9884\u5904\u7406\u5668"], "environment": [], "manual_html": "<div><div class=\"refentry\" id=\"APP-ECPG\">\n<div class=\"titlepage\"></div>\n<div class=\"refnamediv\">\n<h2><span class=\"refentrytitle\"><span class=\"application\">ecpg</span></span></h2>\n<p lang=\"zh\"><span class=\"application\">ecpg</span> \u2014 \u5d4c\u5165\u5f0f SQL C \u9884\u5904\u7406\u5668</p>\n</div>\n<div class=\"refsynopsisdiv\">\n<h2 lang=\"zh\">\u5927\u7eb2</h2>\n<div class=\"cmdsynopsis\">\n<p id=\"id-1.9.4.8.4.1\"><code class=\"command\">ecpg</code> [<em class=\"replaceable\"><code>option</code></em>...] <em class=\"replaceable\"><code>file</code></em>...</p>\n</div>\n</div>\n<div class=\"refsect1\" id=\"APP-ECPG-DESCRIPTION\">\n<h2 lang=\"zh\">\u8bf4\u660e</h2>\n<p lang=\"zh\"><code class=\"command\">ecpg</code>\u662f\u4f9b C \u7a0b\u5e8f\u4f7f\u7528\u7684\u5d4c\u5165\u5f0f SQL \u9884\u5904\u7406\u5668\u3002\u5b83\u4f1a\u628a\u5d4c\u5165\u4e86 SQL \u8bed\u53e5\u7684 C \u7a0b\u5e8f\u8f6c\u6362\u6210\u666e\u901a C \u4ee3\u7801\uff0c\u65b9\u6cd5\u662f\u5c06 SQL \u8c03\u7528\u66ff\u6362\u4e3a\u7279\u6b8a\u7684\u51fd\u6570\u8c03\u7528\u3002\u751f\u6210\u7684\u8f93\u51fa\u6587\u4ef6\u968f\u540e\u53ef\u4ee5\u7531\u4efb\u4f55 C \u7f16\u8bd1\u5668\u5de5\u5177\u94fe\u5904\u7406\u3002</p>\n<p lang=\"zh\"><code class=\"command\">ecpg</code>\u4f1a\u5c06\u547d\u4ee4\u884c\u4e2d\u7ed9\u51fa\u7684\u6bcf\u4e2a\u8f93\u5165\u6587\u4ef6\u8f6c\u6362\u6210\u5bf9\u5e94\u7684 C \u8f93\u51fa\u6587\u4ef6\u3002\u82e5\u8f93\u5165\u6587\u4ef6\u540d\u6ca1\u6709\u4efb\u4f55\u6269\u5c55\u540d\uff0c\u5219\u5047\u5b9a\u5176\u6269\u5c55\u540d\u4e3a<code class=\"filename\">.pgc</code>\u3002\u968f\u540e\u4f1a\u628a\u8be5\u6587\u4ef6\u7684\u6269\u5c55\u540d\u66ff\u6362\u4e3a <code class=\"filename\">.c</code>\uff0c\u4ee5\u6784\u9020\u8f93\u51fa\u6587\u4ef6\u540d\u3002\u4e0d\u8fc7\uff0c\u4e5f\u53ef\u4ee5\u7528<code class=\"option\">-o</code>\u9009\u9879\u8986\u76d6\u8f93\u51fa\u6587\u4ef6\u540d\u3002</p>\n<p lang=\"zh\">\u5982\u679c\u8f93\u5165\u6587\u4ef6\u540d\u53ea\u662f<code class=\"literal\">-</code>\uff0c<code class=\"command\">ecpg</code>\u5c31\u4f1a\u4ece\u6807\u51c6\u8f93\u5165\u8bfb\u53d6\u7a0b\u5e8f\uff08\u5e76\u5199\u5230\u6807\u51c6\u8f93\u51fa\uff0c\u9664\u975e\u4f7f\u7528<code class=\"option\">-o</code>\u8986\u76d6\u8be5\u884c\u4e3a\uff09\u3002</p>\n<p lang=\"zh\">\u672c\u53c2\u8003\u9875\u4e0d\u63cf\u8ff0\u5d4c\u5165\u5f0f SQL \u8bed\u8a00\u3002\u6709\u5173\u8be5\u4e3b\u9898\u7684\u66f4\u591a\u4fe1\u606f\uff0c\u89c1<a class=\"xref\" href=\"/docs/18/ecpg.html\" title=\"\u7b2c\u00a034\u00a0\u7ae0\u00a0ECPG \u2014 C \u4e2d\u7684\u5d4c\u5165\u5f0f SQL\">\u7b2c\u00a034\u00a0\u7ae0</a>\u3002</p>\n</div>\n<div class=\"refsect1\" id=\"id-1.9.4.8.6\">\n<h2 lang=\"zh\">\u9009\u9879</h2>\n<p lang=\"zh\"><code class=\"command\">ecpg</code>\u63a5\u53d7\u4ee5\u4e0b\u547d\u4ee4\u884c\u53c2\u6570\uff1a</p>\n<div class=\"variablelist\">\n<dl class=\"variablelist\">\n<dt><span class=\"term\"><code class=\"option\">-c</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u81ea\u52a8\u4ece SQL \u4ee3\u7801\u751f\u6210\u67d0\u4e9b C \u4ee3\u7801\u3002\u76ee\u524d\uff0c\u8fd9\u9002\u7528\u4e8e<code class=\"literal\">EXEC SQL TYPE</code>\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-C <em class=\"replaceable\"><code>mode</code></em></code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u8bbe\u7f6e\u517c\u5bb9\u6a21\u5f0f\u3002<em class=\"replaceable\"><code>mode</code></em>\u53ef\u4ee5\u662f<code class=\"literal\">INFORMIX</code>\u3001<code class=\"literal\">INFORMIX_SE</code>\uff0c\u6216<code class=\"literal\">ORACLE</code>\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-D <em class=\"replaceable\"><code>symbol</code></em>[=<em class=\"replaceable\"><code>value</code></em>]</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u5b9a\u4e49\u4e00\u4e2a\u9884\u5904\u7406\u5668\u7b26\u53f7\uff0c\u7b49\u6548\u4e8e<code class=\"command\">EXEC SQL DEFINE</code>\u6307\u4ee4\u3002\u5982\u679c\u672a\u6307\u5b9a<em class=\"replaceable\"><code>value</code></em>\uff0c\u5219\u8be5\u7b26\u53f7\u4f1a\u88ab\u5b9a\u4e49\u4e3a\u503c<code class=\"literal\">1</code>\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-h</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u5904\u7406\u5934\u6587\u4ef6\u3002\u6307\u5b9a\u8be5\u9009\u9879\u65f6\uff0c\u8f93\u51fa\u6587\u4ef6\u6269\u5c55\u540d\u53d8\u4e3a<code class=\"literal\">.h</code>\u800c\u4e0d\u662f<code class=\"literal\">.c</code>\uff0c\u9ed8\u8ba4\u8f93\u5165\u6587\u4ef6\u6269\u5c55\u540d\u4e5f\u53d8\u4e3a<code class=\"literal\">.pgh</code>\u800c\u4e0d\u662f<code class=\"literal\">.pgc</code>\u3002\u6b64\u5916\uff0c\u8fd8\u4f1a\u5f3a\u5236\u542f\u7528<code class=\"option\">-c</code>\u9009\u9879\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-i</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u4e5f\u89e3\u6790\u7cfb\u7edf\u5305\u542b\u6587\u4ef6\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-I <em class=\"replaceable\"><code>directory</code></em></code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6307\u5b9a\u4e00\u4e2a\u9644\u52a0\u7684\u5305\u542b\u6587\u4ef6\u641c\u7d22\u8def\u5f84\uff0c\u7528\u4e8e\u67e5\u627e\u901a\u8fc7<code class=\"literal\">EXEC SQL INCLUDE</code>\u5305\u542b\u7684\u6587\u4ef6\u3002\u9ed8\u8ba4\u8def\u5f84\u4f9d\u6b21\u4e3a<code class=\"filename\">.</code>\uff08\u5f53\u524d\u76ee\u5f55\uff09\u3001<code class=\"filename\">/usr/local/include</code>\u3001\u7f16\u8bd1\u65f6\u5b9a\u4e49\u7684<span class=\"productname\">PostgreSQL</span>\u5305\u542b\u6587\u4ef6\u76ee\u5f55\uff08\u9ed8\u8ba4\uff1a<code class=\"filename\">/usr/local/pgsql/include</code>\uff09\uff0c\u4ee5\u53ca<code class=\"filename\">/usr/include</code>\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-o <em class=\"replaceable\"><code>filename</code></em></code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6307\u5b9a<code class=\"command\">ecpg</code>\u5e94\u5c06\u5168\u90e8\u8f93\u51fa\u5199\u5165\u7ed9\u5b9a\u7684<em class=\"replaceable\"><code>filename</code></em>\u3002\u5199\u6210<code class=\"literal\">-o -</code>\u53ef\u5c06\u5168\u90e8\u8f93\u51fa\u53d1\u9001\u5230\u6807\u51c6\u8f93\u51fa\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-r <em class=\"replaceable\"><code>option</code></em></code></span></dt>\n<dd>\n<p lang=\"zh\">\u9009\u62e9\u8fd0\u884c\u65f6\u884c\u4e3a\u3002\u9009\u9879\u53ef\u4ee5\u662f\u4e0b\u5217\u503c\u4e4b\u4e00\uff1a</p>\n<div class=\"variablelist\">\n<dl class=\"variablelist\">\n<dt><span class=\"term\"><code class=\"option\">no_indicator</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u4e0d\u4f7f\u7528\u6307\u793a\u7b26\uff0c\u800c\u6539\u7528\u7279\u6b8a\u503c\u8868\u793a\u7a7a\u503c\u3002\u5386\u53f2\u4e0a\u66fe\u6709\u6570\u636e\u5e93\u91c7\u7528\u8fd9\u79cd\u65b9\u5f0f\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">prepare</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u5728\u4f7f\u7528\u524d\u9884\u5907\u6240\u6709\u8bed\u53e5\u3002libecpg\u4f1a\u7ef4\u62a4\u4e00\u4e2a\u5df2\u9884\u5907\u8bed\u53e5\u7684\u7f13\u5b58\uff1b\u5982\u679c\u67d0\u6761\u8bed\u53e5\u518d\u6b21\u6267\u884c\uff0c\u5c31\u4f1a\u590d\u7528\u5b83\u3002\u82e5\u7f13\u5b58\u5df2\u6ee1\uff0clibecpg\u4f1a\u91ca\u653e\u4f7f\u7528\u6b21\u6570\u6700\u5c11\u7684\u8bed\u53e5\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">questionmarks</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u51fa\u4e8e\u517c\u5bb9\u6027\u539f\u56e0\uff0c\u5141\u8bb8\u4f7f\u7528\u95ee\u53f7\u4f5c\u4e3a\u5360\u4f4d\u7b26\u3002\u8fd9\u5728\u5f88\u4e45\u4ee5\u524d\u66fe\u662f\u9ed8\u8ba4\u884c\u4e3a\u3002</p>\n</p>\n</dd>\n</dl>\n</div>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-t</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6253\u5f00\u4e8b\u52a1\u81ea\u52a8\u63d0\u4ea4\u3002\u5728\u6b64\u6a21\u5f0f\u4e0b\uff0c\u9664\u975e SQL \u547d\u4ee4\u4f4d\u4e8e\u663e\u5f0f\u4e8b\u52a1\u5757\u4e2d\uff0c\u5426\u5219\u6bcf\u6761 SQL \u547d\u4ee4\u90fd\u4f1a\u81ea\u52a8\u63d0\u4ea4\u3002\u5728\u9ed8\u8ba4\u6a21\u5f0f\u4e0b\uff0c\u53ea\u6709\u53d1\u51fa<code class=\"command\">EXEC SQL COMMIT</code>\u65f6\u624d\u4f1a\u63d0\u4ea4\u547d\u4ee4\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-v</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6253\u5370\u9644\u52a0\u4fe1\u606f\uff0c\u5305\u62ec\u7248\u672c\u548c\u5305\u542b\u6587\u4ef6\u641c\u7d22\u8def\u5f84\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">--version</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6253\u5370<span class=\"application\">ecpg</span>\u7248\u672c\u5e76\u9000\u51fa\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-?</code><br/></span><span class=\"term\"><code class=\"option\">--help</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u663e\u793a\u5173\u4e8e<span class=\"application\">ecpg</span>\u547d\u4ee4\u884c\u53c2\u6570\u7684\u5e2e\u52a9\u4fe1\u606f\uff0c\u5e76\u9000\u51fa\u3002</p>\n</p>\n</dd>\n</dl>\n</div>\n</div>\n<div class=\"refsect1\" id=\"id-1.9.4.8.7\">\n<h2 lang=\"zh\">\u6ce8\u89e3</h2>\n<p lang=\"zh\">\u5728\u7f16\u8bd1\u9884\u5904\u7406\u540e\u7684 C \u4ee3\u7801\u6587\u4ef6\u65f6\uff0c\u7f16\u8bd1\u5668\u5fc5\u987b\u80fd\u591f\u5728<span class=\"productname\">PostgreSQL</span>\u7684\u5305\u542b\u6587\u4ef6\u76ee\u5f55\u4e2d\u627e\u5230<span class=\"application\">ECPG</span>\u5934\u6587\u4ef6\u3002\u56e0\u6b64\uff0c\u8c03\u7528\u7f16\u8bd1\u5668\u65f6\u4f60\u53ef\u80fd\u9700\u8981\u4f7f\u7528<code class=\"option\">-I</code>\u9009\u9879\uff08\u4f8b\u5982<code class=\"literal\">-I/usr/local/pgsql/include</code>\uff09\u3002</p>\n<p lang=\"zh\">\u4f7f\u7528\u5d4c\u5165\u5f0f SQL \u7684 C \u7a0b\u5e8f\u5fc5\u987b\u4e0e<code class=\"filename\">libecpg</code>\u5e93\u94fe\u63a5\uff0c\u4f8b\u5982\u53ef\u4f7f\u7528\u94fe\u63a5\u5668\u9009\u9879<code class=\"literal\">-L/usr/local/pgsql/lib -lecpg</code>\u3002</p>\n<p lang=\"zh\">\u5f53\u524d\u5b89\u88c5\u4f7f\u7528\u7684\u8fd9\u4e24\u4e2a\u76ee\u5f55\u53ef\u901a\u8fc7<a class=\"xref\" href=\"/docs/18/app-pgconfig.html\" title=\"pg_config\"><span class=\"refentrytitle\"><span class=\"application\">pg_config</span></span></a>\u67e5\u8be2\u3002</p>\n</div>\n<div class=\"refsect1\" id=\"id-1.9.4.8.8\">\n<h2 lang=\"zh\">\u793a\u4f8b</h2>\n<p lang=\"zh\">\u5982\u679c\u4f60\u6709\u4e00\u4e2a\u540d\u4e3a<code class=\"filename\">prog1.pgc</code>\u7684\u5d4c\u5165\u5f0f SQL C \u6e90\u6587\u4ef6\uff0c\u5c31\u53ef\u4ee5\u4f7f\u7528\u4e0b\u5217\u547d\u4ee4\u5e8f\u5217\u521b\u5efa\u4e00\u4e2a\u53ef\u6267\u884c\u7a0b\u5e8f\uff1a</p>\n<pre class=\"programlisting\">ecpg prog1.pgc\ncc -I/usr/local/pgsql/include -c prog1.c\ncc -o prog1 prog1.o -L/usr/local/pgsql/lib -lecpg\n</pre>\n</div>\n</div></div>", "manual_path": "app-ecpg.html", "localization": {"status": "complete", "sources": [{"url": "/docs/18/app-ecpg.html", "method": "same-major semantic node", "sha256": "4a860cfce47e879f368248d96b9884e873055ee6bc252d15424bfb9ad6f9638b", "language": "zh", "matched_nodes": ["#APP-ECPG/div[2]/p[1]", "#APP-ECPG/div[3]/h2[0]", "#APP-ECPG/div[4]/p[1]", "#APP-ECPG/div[4]/p[2]", "#APP-ECPG/div[4]/p[3]", "#APP-ECPG/div[4]/p[4]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[11]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[13]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[15]/div[1]/dl[0]/dd[1]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[15]/div[1]/dl[0]/dd[3]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[15]/div[1]/dl[0]/dd[5]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[17]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[19]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[1]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[21]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[23]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[3]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[5]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[7]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[9]", "#APP-ECPG/div[5]/p[1]", "#APP-ECPG/div[6]/h2[0]", "#APP-ECPG/div[6]/p[1]", "#APP-ECPG/div[6]/p[2]", "#APP-ECPG/div[6]/p[3]", "#APP-ECPG/div[7]/h2[0]", "#APP-ECPG/div[7]/p[1]"]}], "language": "zh", "original_text": {"/versions/18/description/0": "ecpg \u2014 embedded SQL C preprocessor", "/versions/18/facts/0/label": "Documented executable", "/versions/18/facts/1/label": "Executable version", "/versions/18/facts/2/label": "Reference inventory", "/versions/18/facts/2/value": "Client applications", "/versions/18/facts/3/label": "Option definition groups", "/versions/18/tables/0/title": "Documented options", "/versions/18/tables/0/rows/0/summary": "Automatically generate certain C code from SQL code. Currently, this works for EXEC SQL TYPE .", "/versions/18/tables/0/rows/1/summary": "Set a compatibility mode. mode can be INFORMIX , INFORMIX_SE , or ORACLE .", "/versions/18/tables/0/rows/2/summary": "Define a preprocessor symbol, equivalently to the EXEC SQL DEFINE directive. If no value is specified, the symbol is defined with the value 1 .", "/versions/18/tables/0/rows/3/summary": "Process header files. When this option is specified, the output file extension becomes .h not .c , and the default input file extension is .pgh not .pgc . Also, the -c option is forced on.", "/versions/18/tables/0/rows/4/summary": "Parse system include files as well.", "/versions/18/tables/0/rows/5/summary": "Specify an additional include path, used to find files included via EXEC SQL INCLUDE . Defaults are . (current directory), /usr/local/include , the PostgreSQL include directory which is defined at compile time (default: /usr/local/pgsql/include ), and /usr/include , in that order.", "/versions/18/tables/0/rows/6/summary": "Specifies that ecpg should write all its output to the given filename . Write -o - to send all output to standard output.", "/versions/18/tables/0/rows/7/summary": "Selects run-time behavior. Option can be one of the following:", "/versions/18/tables/0/rows/8/summary": "Turn on autocommit of transactions. In this mode, each SQL command is automatically committed unless it is inside an explicit transaction block. In the default mode, commands are committed only when EXEC SQL COMMIT is issued.", "/versions/18/tables/0/rows/9/summary": "Print additional information including the version and the \"include\" path.", "/versions/18/tables/0/columns/0/label": "Option and arguments", "/versions/18/tables/0/columns/1/label": "Description", "/versions/18/tables/0/rows/10/summary": "Print the ecpg version and exit.", "/versions/18/tables/0/rows/11/summary": "Show help about ecpg command line arguments, and exit."}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "6dacf9415a4b8de6f6ad52b5cdfe4465386111f3555029eb4d2826913323f01d"}, "comparison_data": {"options": [{"names": ["-c"], "signature": "-c", "description": "Automatically generate certain C code from SQL code. Currently, this works for EXEC SQL TYPE ."}, {"names": ["-C mode"], "signature": "-C mode", "description": "Set a compatibility mode. mode can be INFORMIX , INFORMIX_SE , or ORACLE ."}, {"names": ["-D symbol [= value ]"], "signature": "-D symbol [= value ]", "description": "Define a preprocessor symbol, equivalently to the EXEC SQL DEFINE directive. If no value is specified, the symbol is defined with the value 1 ."}, {"names": ["-h"], "signature": "-h", "description": "Process header files. When this option is specified, the output file extension becomes .h not .c , and the default input file extension is .pgh not .pgc . Also, the -c option is forced on."}, {"names": ["-i"], "signature": "-i", "description": "Parse system include files as well."}, {"names": ["-I directory"], "signature": "-I directory", "description": "Specify an additional include path, used to find files included via EXEC SQL INCLUDE . Defaults are . (current directory), /usr/local/include , the PostgreSQL include directory which is defined at compile time (default: /usr/local/pgsql/include ), and /usr/include , in that order."}, {"names": ["-o filename"], "signature": "-o filename", "description": "Specifies that ecpg should write all its output to the given filename . Write -o - to send all output to standard output."}, {"names": ["-r option"], "signature": "-r option", "description": "Selects run-time behavior. Option can be one of the following: no_indicator Do not use indicators but instead use special values to represent null values. Historically there have been databases using this approach. prepare Prepare all statements before using them. Libecpg will keep a cache of prepared statements and reuse a statement if it gets executed again. If the cache runs full, libecpg will free the least used statement. questionmarks Allow question mark as placeholder for compatibility reasons. This used to be the default long ago."}, {"names": ["-t"], "signature": "-t", "description": "Turn on autocommit of transactions. In this mode, each SQL command is automatically committed unless it is inside an explicit transaction block. In the default mode, commands are committed only when EXEC SQL COMMIT is issued."}, {"names": ["-v"], "signature": "-v", "description": "Print additional information including the version and the \"include\" path."}, {"names": ["--version"], "signature": "--version", "description": "Print the ecpg version and exit."}, {"names": ["-?", "--help"], "signature": "-? --help", "description": "Show help about ecpg command line arguments, and exit."}], "synopsis": ["ecpg [ option ...] file ..."], "environment": []}, "comparison_hash": "9b115ab9dbd18516028622d20fe8fe477e01f88cb80ad0615213dea618875d6d", "manual_language": "zh"}, "19": {"facts": [{"label": "\u624b\u518c\u4e2d\u7684\u53ef\u6267\u884c\u7a0b\u5e8f", "value": "ecpg"}, {"label": "\u7a0b\u5e8f\u7248\u672c", "value": "19beta4"}, {"label": "\u53c2\u8003\u6e05\u5355", "value": "\u5ba2\u6237\u7aef\u7a0b\u5e8f"}, {"label": "\u9009\u9879\u5b9a\u4e49\u7ec4", "value": "12"}], "tables": [{"key": "options", "rows": [{"summary": "\u81ea\u52a8\u4ece SQL \u4ee3\u7801\u751f\u6210\u67d0\u4e9b C \u4ee3\u7801\u3002\u76ee\u524d\uff0c\u8fd9\u9002\u7528\u4e8e EXEC SQL TYPE \u3002", "signature": {"url": "/docs/19/app-ecpg.html", "text": "-c"}}, {"summary": "\u8bbe\u7f6e\u517c\u5bb9\u6a21\u5f0f\u3002 mode \u53ef\u4ee5\u662f INFORMIX \u3001 INFORMIX_SE \uff0c\u6216 ORACLE \u3002", "signature": {"url": "/docs/19/app-ecpg.html", "text": "-C mode"}}, {"summary": "\u5b9a\u4e49\u4e00\u4e2a\u9884\u5904\u7406\u5668\u7b26\u53f7\uff0c\u7b49\u6548\u4e8e EXEC SQL DEFINE \u6307\u4ee4\u3002\u5982\u679c\u672a\u6307\u5b9a value \uff0c\u5219\u8be5\u7b26\u53f7\u4f1a\u88ab\u5b9a\u4e49\u4e3a\u503c 1 \u3002", "signature": {"url": "/docs/19/app-ecpg.html", "text": "-D symbol [= value ]"}}, {"summary": "\u5904\u7406\u5934\u6587\u4ef6\u3002\u6307\u5b9a\u8be5\u9009\u9879\u65f6\uff0c\u8f93\u51fa\u6587\u4ef6\u6269\u5c55\u540d\u53d8\u4e3a .h \u800c\u4e0d\u662f .c \uff0c\u9ed8\u8ba4\u8f93\u5165\u6587\u4ef6\u6269\u5c55\u540d\u4e5f\u53d8\u4e3a .pgh \u800c\u4e0d\u662f .pgc \u3002\u6b64\u5916\uff0c\u8fd8\u4f1a\u5f3a\u5236\u542f\u7528 -c \u9009\u9879\u3002", "signature": {"url": "/docs/19/app-ecpg.html", "text": "-h"}}, {"summary": "\u4e5f\u89e3\u6790\u7cfb\u7edf\u5305\u542b\u6587\u4ef6\u3002", "signature": {"url": "/docs/19/app-ecpg.html", "text": "-i"}}, {"summary": "\u6307\u5b9a\u4e00\u4e2a\u9644\u52a0\u7684\u5305\u542b\u6587\u4ef6\u641c\u7d22\u8def\u5f84\uff0c\u7528\u4e8e\u67e5\u627e\u901a\u8fc7 EXEC SQL INCLUDE \u5305\u542b\u7684\u6587\u4ef6\u3002\u9ed8\u8ba4\u8def\u5f84\u4f9d\u6b21\u4e3a . \uff08\u5f53\u524d\u76ee\u5f55\uff09\u3001 /usr/local/include \u3001\u7f16\u8bd1\u65f6\u5b9a\u4e49\u7684 PostgreSQL \u5305\u542b\u6587\u4ef6\u76ee\u5f55\uff08\u9ed8\u8ba4\uff1a /usr/local/pgsql/include \uff09\uff0c\u4ee5\u53ca /usr/include \u3002", "signature": {"url": "/docs/19/app-ecpg.html", "text": "-I directory"}}, {"summary": "\u6307\u5b9a ecpg \u5e94\u5c06\u5168\u90e8\u8f93\u51fa\u5199\u5165\u7ed9\u5b9a\u7684 filename \u3002\u5199\u6210 -o - \u53ef\u5c06\u5168\u90e8\u8f93\u51fa\u53d1\u9001\u5230\u6807\u51c6\u8f93\u51fa\u3002", "signature": {"url": "/docs/19/app-ecpg.html", "text": "-o filename"}}, {"summary": "\u9009\u62e9\u8fd0\u884c\u65f6\u884c\u4e3a\u3002\u9009\u9879\u53ef\u4ee5\u662f\u4e0b\u5217\u503c\u4e4b\u4e00\uff1a", "signature": {"url": "/docs/19/app-ecpg.html", "text": "-r option"}}, {"summary": "\u6253\u5f00\u4e8b\u52a1\u81ea\u52a8\u63d0\u4ea4\u3002\u5728\u6b64\u6a21\u5f0f\u4e0b\uff0c\u9664\u975e SQL \u547d\u4ee4\u4f4d\u4e8e\u663e\u5f0f\u4e8b\u52a1\u5757\u4e2d\uff0c\u5426\u5219\u6bcf\u6761 SQL \u547d\u4ee4\u90fd\u4f1a\u81ea\u52a8\u63d0\u4ea4\u3002\u5728\u9ed8\u8ba4\u6a21\u5f0f\u4e0b\uff0c\u53ea\u6709\u53d1\u51fa EXEC SQL COMMIT \u65f6\u624d\u4f1a\u63d0\u4ea4\u547d\u4ee4\u3002", "signature": {"url": "/docs/19/app-ecpg.html", "text": "-t"}}, {"summary": "\u6253\u5370\u9644\u52a0\u4fe1\u606f\uff0c\u5305\u62ec\u7248\u672c\u548c\u5305\u542b\u6587\u4ef6\u641c\u7d22\u8def\u5f84\u3002", "signature": {"url": "/docs/19/app-ecpg.html", "text": "-v"}}, {"summary": "\u6253\u5370 ecpg \u7248\u672c\u5e76\u9000\u51fa\u3002", "signature": {"url": "/docs/19/app-ecpg.html", "text": "--version"}}, {"summary": "\u663e\u793a\u5173\u4e8e ecpg \u547d\u4ee4\u884c\u53c2\u6570\u7684\u5e2e\u52a9\u4fe1\u606f\uff0c\u5e76\u9000\u51fa\u3002", "signature": {"url": "/docs/19/app-ecpg.html", "text": "-? --help"}}], "title": "\u624b\u518c\u4e2d\u7684\u9009\u9879", "columns": [{"key": "signature", "label": "\u9009\u9879\u4e0e\u53c2\u6570"}, {"key": "summary", "label": "\u8bf4\u660e"}]}], "options": [{"names": ["-c"], "summary": "Automatically generate certain C code from SQL code. Currently, this works for EXEC SQL TYPE .", "signature": "-c", "source_url": "/docs/19/app-ecpg.html", "description": "Automatically generate certain C code from SQL code. Currently, this works for EXEC SQL TYPE ."}, {"names": ["-C mode"], "summary": "Set a compatibility mode. mode can be INFORMIX , INFORMIX_SE , or ORACLE .", "signature": "-C mode", "source_url": "/docs/19/app-ecpg.html", "description": "Set a compatibility mode. mode can be INFORMIX , INFORMIX_SE , or ORACLE ."}, {"names": ["-D symbol [= value ]"], "summary": "Define a preprocessor symbol, equivalently to the EXEC SQL DEFINE directive. If no value is specified, the symbol is defined with the value 1 .", "signature": "-D symbol [= value ]", "source_url": "/docs/19/app-ecpg.html", "description": "Define a preprocessor symbol, equivalently to the EXEC SQL DEFINE directive. If no value is specified, the symbol is defined with the value 1 ."}, {"names": ["-h"], "summary": "Process header files. When this option is specified, the output file extension becomes .h not .c , and the default input file extension is .pgh not .pgc . Also, the -c option is forced on.", "signature": "-h", "source_url": "/docs/19/app-ecpg.html", "description": "Process header files. When this option is specified, the output file extension becomes .h not .c , and the default input file extension is .pgh not .pgc . Also, the -c option is forced on."}, {"names": ["-i"], "summary": "Parse system include files as well.", "signature": "-i", "source_url": "/docs/19/app-ecpg.html", "description": "Parse system include files as well."}, {"names": ["-I directory"], "summary": "Specify an additional include path, used to find files included via EXEC SQL INCLUDE . Defaults are . (current directory), /usr/local/include , the PostgreSQL include directory which is defined at compile time (default: /usr/local/pgsql/include ), and /usr/include , in that order.", "signature": "-I directory", "source_url": "/docs/19/app-ecpg.html", "description": "Specify an additional include path, used to find files included via EXEC SQL INCLUDE . Defaults are . (current directory), /usr/local/include , the PostgreSQL include directory which is defined at compile time (default: /usr/local/pgsql/include ), and /usr/include , in that order."}, {"names": ["-o filename"], "summary": "Specifies that ecpg should write all its output to the given filename . Write -o - to send all output to standard output.", "signature": "-o filename", "source_url": "/docs/19/app-ecpg.html", "description": "Specifies that ecpg should write all its output to the given filename . Write -o - to send all output to standard output."}, {"names": ["-r option"], "summary": "Selects run-time behavior. Option can be one of the following:", "signature": "-r option", "source_url": "/docs/19/app-ecpg.html", "description": "Selects run-time behavior. Option can be one of the following: no_indicator Do not use indicators but instead use special values to represent null values. Historically there have been databases using this approach. prepare Prepare all statements before using them. Libecpg will keep a cache of prepared statements and reuse a statement if it gets executed again. If the cache runs full, libecpg will free the least used statement. questionmarks Allow question mark as placeholder for compatibility reasons. This used to be the default long ago."}, {"names": ["-t"], "summary": "Turn on autocommit of transactions. In this mode, each SQL command is automatically committed unless it is inside an explicit transaction block. In the default mode, commands are committed only when EXEC SQL COMMIT is issued.", "signature": "-t", "source_url": "/docs/19/app-ecpg.html", "description": "Turn on autocommit of transactions. In this mode, each SQL command is automatically committed unless it is inside an explicit transaction block. In the default mode, commands are committed only when EXEC SQL COMMIT is issued."}, {"names": ["-v"], "summary": "Print additional information including the version and the \"include\" path.", "signature": "-v", "source_url": "/docs/19/app-ecpg.html", "description": "Print additional information including the version and the \"include\" path."}, {"names": ["--version"], "summary": "Print the ecpg version and exit.", "signature": "--version", "source_url": "/docs/19/app-ecpg.html", "description": "Print the ecpg version and exit."}, {"names": ["-?", "--help"], "summary": "Show help about ecpg command line arguments, and exit.", "signature": "-? --help", "source_url": "/docs/19/app-ecpg.html", "description": "Show help about ecpg command line arguments, and exit."}], "related": [], "release": {"ref": "https://ftp.postgresql.org/pub/source/v19beta4/postgresql-19beta4.tar.bz2", "label": "19beta4", "major": "19", "channel": "preview", "manifest": {"pdf": {"A4": {"url": "/files/documentation/pdf/19/postgresql-19-A4.pdf", "bytes": 16064841, "pages": 3052, "sha256": "4dd099e4125c591128fc5f3ebd02178dc24781f9e5ae629f96d67c4c8547427b", "built_at": "2026-09-26"}, "US": {"url": "/files/documentation/pdf/19/postgresql-19-US.pdf", "bytes": 15974616, "pages": 3225, "sha256": "61971fa857f0956d47341a0388fa6af9ae10acf691d4b2fc009007d384b0342b", "built_at": "2026-09-26"}}, "tree": "19", "index": "index.html", "major": "19", "pages": 1155, "release": "19beta4", "source_url": "https://ftp.postgresql.org/pub/source/v19beta4/postgresql-19beta4.tar.bz2", "svg_assets": 5, "source_mode": "en SGML built with pinned official archive", "source_sha256": "83157ee9c599d03b2f7a3d73ef3a56ec24e0e79cc2b3501a64d1364f56398c86"}, "revision": "1bbbbf4133d426f0e4304010688d2984c30fb67df0cc3a61b3e37eb3f6f37833", "evidence_kind": "English manual and source declarations", "source_sha256": "83157ee9c599d03b2f7a3d73ef3a56ec24e0e79cc2b3501a64d1364f56398c86"}, "sources": [{"url": "https://pg.center/docs/19/app-ecpg.html", "file": "app-ecpg.html", "label": "19beta4 English manual \u00b7 app-ecpg.html", "anchor": "", "sha256": "7148d95a0976c580bd128b6d8965b9f35e15011a9efb1dc66386bb3c601a3ef4", "language": "en", "original_url": "/docs/19/app-ecpg.html"}, {"url": "https://pg.center/docs/19/reference-client.html", "file": "reference-client.html", "label": "Client applications inventory", "anchor": "", "sha256": "c827f460db781b39da305303c88e73729a419cd2b2b9dedb126d8ad5cbf02c95", "language": "en", "original_url": "/docs/19/reference-client.html"}], "sections": [], "synopsis": ["ecpg [ option ...] file ..."], "signature": "ecpg [ option ...] file ...", "description": ["ecpg \u2014 \u5d4c\u5165\u5f0f SQL C \u9884\u5904\u7406\u5668"], "environment": [], "manual_html": "<div><div class=\"refentry\" id=\"APP-ECPG\">\n<div class=\"titlepage\"></div>\n<div class=\"refnamediv\">\n<h2><span class=\"refentrytitle\"><span class=\"application\">ecpg</span></span></h2>\n<p lang=\"zh\"><span class=\"application\">ecpg</span> \u2014 \u5d4c\u5165\u5f0f SQL C \u9884\u5904\u7406\u5668</p>\n</div>\n<div class=\"refsynopsisdiv\">\n<h2 lang=\"zh\">\u5927\u7eb2</h2>\n<div class=\"cmdsynopsis\">\n<p id=\"id-1.9.4.8.4.1\"><code class=\"command\">ecpg</code> [<em class=\"replaceable\"><code>option</code></em>...] <em class=\"replaceable\"><code>file</code></em>...</p>\n</div>\n</div>\n<div class=\"refsect1\" id=\"APP-ECPG-DESCRIPTION\">\n<h2 lang=\"zh\">\u8bf4\u660e</h2>\n<p lang=\"zh\"><code class=\"command\">ecpg</code>\u662f\u4f9b C \u7a0b\u5e8f\u4f7f\u7528\u7684\u5d4c\u5165\u5f0f SQL \u9884\u5904\u7406\u5668\u3002\u5b83\u4f1a\u628a\u5d4c\u5165\u4e86 SQL \u8bed\u53e5\u7684 C \u7a0b\u5e8f\u8f6c\u6362\u6210\u666e\u901a C \u4ee3\u7801\uff0c\u65b9\u6cd5\u662f\u5c06 SQL \u8c03\u7528\u66ff\u6362\u4e3a\u7279\u6b8a\u7684\u51fd\u6570\u8c03\u7528\u3002\u751f\u6210\u7684\u8f93\u51fa\u6587\u4ef6\u968f\u540e\u53ef\u4ee5\u7531\u4efb\u4f55 C \u7f16\u8bd1\u5668\u5de5\u5177\u94fe\u5904\u7406\u3002</p>\n<p lang=\"zh\"><code class=\"command\">ecpg</code>\u4f1a\u5c06\u547d\u4ee4\u884c\u4e2d\u7ed9\u51fa\u7684\u6bcf\u4e2a\u8f93\u5165\u6587\u4ef6\u8f6c\u6362\u6210\u5bf9\u5e94\u7684 C \u8f93\u51fa\u6587\u4ef6\u3002\u82e5\u8f93\u5165\u6587\u4ef6\u540d\u6ca1\u6709\u4efb\u4f55\u6269\u5c55\u540d\uff0c\u5219\u5047\u5b9a\u5176\u6269\u5c55\u540d\u4e3a<code class=\"filename\">.pgc</code>\u3002\u968f\u540e\u4f1a\u628a\u8be5\u6587\u4ef6\u7684\u6269\u5c55\u540d\u66ff\u6362\u4e3a <code class=\"filename\">.c</code>\uff0c\u4ee5\u6784\u9020\u8f93\u51fa\u6587\u4ef6\u540d\u3002\u4e0d\u8fc7\uff0c\u4e5f\u53ef\u4ee5\u7528<code class=\"option\">-o</code>\u9009\u9879\u8986\u76d6\u8f93\u51fa\u6587\u4ef6\u540d\u3002</p>\n<p lang=\"zh\">\u5982\u679c\u8f93\u5165\u6587\u4ef6\u540d\u53ea\u662f<code class=\"literal\">-</code>\uff0c<code class=\"command\">ecpg</code>\u5c31\u4f1a\u4ece\u6807\u51c6\u8f93\u5165\u8bfb\u53d6\u7a0b\u5e8f\uff08\u5e76\u5199\u5230\u6807\u51c6\u8f93\u51fa\uff0c\u9664\u975e\u4f7f\u7528<code class=\"option\">-o</code>\u8986\u76d6\u8be5\u884c\u4e3a\uff09\u3002</p>\n<p lang=\"zh\">\u672c\u53c2\u8003\u9875\u4e0d\u63cf\u8ff0\u5d4c\u5165\u5f0f SQL \u8bed\u8a00\u3002\u6709\u5173\u8be5\u4e3b\u9898\u7684\u66f4\u591a\u4fe1\u606f\uff0c\u89c1<a class=\"xref\" href=\"/docs/19/ecpg.html\" title=\"\u7b2c\u00a034\u00a0\u7ae0\u00a0ECPG \u2014 C \u4e2d\u7684\u5d4c\u5165\u5f0f SQL\">\u7b2c\u00a034\u00a0\u7ae0</a>\u3002</p>\n</div>\n<div class=\"refsect1\" id=\"id-1.9.4.8.6\">\n<h2 lang=\"zh\">\u9009\u9879</h2>\n<p lang=\"zh\"><code class=\"command\">ecpg</code>\u63a5\u53d7\u4ee5\u4e0b\u547d\u4ee4\u884c\u53c2\u6570\uff1a</p>\n<div class=\"variablelist\">\n<dl class=\"variablelist\">\n<dt><span class=\"term\"><code class=\"option\">-c</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u81ea\u52a8\u4ece SQL \u4ee3\u7801\u751f\u6210\u67d0\u4e9b C \u4ee3\u7801\u3002\u76ee\u524d\uff0c\u8fd9\u9002\u7528\u4e8e<code class=\"literal\">EXEC SQL TYPE</code>\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-C <em class=\"replaceable\"><code>mode</code></em></code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u8bbe\u7f6e\u517c\u5bb9\u6a21\u5f0f\u3002<em class=\"replaceable\"><code>mode</code></em>\u53ef\u4ee5\u662f<code class=\"literal\">INFORMIX</code>\u3001<code class=\"literal\">INFORMIX_SE</code>\uff0c\u6216<code class=\"literal\">ORACLE</code>\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-D <em class=\"replaceable\"><code>symbol</code></em>[=<em class=\"replaceable\"><code>value</code></em>]</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u5b9a\u4e49\u4e00\u4e2a\u9884\u5904\u7406\u5668\u7b26\u53f7\uff0c\u7b49\u6548\u4e8e<code class=\"command\">EXEC SQL DEFINE</code>\u6307\u4ee4\u3002\u5982\u679c\u672a\u6307\u5b9a<em class=\"replaceable\"><code>value</code></em>\uff0c\u5219\u8be5\u7b26\u53f7\u4f1a\u88ab\u5b9a\u4e49\u4e3a\u503c<code class=\"literal\">1</code>\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-h</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u5904\u7406\u5934\u6587\u4ef6\u3002\u6307\u5b9a\u8be5\u9009\u9879\u65f6\uff0c\u8f93\u51fa\u6587\u4ef6\u6269\u5c55\u540d\u53d8\u4e3a<code class=\"literal\">.h</code>\u800c\u4e0d\u662f<code class=\"literal\">.c</code>\uff0c\u9ed8\u8ba4\u8f93\u5165\u6587\u4ef6\u6269\u5c55\u540d\u4e5f\u53d8\u4e3a<code class=\"literal\">.pgh</code>\u800c\u4e0d\u662f<code class=\"literal\">.pgc</code>\u3002\u6b64\u5916\uff0c\u8fd8\u4f1a\u5f3a\u5236\u542f\u7528<code class=\"option\">-c</code>\u9009\u9879\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-i</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u4e5f\u89e3\u6790\u7cfb\u7edf\u5305\u542b\u6587\u4ef6\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-I <em class=\"replaceable\"><code>directory</code></em></code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6307\u5b9a\u4e00\u4e2a\u9644\u52a0\u7684\u5305\u542b\u6587\u4ef6\u641c\u7d22\u8def\u5f84\uff0c\u7528\u4e8e\u67e5\u627e\u901a\u8fc7<code class=\"literal\">EXEC SQL INCLUDE</code>\u5305\u542b\u7684\u6587\u4ef6\u3002\u9ed8\u8ba4\u8def\u5f84\u4f9d\u6b21\u4e3a<code class=\"filename\">.</code>\uff08\u5f53\u524d\u76ee\u5f55\uff09\u3001<code class=\"filename\">/usr/local/include</code>\u3001\u7f16\u8bd1\u65f6\u5b9a\u4e49\u7684<span class=\"productname\">PostgreSQL</span>\u5305\u542b\u6587\u4ef6\u76ee\u5f55\uff08\u9ed8\u8ba4\uff1a<code class=\"filename\">/usr/local/pgsql/include</code>\uff09\uff0c\u4ee5\u53ca<code class=\"filename\">/usr/include</code>\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-o <em class=\"replaceable\"><code>filename</code></em></code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6307\u5b9a<code class=\"command\">ecpg</code>\u5e94\u5c06\u5168\u90e8\u8f93\u51fa\u5199\u5165\u7ed9\u5b9a\u7684<em class=\"replaceable\"><code>filename</code></em>\u3002\u5199\u6210<code class=\"literal\">-o -</code>\u53ef\u5c06\u5168\u90e8\u8f93\u51fa\u53d1\u9001\u5230\u6807\u51c6\u8f93\u51fa\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-r <em class=\"replaceable\"><code>option</code></em></code></span></dt>\n<dd>\n<p lang=\"zh\">\u9009\u62e9\u8fd0\u884c\u65f6\u884c\u4e3a\u3002\u9009\u9879\u53ef\u4ee5\u662f\u4e0b\u5217\u503c\u4e4b\u4e00\uff1a</p>\n<div class=\"variablelist\">\n<dl class=\"variablelist\">\n<dt><span class=\"term\"><code class=\"option\">no_indicator</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u4e0d\u4f7f\u7528\u6307\u793a\u7b26\uff0c\u800c\u6539\u7528\u7279\u6b8a\u503c\u8868\u793a\u7a7a\u503c\u3002\u5386\u53f2\u4e0a\u66fe\u6709\u6570\u636e\u5e93\u91c7\u7528\u8fd9\u79cd\u65b9\u5f0f\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">prepare</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u5728\u4f7f\u7528\u524d\u9884\u5907\u6240\u6709\u8bed\u53e5\u3002libecpg\u4f1a\u7ef4\u62a4\u4e00\u4e2a\u5df2\u9884\u5907\u8bed\u53e5\u7684\u7f13\u5b58\uff1b\u5982\u679c\u67d0\u6761\u8bed\u53e5\u518d\u6b21\u6267\u884c\uff0c\u5c31\u4f1a\u590d\u7528\u5b83\u3002\u82e5\u7f13\u5b58\u5df2\u6ee1\uff0clibecpg\u4f1a\u91ca\u653e\u4f7f\u7528\u6b21\u6570\u6700\u5c11\u7684\u8bed\u53e5\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">questionmarks</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u51fa\u4e8e\u517c\u5bb9\u6027\u539f\u56e0\uff0c\u5141\u8bb8\u4f7f\u7528\u95ee\u53f7\u4f5c\u4e3a\u5360\u4f4d\u7b26\u3002\u8fd9\u5728\u5f88\u4e45\u4ee5\u524d\u66fe\u662f\u9ed8\u8ba4\u884c\u4e3a\u3002</p>\n</p>\n</dd>\n</dl>\n</div>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-t</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6253\u5f00\u4e8b\u52a1\u81ea\u52a8\u63d0\u4ea4\u3002\u5728\u6b64\u6a21\u5f0f\u4e0b\uff0c\u9664\u975e SQL \u547d\u4ee4\u4f4d\u4e8e\u663e\u5f0f\u4e8b\u52a1\u5757\u4e2d\uff0c\u5426\u5219\u6bcf\u6761 SQL \u547d\u4ee4\u90fd\u4f1a\u81ea\u52a8\u63d0\u4ea4\u3002\u5728\u9ed8\u8ba4\u6a21\u5f0f\u4e0b\uff0c\u53ea\u6709\u53d1\u51fa<code class=\"command\">EXEC SQL COMMIT</code>\u65f6\u624d\u4f1a\u63d0\u4ea4\u547d\u4ee4\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-v</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6253\u5370\u9644\u52a0\u4fe1\u606f\uff0c\u5305\u62ec\u7248\u672c\u548c\u5305\u542b\u6587\u4ef6\u641c\u7d22\u8def\u5f84\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">--version</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6253\u5370<span class=\"application\">ecpg</span>\u7248\u672c\u5e76\u9000\u51fa\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-?</code><br/></span><span class=\"term\"><code class=\"option\">--help</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u663e\u793a\u5173\u4e8e<span class=\"application\">ecpg</span>\u547d\u4ee4\u884c\u53c2\u6570\u7684\u5e2e\u52a9\u4fe1\u606f\uff0c\u5e76\u9000\u51fa\u3002</p>\n</p>\n</dd>\n</dl>\n</div>\n</div>\n<div class=\"refsect1\" id=\"id-1.9.4.8.7\">\n<h2 lang=\"zh\">\u6ce8\u89e3</h2>\n<p lang=\"zh\">\u5728\u7f16\u8bd1\u9884\u5904\u7406\u540e\u7684 C \u4ee3\u7801\u6587\u4ef6\u65f6\uff0c\u7f16\u8bd1\u5668\u5fc5\u987b\u80fd\u591f\u5728<span class=\"productname\">PostgreSQL</span>\u7684\u5305\u542b\u6587\u4ef6\u76ee\u5f55\u4e2d\u627e\u5230<span class=\"application\">ECPG</span>\u5934\u6587\u4ef6\u3002\u56e0\u6b64\uff0c\u8c03\u7528\u7f16\u8bd1\u5668\u65f6\u4f60\u53ef\u80fd\u9700\u8981\u4f7f\u7528<code class=\"option\">-I</code>\u9009\u9879\uff08\u4f8b\u5982<code class=\"literal\">-I/usr/local/pgsql/include</code>\uff09\u3002</p>\n<p lang=\"zh\">\u4f7f\u7528\u5d4c\u5165\u5f0f SQL \u7684 C \u7a0b\u5e8f\u5fc5\u987b\u4e0e<code class=\"filename\">libecpg</code>\u5e93\u94fe\u63a5\uff0c\u4f8b\u5982\u53ef\u4f7f\u7528\u94fe\u63a5\u5668\u9009\u9879<code class=\"literal\">-L/usr/local/pgsql/lib -lecpg</code>\u3002</p>\n<p lang=\"zh\">\u5f53\u524d\u5b89\u88c5\u4f7f\u7528\u7684\u8fd9\u4e24\u4e2a\u76ee\u5f55\u53ef\u901a\u8fc7<a class=\"xref\" href=\"/docs/19/app-pgconfig.html\" title=\"pg_config\"><span class=\"refentrytitle\"><span class=\"application\">pg_config</span></span></a>\u67e5\u8be2\u3002</p>\n</div>\n<div class=\"refsect1\" id=\"id-1.9.4.8.8\">\n<h2 lang=\"zh\">\u793a\u4f8b</h2>\n<p lang=\"zh\">\u5982\u679c\u4f60\u6709\u4e00\u4e2a\u540d\u4e3a<code class=\"filename\">prog1.pgc</code>\u7684\u5d4c\u5165\u5f0f SQL C \u6e90\u6587\u4ef6\uff0c\u5c31\u53ef\u4ee5\u4f7f\u7528\u4e0b\u5217\u547d\u4ee4\u5e8f\u5217\u521b\u5efa\u4e00\u4e2a\u53ef\u6267\u884c\u7a0b\u5e8f\uff1a</p>\n<pre class=\"programlisting\">ecpg prog1.pgc\ncc -I/usr/local/pgsql/include -c prog1.c\ncc -o prog1 prog1.o -L/usr/local/pgsql/lib -lecpg\n</pre>\n</div>\n</div></div>", "manual_path": "app-ecpg.html", "localization": {"status": "complete", "sources": [{"url": "/docs/19/app-ecpg.html", "method": "same-major semantic node", "sha256": "6c54f0d13151db691671eb2d6b4c82def03917ea0f02b96a8e3931d2c7037a19", "language": "zh", "matched_nodes": ["#APP-ECPG/div[2]/p[1]", "#APP-ECPG/div[3]/h2[0]", "#APP-ECPG/div[4]/p[1]", "#APP-ECPG/div[4]/p[2]", "#APP-ECPG/div[4]/p[3]", "#APP-ECPG/div[4]/p[4]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[11]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[13]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[15]/div[1]/dl[0]/dd[1]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[15]/div[1]/dl[0]/dd[3]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[15]/div[1]/dl[0]/dd[5]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[17]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[19]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[1]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[21]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[23]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[3]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[5]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[7]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[9]", "#APP-ECPG/div[5]/p[1]", "#APP-ECPG/div[6]/h2[0]", "#APP-ECPG/div[6]/p[1]", "#APP-ECPG/div[6]/p[2]", "#APP-ECPG/div[6]/p[3]", "#APP-ECPG/div[7]/h2[0]", "#APP-ECPG/div[7]/p[1]"]}], "language": "zh", "original_text": {"/versions/19/description/0": "ecpg \u2014 embedded SQL C preprocessor", "/versions/19/facts/0/label": "Documented executable", "/versions/19/facts/1/label": "Executable version", "/versions/19/facts/2/label": "Reference inventory", "/versions/19/facts/2/value": "Client applications", "/versions/19/facts/3/label": "Option definition groups", "/versions/19/tables/0/title": "Documented options", "/versions/19/tables/0/rows/0/summary": "Automatically generate certain C code from SQL code. Currently, this works for EXEC SQL TYPE .", "/versions/19/tables/0/rows/1/summary": "Set a compatibility mode. mode can be INFORMIX , INFORMIX_SE , or ORACLE .", "/versions/19/tables/0/rows/2/summary": "Define a preprocessor symbol, equivalently to the EXEC SQL DEFINE directive. If no value is specified, the symbol is defined with the value 1 .", "/versions/19/tables/0/rows/3/summary": "Process header files. When this option is specified, the output file extension becomes .h not .c , and the default input file extension is .pgh not .pgc . Also, the -c option is forced on.", "/versions/19/tables/0/rows/4/summary": "Parse system include files as well.", "/versions/19/tables/0/rows/5/summary": "Specify an additional include path, used to find files included via EXEC SQL INCLUDE . Defaults are . (current directory), /usr/local/include , the PostgreSQL include directory which is defined at compile time (default: /usr/local/pgsql/include ), and /usr/include , in that order.", "/versions/19/tables/0/rows/6/summary": "Specifies that ecpg should write all its output to the given filename . Write -o - to send all output to standard output.", "/versions/19/tables/0/rows/7/summary": "Selects run-time behavior. Option can be one of the following:", "/versions/19/tables/0/rows/8/summary": "Turn on autocommit of transactions. In this mode, each SQL command is automatically committed unless it is inside an explicit transaction block. In the default mode, commands are committed only when EXEC SQL COMMIT is issued.", "/versions/19/tables/0/rows/9/summary": "Print additional information including the version and the \"include\" path.", "/versions/19/tables/0/columns/0/label": "Option and arguments", "/versions/19/tables/0/columns/1/label": "Description", "/versions/19/tables/0/rows/10/summary": "Print the ecpg version and exit.", "/versions/19/tables/0/rows/11/summary": "Show help about ecpg command line arguments, and exit."}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "d039c0dfa076b28a1d7052ffd3e51cd8a68440f09933d47d190801d6fbd75772"}, "comparison_data": {"options": [{"names": ["-c"], "signature": "-c", "description": "Automatically generate certain C code from SQL code. Currently, this works for EXEC SQL TYPE ."}, {"names": ["-C mode"], "signature": "-C mode", "description": "Set a compatibility mode. mode can be INFORMIX , INFORMIX_SE , or ORACLE ."}, {"names": ["-D symbol [= value ]"], "signature": "-D symbol [= value ]", "description": "Define a preprocessor symbol, equivalently to the EXEC SQL DEFINE directive. If no value is specified, the symbol is defined with the value 1 ."}, {"names": ["-h"], "signature": "-h", "description": "Process header files. When this option is specified, the output file extension becomes .h not .c , and the default input file extension is .pgh not .pgc . Also, the -c option is forced on."}, {"names": ["-i"], "signature": "-i", "description": "Parse system include files as well."}, {"names": ["-I directory"], "signature": "-I directory", "description": "Specify an additional include path, used to find files included via EXEC SQL INCLUDE . Defaults are . (current directory), /usr/local/include , the PostgreSQL include directory which is defined at compile time (default: /usr/local/pgsql/include ), and /usr/include , in that order."}, {"names": ["-o filename"], "signature": "-o filename", "description": "Specifies that ecpg should write all its output to the given filename . Write -o - to send all output to standard output."}, {"names": ["-r option"], "signature": "-r option", "description": "Selects run-time behavior. Option can be one of the following: no_indicator Do not use indicators but instead use special values to represent null values. Historically there have been databases using this approach. prepare Prepare all statements before using them. Libecpg will keep a cache of prepared statements and reuse a statement if it gets executed again. If the cache runs full, libecpg will free the least used statement. questionmarks Allow question mark as placeholder for compatibility reasons. This used to be the default long ago."}, {"names": ["-t"], "signature": "-t", "description": "Turn on autocommit of transactions. In this mode, each SQL command is automatically committed unless it is inside an explicit transaction block. In the default mode, commands are committed only when EXEC SQL COMMIT is issued."}, {"names": ["-v"], "signature": "-v", "description": "Print additional information including the version and the \"include\" path."}, {"names": ["--version"], "signature": "--version", "description": "Print the ecpg version and exit."}, {"names": ["-?", "--help"], "signature": "-? --help", "description": "Show help about ecpg command line arguments, and exit."}], "synopsis": ["ecpg [ option ...] file ..."], "environment": []}, "comparison_hash": "9b115ab9dbd18516028622d20fe8fe477e01f88cb80ad0615213dea618875d6d", "manual_language": "zh"}, "20": {"facts": [{"label": "\u624b\u518c\u4e2d\u7684\u53ef\u6267\u884c\u7a0b\u5e8f", "value": "ecpg"}, {"label": "\u7a0b\u5e8f\u7248\u672c", "value": "20devel"}, {"label": "\u53c2\u8003\u6e05\u5355", "value": "\u5ba2\u6237\u7aef\u7a0b\u5e8f"}, {"label": "\u9009\u9879\u5b9a\u4e49\u7ec4", "value": "12"}], "tables": [{"key": "options", "rows": [{"summary": "\u81ea\u52a8\u4ece SQL \u4ee3\u7801\u751f\u6210\u67d0\u4e9b C \u4ee3\u7801\u3002\u76ee\u524d\uff0c\u8fd9\u9002\u7528\u4e8e EXEC SQL TYPE \u3002", "signature": {"url": "/docs/devel/app-ecpg.html", "text": "-c"}}, {"summary": "\u8bbe\u7f6e\u517c\u5bb9\u6a21\u5f0f\u3002 mode \u53ef\u4ee5\u662f INFORMIX \u3001 INFORMIX_SE \uff0c\u6216 ORACLE \u3002", "signature": {"url": "/docs/devel/app-ecpg.html", "text": "-C mode"}}, {"summary": "\u5b9a\u4e49\u4e00\u4e2a\u9884\u5904\u7406\u5668\u7b26\u53f7\uff0c\u7b49\u6548\u4e8e EXEC SQL DEFINE \u6307\u4ee4\u3002\u5982\u679c\u672a\u6307\u5b9a value \uff0c\u5219\u8be5\u7b26\u53f7\u4f1a\u88ab\u5b9a\u4e49\u4e3a\u503c 1 \u3002", "signature": {"url": "/docs/devel/app-ecpg.html", "text": "-D symbol [= value ]"}}, {"summary": "\u5904\u7406\u5934\u6587\u4ef6\u3002\u6307\u5b9a\u8be5\u9009\u9879\u65f6\uff0c\u8f93\u51fa\u6587\u4ef6\u6269\u5c55\u540d\u53d8\u4e3a .h \u800c\u4e0d\u662f .c \uff0c\u9ed8\u8ba4\u8f93\u5165\u6587\u4ef6\u6269\u5c55\u540d\u4e5f\u53d8\u4e3a .pgh \u800c\u4e0d\u662f .pgc \u3002\u6b64\u5916\uff0c\u8fd8\u4f1a\u5f3a\u5236\u542f\u7528 -c \u9009\u9879\u3002", "signature": {"url": "/docs/devel/app-ecpg.html", "text": "-h"}}, {"summary": "\u4e5f\u89e3\u6790\u7cfb\u7edf\u5305\u542b\u6587\u4ef6\u3002", "signature": {"url": "/docs/devel/app-ecpg.html", "text": "-i"}}, {"summary": "\u6307\u5b9a\u4e00\u4e2a\u9644\u52a0\u7684\u5305\u542b\u6587\u4ef6\u641c\u7d22\u8def\u5f84\uff0c\u7528\u4e8e\u67e5\u627e\u901a\u8fc7 EXEC SQL INCLUDE \u5305\u542b\u7684\u6587\u4ef6\u3002\u9ed8\u8ba4\u8def\u5f84\u4f9d\u6b21\u4e3a . \uff08\u5f53\u524d\u76ee\u5f55\uff09\u3001 /usr/local/include \u3001\u7f16\u8bd1\u65f6\u5b9a\u4e49\u7684 PostgreSQL \u5305\u542b\u6587\u4ef6\u76ee\u5f55\uff08\u9ed8\u8ba4\uff1a /usr/local/pgsql/include \uff09\uff0c\u4ee5\u53ca /usr/include \u3002", "signature": {"url": "/docs/devel/app-ecpg.html", "text": "-I directory"}}, {"summary": "\u6307\u5b9a ecpg \u5e94\u5c06\u5168\u90e8\u8f93\u51fa\u5199\u5165\u7ed9\u5b9a\u7684 filename \u3002\u5199\u6210 -o - \u53ef\u5c06\u5168\u90e8\u8f93\u51fa\u53d1\u9001\u5230\u6807\u51c6\u8f93\u51fa\u3002", "signature": {"url": "/docs/devel/app-ecpg.html", "text": "-o filename"}}, {"summary": "\u9009\u62e9\u8fd0\u884c\u65f6\u884c\u4e3a\u3002\u9009\u9879\u53ef\u4ee5\u662f\u4e0b\u5217\u503c\u4e4b\u4e00\uff1a", "signature": {"url": "/docs/devel/app-ecpg.html", "text": "-r option"}}, {"summary": "\u6253\u5f00\u4e8b\u52a1\u81ea\u52a8\u63d0\u4ea4\u3002\u5728\u6b64\u6a21\u5f0f\u4e0b\uff0c\u9664\u975e SQL \u547d\u4ee4\u4f4d\u4e8e\u663e\u5f0f\u4e8b\u52a1\u5757\u4e2d\uff0c\u5426\u5219\u6bcf\u6761 SQL \u547d\u4ee4\u90fd\u4f1a\u81ea\u52a8\u63d0\u4ea4\u3002\u5728\u9ed8\u8ba4\u6a21\u5f0f\u4e0b\uff0c\u53ea\u6709\u53d1\u51fa EXEC SQL COMMIT \u65f6\u624d\u4f1a\u63d0\u4ea4\u547d\u4ee4\u3002", "signature": {"url": "/docs/devel/app-ecpg.html", "text": "-t"}}, {"summary": "\u6253\u5370\u9644\u52a0\u4fe1\u606f\uff0c\u5305\u62ec\u7248\u672c\u548c\u5305\u542b\u6587\u4ef6\u641c\u7d22\u8def\u5f84\u3002", "signature": {"url": "/docs/devel/app-ecpg.html", "text": "-v"}}, {"summary": "\u6253\u5370 ecpg \u7248\u672c\u5e76\u9000\u51fa\u3002", "signature": {"url": "/docs/devel/app-ecpg.html", "text": "--version"}}, {"summary": "\u663e\u793a\u5173\u4e8e ecpg \u547d\u4ee4\u884c\u53c2\u6570\u7684\u5e2e\u52a9\u4fe1\u606f\uff0c\u5e76\u9000\u51fa\u3002", "signature": {"url": "/docs/devel/app-ecpg.html", "text": "-? --help"}}], "title": "\u624b\u518c\u4e2d\u7684\u9009\u9879", "columns": [{"key": "signature", "label": "\u9009\u9879\u4e0e\u53c2\u6570"}, {"key": "summary", "label": "\u8bf4\u660e"}]}], "options": [{"names": ["-c"], "summary": "Automatically generate certain C code from SQL code. Currently, this works for EXEC SQL TYPE .", "signature": "-c", "source_url": "/docs/devel/app-ecpg.html", "description": "Automatically generate certain C code from SQL code. Currently, this works for EXEC SQL TYPE ."}, {"names": ["-C mode"], "summary": "Set a compatibility mode. mode can be INFORMIX , INFORMIX_SE , or ORACLE .", "signature": "-C mode", "source_url": "/docs/devel/app-ecpg.html", "description": "Set a compatibility mode. mode can be INFORMIX , INFORMIX_SE , or ORACLE ."}, {"names": ["-D symbol [= value ]"], "summary": "Define a preprocessor symbol, equivalently to the EXEC SQL DEFINE directive. If no value is specified, the symbol is defined with the value 1 .", "signature": "-D symbol [= value ]", "source_url": "/docs/devel/app-ecpg.html", "description": "Define a preprocessor symbol, equivalently to the EXEC SQL DEFINE directive. If no value is specified, the symbol is defined with the value 1 ."}, {"names": ["-h"], "summary": "Process header files. When this option is specified, the output file extension becomes .h not .c , and the default input file extension is .pgh not .pgc . Also, the -c option is forced on.", "signature": "-h", "source_url": "/docs/devel/app-ecpg.html", "description": "Process header files. When this option is specified, the output file extension becomes .h not .c , and the default input file extension is .pgh not .pgc . Also, the -c option is forced on."}, {"names": ["-i"], "summary": "Parse system include files as well.", "signature": "-i", "source_url": "/docs/devel/app-ecpg.html", "description": "Parse system include files as well."}, {"names": ["-I directory"], "summary": "Specify an additional include path, used to find files included via EXEC SQL INCLUDE . Defaults are . (current directory), /usr/local/include , the PostgreSQL include directory which is defined at compile time (default: /usr/local/pgsql/include ), and /usr/include , in that order.", "signature": "-I directory", "source_url": "/docs/devel/app-ecpg.html", "description": "Specify an additional include path, used to find files included via EXEC SQL INCLUDE . Defaults are . (current directory), /usr/local/include , the PostgreSQL include directory which is defined at compile time (default: /usr/local/pgsql/include ), and /usr/include , in that order."}, {"names": ["-o filename"], "summary": "Specifies that ecpg should write all its output to the given filename . Write -o - to send all output to standard output.", "signature": "-o filename", "source_url": "/docs/devel/app-ecpg.html", "description": "Specifies that ecpg should write all its output to the given filename . Write -o - to send all output to standard output."}, {"names": ["-r option"], "summary": "Selects run-time behavior. Option can be one of the following:", "signature": "-r option", "source_url": "/docs/devel/app-ecpg.html", "description": "Selects run-time behavior. Option can be one of the following: no_indicator Do not use indicators but instead use special values to represent null values. Historically there have been databases using this approach. prepare Prepare all statements before using them. Libecpg will keep a cache of prepared statements and reuse a statement if it gets executed again. If the cache runs full, libecpg will free the least used statement. questionmarks Allow question mark as placeholder for compatibility reasons. This used to be the default long ago."}, {"names": ["-t"], "summary": "Turn on autocommit of transactions. In this mode, each SQL command is automatically committed unless it is inside an explicit transaction block. In the default mode, commands are committed only when EXEC SQL COMMIT is issued.", "signature": "-t", "source_url": "/docs/devel/app-ecpg.html", "description": "Turn on autocommit of transactions. In this mode, each SQL command is automatically committed unless it is inside an explicit transaction block. In the default mode, commands are committed only when EXEC SQL COMMIT is issued."}, {"names": ["-v"], "summary": "Print additional information including the version and the \"include\" path.", "signature": "-v", "source_url": "/docs/devel/app-ecpg.html", "description": "Print additional information including the version and the \"include\" path."}, {"names": ["--version"], "summary": "Print the ecpg version and exit.", "signature": "--version", "source_url": "/docs/devel/app-ecpg.html", "description": "Print the ecpg version and exit."}, {"names": ["-?", "--help"], "summary": "Show help about ecpg command line arguments, and exit.", "signature": "-? --help", "source_url": "/docs/devel/app-ecpg.html", "description": "Show help about ecpg command line arguments, and exit."}], "related": [], "release": {"ref": "https://ftp.postgresql.org/pub/snapshot/dev/postgresql-snapshot.tar.bz2", "label": "20devel", "major": "20", "channel": "devel", "manifest": {"pdf": {"A4": {"url": "/files/documentation/pdf/20/postgresql-20-A4.pdf", "bytes": 16030631, "pages": 3052, "sha256": "bd5d82c0ce38fc18f92a0447818a91a193a261776bca1c37564bf9a683e177d0", "built_at": "2026-09-28"}, "US": {"url": "/files/documentation/pdf/20/postgresql-20-US.pdf", "bytes": 15936613, "pages": 3223, "sha256": "d97d9e0db479a02f4234b175f50fcad70c3661619afc8d6df9b9437882e3c299", "built_at": "2026-09-28"}}, "tree": "0", "index": "index.html", "major": "20", "pages": 1156, "release": "20devel", "source_url": "https://ftp.postgresql.org/pub/snapshot/dev/postgresql-snapshot.tar.bz2", "svg_assets": 6, "source_mode": "en SGML built with pinned official archive", "source_sha256": "4d3346909b201ac1648232cf290462a7070c119326f56196f1f0253ed80fae41", "source_snapshot_utc": "26-Sep-2026 20:22"}, "revision": "2eba5e0fd4c3bffb2803247b6cd537878e9d6ee5a6dfbe3c50ece8b421b80918", "evidence_kind": "English manual and source declarations", "source_sha256": "4d3346909b201ac1648232cf290462a7070c119326f56196f1f0253ed80fae41"}, "sources": [{"url": "https://pg.center/docs/devel/app-ecpg.html", "file": "app-ecpg.html", "label": "20devel English manual \u00b7 app-ecpg.html", "anchor": "", "sha256": "062168b1a9795fac1c5e94148349b4da07d3ed6c07c01ae24ec350360c5a0a68", "language": "en", "original_url": "/docs/devel/app-ecpg.html"}, {"url": "https://pg.center/docs/devel/reference-client.html", "file": "reference-client.html", "label": "Client applications inventory", "anchor": "", "sha256": "a6c7ba748fa1d9feac5bb7cde41d1d36a1f4c26d5963e07fb103d02918b2a8ca", "language": "en", "original_url": "/docs/devel/reference-client.html"}], "sections": [], "synopsis": ["ecpg [ option ...] file ..."], "signature": "ecpg [ option ...] file ...", "description": ["ecpg \u2014 \u5d4c\u5165\u5f0f SQL C \u9884\u5904\u7406\u5668"], "environment": [], "manual_html": "<div><div class=\"refentry\" id=\"APP-ECPG\">\n<div class=\"titlepage\"></div>\n<div class=\"refnamediv\">\n<h2><span class=\"refentrytitle\"><span class=\"application\">ecpg</span></span></h2>\n<p lang=\"zh\"><span class=\"application\">ecpg</span> \u2014 \u5d4c\u5165\u5f0f SQL C \u9884\u5904\u7406\u5668</p>\n</div>\n<div class=\"refsynopsisdiv\">\n<h2 lang=\"zh\">\u5927\u7eb2</h2>\n<div class=\"cmdsynopsis\">\n<p id=\"id-1.9.4.8.4.1\"><code class=\"command\">ecpg</code> [<em class=\"replaceable\"><code>option</code></em>...] <em class=\"replaceable\"><code>file</code></em>...</p>\n</div>\n</div>\n<div class=\"refsect1\" id=\"APP-ECPG-DESCRIPTION\">\n<h2 lang=\"zh\">\u8bf4\u660e</h2>\n<p lang=\"zh\"><code class=\"command\">ecpg</code>\u662f\u4f9b C \u7a0b\u5e8f\u4f7f\u7528\u7684\u5d4c\u5165\u5f0f SQL \u9884\u5904\u7406\u5668\u3002\u5b83\u4f1a\u628a\u5d4c\u5165\u4e86 SQL \u8bed\u53e5\u7684 C \u7a0b\u5e8f\u8f6c\u6362\u6210\u666e\u901a C \u4ee3\u7801\uff0c\u65b9\u6cd5\u662f\u5c06 SQL \u8c03\u7528\u66ff\u6362\u4e3a\u7279\u6b8a\u7684\u51fd\u6570\u8c03\u7528\u3002\u751f\u6210\u7684\u8f93\u51fa\u6587\u4ef6\u968f\u540e\u53ef\u4ee5\u7531\u4efb\u4f55 C \u7f16\u8bd1\u5668\u5de5\u5177\u94fe\u5904\u7406\u3002</p>\n<p lang=\"zh\"><code class=\"command\">ecpg</code>\u4f1a\u5c06\u547d\u4ee4\u884c\u4e2d\u7ed9\u51fa\u7684\u6bcf\u4e2a\u8f93\u5165\u6587\u4ef6\u8f6c\u6362\u6210\u5bf9\u5e94\u7684 C \u8f93\u51fa\u6587\u4ef6\u3002\u82e5\u8f93\u5165\u6587\u4ef6\u540d\u6ca1\u6709\u4efb\u4f55\u6269\u5c55\u540d\uff0c\u5219\u5047\u5b9a\u5176\u6269\u5c55\u540d\u4e3a<code class=\"filename\">.pgc</code>\u3002\u968f\u540e\u4f1a\u628a\u8be5\u6587\u4ef6\u7684\u6269\u5c55\u540d\u66ff\u6362\u4e3a <code class=\"filename\">.c</code>\uff0c\u4ee5\u6784\u9020\u8f93\u51fa\u6587\u4ef6\u540d\u3002\u4e0d\u8fc7\uff0c\u4e5f\u53ef\u4ee5\u7528<code class=\"option\">-o</code>\u9009\u9879\u8986\u76d6\u8f93\u51fa\u6587\u4ef6\u540d\u3002</p>\n<p lang=\"zh\">\u5982\u679c\u8f93\u5165\u6587\u4ef6\u540d\u53ea\u662f<code class=\"literal\">-</code>\uff0c<code class=\"command\">ecpg</code>\u5c31\u4f1a\u4ece\u6807\u51c6\u8f93\u5165\u8bfb\u53d6\u7a0b\u5e8f\uff08\u5e76\u5199\u5230\u6807\u51c6\u8f93\u51fa\uff0c\u9664\u975e\u4f7f\u7528<code class=\"option\">-o</code>\u8986\u76d6\u8be5\u884c\u4e3a\uff09\u3002</p>\n<p lang=\"zh\">\u672c\u53c2\u8003\u9875\u4e0d\u63cf\u8ff0\u5d4c\u5165\u5f0f SQL \u8bed\u8a00\u3002\u6709\u5173\u8be5\u4e3b\u9898\u7684\u66f4\u591a\u4fe1\u606f\uff0c\u89c1<a class=\"xref\" href=\"/docs/devel/ecpg.html\" title=\"\u7b2c\u00a034\u00a0\u7ae0\u00a0ECPG \u2014 C \u4e2d\u7684\u5d4c\u5165\u5f0f SQL\">\u7b2c\u00a034\u00a0\u7ae0</a>\u3002</p>\n</div>\n<div class=\"refsect1\" id=\"id-1.9.4.8.6\">\n<h2 lang=\"zh\">\u9009\u9879</h2>\n<p lang=\"zh\"><code class=\"command\">ecpg</code>\u63a5\u53d7\u4ee5\u4e0b\u547d\u4ee4\u884c\u53c2\u6570\uff1a</p>\n<div class=\"variablelist\">\n<dl class=\"variablelist\">\n<dt><span class=\"term\"><code class=\"option\">-c</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u81ea\u52a8\u4ece SQL \u4ee3\u7801\u751f\u6210\u67d0\u4e9b C \u4ee3\u7801\u3002\u76ee\u524d\uff0c\u8fd9\u9002\u7528\u4e8e<code class=\"literal\">EXEC SQL TYPE</code>\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-C <em class=\"replaceable\"><code>mode</code></em></code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u8bbe\u7f6e\u517c\u5bb9\u6a21\u5f0f\u3002<em class=\"replaceable\"><code>mode</code></em>\u53ef\u4ee5\u662f<code class=\"literal\">INFORMIX</code>\u3001<code class=\"literal\">INFORMIX_SE</code>\uff0c\u6216<code class=\"literal\">ORACLE</code>\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-D <em class=\"replaceable\"><code>symbol</code></em>[=<em class=\"replaceable\"><code>value</code></em>]</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u5b9a\u4e49\u4e00\u4e2a\u9884\u5904\u7406\u5668\u7b26\u53f7\uff0c\u7b49\u6548\u4e8e<code class=\"command\">EXEC SQL DEFINE</code>\u6307\u4ee4\u3002\u5982\u679c\u672a\u6307\u5b9a<em class=\"replaceable\"><code>value</code></em>\uff0c\u5219\u8be5\u7b26\u53f7\u4f1a\u88ab\u5b9a\u4e49\u4e3a\u503c<code class=\"literal\">1</code>\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-h</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u5904\u7406\u5934\u6587\u4ef6\u3002\u6307\u5b9a\u8be5\u9009\u9879\u65f6\uff0c\u8f93\u51fa\u6587\u4ef6\u6269\u5c55\u540d\u53d8\u4e3a<code class=\"literal\">.h</code>\u800c\u4e0d\u662f<code class=\"literal\">.c</code>\uff0c\u9ed8\u8ba4\u8f93\u5165\u6587\u4ef6\u6269\u5c55\u540d\u4e5f\u53d8\u4e3a<code class=\"literal\">.pgh</code>\u800c\u4e0d\u662f<code class=\"literal\">.pgc</code>\u3002\u6b64\u5916\uff0c\u8fd8\u4f1a\u5f3a\u5236\u542f\u7528<code class=\"option\">-c</code>\u9009\u9879\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-i</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u4e5f\u89e3\u6790\u7cfb\u7edf\u5305\u542b\u6587\u4ef6\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-I <em class=\"replaceable\"><code>directory</code></em></code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6307\u5b9a\u4e00\u4e2a\u9644\u52a0\u7684\u5305\u542b\u6587\u4ef6\u641c\u7d22\u8def\u5f84\uff0c\u7528\u4e8e\u67e5\u627e\u901a\u8fc7<code class=\"literal\">EXEC SQL INCLUDE</code>\u5305\u542b\u7684\u6587\u4ef6\u3002\u9ed8\u8ba4\u8def\u5f84\u4f9d\u6b21\u4e3a<code class=\"filename\">.</code>\uff08\u5f53\u524d\u76ee\u5f55\uff09\u3001<code class=\"filename\">/usr/local/include</code>\u3001\u7f16\u8bd1\u65f6\u5b9a\u4e49\u7684<span class=\"productname\">PostgreSQL</span>\u5305\u542b\u6587\u4ef6\u76ee\u5f55\uff08\u9ed8\u8ba4\uff1a<code class=\"filename\">/usr/local/pgsql/include</code>\uff09\uff0c\u4ee5\u53ca<code class=\"filename\">/usr/include</code>\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-o <em class=\"replaceable\"><code>filename</code></em></code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6307\u5b9a<code class=\"command\">ecpg</code>\u5e94\u5c06\u5168\u90e8\u8f93\u51fa\u5199\u5165\u7ed9\u5b9a\u7684<em class=\"replaceable\"><code>filename</code></em>\u3002\u5199\u6210<code class=\"literal\">-o -</code>\u53ef\u5c06\u5168\u90e8\u8f93\u51fa\u53d1\u9001\u5230\u6807\u51c6\u8f93\u51fa\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-r <em class=\"replaceable\"><code>option</code></em></code></span></dt>\n<dd>\n<p lang=\"zh\">\u9009\u62e9\u8fd0\u884c\u65f6\u884c\u4e3a\u3002\u9009\u9879\u53ef\u4ee5\u662f\u4e0b\u5217\u503c\u4e4b\u4e00\uff1a</p>\n<div class=\"variablelist\">\n<dl class=\"variablelist\">\n<dt><span class=\"term\"><code class=\"option\">no_indicator</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u4e0d\u4f7f\u7528\u6307\u793a\u7b26\uff0c\u800c\u6539\u7528\u7279\u6b8a\u503c\u8868\u793a\u7a7a\u503c\u3002\u5386\u53f2\u4e0a\u66fe\u6709\u6570\u636e\u5e93\u91c7\u7528\u8fd9\u79cd\u65b9\u5f0f\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">prepare</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u5728\u4f7f\u7528\u524d\u9884\u5907\u6240\u6709\u8bed\u53e5\u3002libecpg\u4f1a\u7ef4\u62a4\u4e00\u4e2a\u5df2\u9884\u5907\u8bed\u53e5\u7684\u7f13\u5b58\uff1b\u5982\u679c\u67d0\u6761\u8bed\u53e5\u518d\u6b21\u6267\u884c\uff0c\u5c31\u4f1a\u590d\u7528\u5b83\u3002\u82e5\u7f13\u5b58\u5df2\u6ee1\uff0clibecpg\u4f1a\u91ca\u653e\u4f7f\u7528\u6b21\u6570\u6700\u5c11\u7684\u8bed\u53e5\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">questionmarks</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u51fa\u4e8e\u517c\u5bb9\u6027\u539f\u56e0\uff0c\u5141\u8bb8\u4f7f\u7528\u95ee\u53f7\u4f5c\u4e3a\u5360\u4f4d\u7b26\u3002\u8fd9\u5728\u5f88\u4e45\u4ee5\u524d\u66fe\u662f\u9ed8\u8ba4\u884c\u4e3a\u3002</p>\n</p>\n</dd>\n</dl>\n</div>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-t</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6253\u5f00\u4e8b\u52a1\u81ea\u52a8\u63d0\u4ea4\u3002\u5728\u6b64\u6a21\u5f0f\u4e0b\uff0c\u9664\u975e SQL \u547d\u4ee4\u4f4d\u4e8e\u663e\u5f0f\u4e8b\u52a1\u5757\u4e2d\uff0c\u5426\u5219\u6bcf\u6761 SQL \u547d\u4ee4\u90fd\u4f1a\u81ea\u52a8\u63d0\u4ea4\u3002\u5728\u9ed8\u8ba4\u6a21\u5f0f\u4e0b\uff0c\u53ea\u6709\u53d1\u51fa<code class=\"command\">EXEC SQL COMMIT</code>\u65f6\u624d\u4f1a\u63d0\u4ea4\u547d\u4ee4\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-v</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6253\u5370\u9644\u52a0\u4fe1\u606f\uff0c\u5305\u62ec\u7248\u672c\u548c\u5305\u542b\u6587\u4ef6\u641c\u7d22\u8def\u5f84\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">--version</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6253\u5370<span class=\"application\">ecpg</span>\u7248\u672c\u5e76\u9000\u51fa\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-?</code><br/></span><span class=\"term\"><code class=\"option\">--help</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u663e\u793a\u5173\u4e8e<span class=\"application\">ecpg</span>\u547d\u4ee4\u884c\u53c2\u6570\u7684\u5e2e\u52a9\u4fe1\u606f\uff0c\u5e76\u9000\u51fa\u3002</p>\n</p>\n</dd>\n</dl>\n</div>\n</div>\n<div class=\"refsect1\" id=\"id-1.9.4.8.7\">\n<h2 lang=\"zh\">\u6ce8\u89e3</h2>\n<p lang=\"zh\">\u5728\u7f16\u8bd1\u9884\u5904\u7406\u540e\u7684 C \u4ee3\u7801\u6587\u4ef6\u65f6\uff0c\u7f16\u8bd1\u5668\u5fc5\u987b\u80fd\u591f\u5728<span class=\"productname\">PostgreSQL</span>\u7684\u5305\u542b\u6587\u4ef6\u76ee\u5f55\u4e2d\u627e\u5230<span class=\"application\">ECPG</span>\u5934\u6587\u4ef6\u3002\u56e0\u6b64\uff0c\u8c03\u7528\u7f16\u8bd1\u5668\u65f6\u4f60\u53ef\u80fd\u9700\u8981\u4f7f\u7528<code class=\"option\">-I</code>\u9009\u9879\uff08\u4f8b\u5982<code class=\"literal\">-I/usr/local/pgsql/include</code>\uff09\u3002</p>\n<p lang=\"zh\">\u4f7f\u7528\u5d4c\u5165\u5f0f SQL \u7684 C \u7a0b\u5e8f\u5fc5\u987b\u4e0e<code class=\"filename\">libecpg</code>\u5e93\u94fe\u63a5\uff0c\u4f8b\u5982\u53ef\u4f7f\u7528\u94fe\u63a5\u5668\u9009\u9879<code class=\"literal\">-L/usr/local/pgsql/lib -lecpg</code>\u3002</p>\n<p lang=\"zh\">\u5f53\u524d\u5b89\u88c5\u4f7f\u7528\u7684\u8fd9\u4e24\u4e2a\u76ee\u5f55\u53ef\u901a\u8fc7<a class=\"xref\" href=\"/docs/devel/app-pgconfig.html\" title=\"pg_config\"><span class=\"refentrytitle\"><span class=\"application\">pg_config</span></span></a>\u67e5\u8be2\u3002</p>\n</div>\n<div class=\"refsect1\" id=\"id-1.9.4.8.8\">\n<h2 lang=\"zh\">\u793a\u4f8b</h2>\n<p lang=\"zh\">\u5982\u679c\u4f60\u6709\u4e00\u4e2a\u540d\u4e3a<code class=\"filename\">prog1.pgc</code>\u7684\u5d4c\u5165\u5f0f SQL C \u6e90\u6587\u4ef6\uff0c\u5c31\u53ef\u4ee5\u4f7f\u7528\u4e0b\u5217\u547d\u4ee4\u5e8f\u5217\u521b\u5efa\u4e00\u4e2a\u53ef\u6267\u884c\u7a0b\u5e8f\uff1a</p>\n<pre class=\"programlisting\">ecpg prog1.pgc\ncc -I/usr/local/pgsql/include -c prog1.c\ncc -o prog1 prog1.o -L/usr/local/pgsql/lib -lecpg\n</pre>\n</div>\n</div></div>", "manual_path": "app-ecpg.html", "localization": {"status": "complete", "sources": [{"url": "/docs/devel/app-ecpg.html", "method": "same-major semantic node", "sha256": "964c97586a6442525481b511e7f8f59590ac12ffdd78f6a6418de1d80badd7bd", "language": "zh", "matched_nodes": ["#APP-ECPG/div[2]/p[1]", "#APP-ECPG/div[3]/h2[0]", "#APP-ECPG/div[4]/p[1]", "#APP-ECPG/div[4]/p[2]", "#APP-ECPG/div[4]/p[3]", "#APP-ECPG/div[4]/p[4]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[11]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[13]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[15]/div[1]/dl[0]/dd[1]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[15]/div[1]/dl[0]/dd[3]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[15]/div[1]/dl[0]/dd[5]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[17]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[19]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[1]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[21]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[23]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[3]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[5]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[7]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[9]", "#APP-ECPG/div[5]/p[1]", "#APP-ECPG/div[6]/h2[0]", "#APP-ECPG/div[6]/p[1]", "#APP-ECPG/div[6]/p[2]", "#APP-ECPG/div[6]/p[3]", "#APP-ECPG/div[7]/h2[0]", "#APP-ECPG/div[7]/p[1]"]}], "language": "zh", "original_text": {"/summary": "ecpg \u2014 embedded SQL C preprocessor", "/category": "Client applications", "/versions/20/description/0": "ecpg \u2014 embedded SQL C preprocessor", "/versions/20/facts/0/label": "Documented executable", "/versions/20/facts/1/label": "Executable version", "/versions/20/facts/2/label": "Reference inventory", "/versions/20/facts/2/value": "Client applications", "/versions/20/facts/3/label": "Option definition groups", "/versions/20/tables/0/title": "Documented options", "/versions/20/tables/0/rows/0/summary": "Automatically generate certain C code from SQL code. Currently, this works for EXEC SQL TYPE .", "/versions/20/tables/0/rows/1/summary": "Set a compatibility mode. mode can be INFORMIX , INFORMIX_SE , or ORACLE .", "/versions/20/tables/0/rows/2/summary": "Define a preprocessor symbol, equivalently to the EXEC SQL DEFINE directive. If no value is specified, the symbol is defined with the value 1 .", "/versions/20/tables/0/rows/3/summary": "Process header files. When this option is specified, the output file extension becomes .h not .c , and the default input file extension is .pgh not .pgc . Also, the -c option is forced on.", "/versions/20/tables/0/rows/4/summary": "Parse system include files as well.", "/versions/20/tables/0/rows/5/summary": "Specify an additional include path, used to find files included via EXEC SQL INCLUDE . Defaults are . (current directory), /usr/local/include , the PostgreSQL include directory which is defined at compile time (default: /usr/local/pgsql/include ), and /usr/include , in that order.", "/versions/20/tables/0/rows/6/summary": "Specifies that ecpg should write all its output to the given filename . Write -o - to send all output to standard output.", "/versions/20/tables/0/rows/7/summary": "Selects run-time behavior. Option can be one of the following:", "/versions/20/tables/0/rows/8/summary": "Turn on autocommit of transactions. In this mode, each SQL command is automatically committed unless it is inside an explicit transaction block. In the default mode, commands are committed only when EXEC SQL COMMIT is issued.", "/versions/20/tables/0/rows/9/summary": "Print additional information including the version and the \"include\" path.", "/versions/20/tables/0/columns/0/label": "Option and arguments", "/versions/20/tables/0/columns/1/label": "Description", "/versions/20/tables/0/rows/10/summary": "Print the ecpg version and exit.", "/versions/20/tables/0/rows/11/summary": "Show help about ecpg command line arguments, and exit."}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "bf76f67d41a2bd5cae352291dd57ede5aa22969306b835ba4b1354cacf676afd"}, "comparison_data": {"options": [{"names": ["-c"], "signature": "-c", "description": "Automatically generate certain C code from SQL code. Currently, this works for EXEC SQL TYPE ."}, {"names": ["-C mode"], "signature": "-C mode", "description": "Set a compatibility mode. mode can be INFORMIX , INFORMIX_SE , or ORACLE ."}, {"names": ["-D symbol [= value ]"], "signature": "-D symbol [= value ]", "description": "Define a preprocessor symbol, equivalently to the EXEC SQL DEFINE directive. If no value is specified, the symbol is defined with the value 1 ."}, {"names": ["-h"], "signature": "-h", "description": "Process header files. When this option is specified, the output file extension becomes .h not .c , and the default input file extension is .pgh not .pgc . Also, the -c option is forced on."}, {"names": ["-i"], "signature": "-i", "description": "Parse system include files as well."}, {"names": ["-I directory"], "signature": "-I directory", "description": "Specify an additional include path, used to find files included via EXEC SQL INCLUDE . Defaults are . (current directory), /usr/local/include , the PostgreSQL include directory which is defined at compile time (default: /usr/local/pgsql/include ), and /usr/include , in that order."}, {"names": ["-o filename"], "signature": "-o filename", "description": "Specifies that ecpg should write all its output to the given filename . Write -o - to send all output to standard output."}, {"names": ["-r option"], "signature": "-r option", "description": "Selects run-time behavior. Option can be one of the following: no_indicator Do not use indicators but instead use special values to represent null values. Historically there have been databases using this approach. prepare Prepare all statements before using them. Libecpg will keep a cache of prepared statements and reuse a statement if it gets executed again. If the cache runs full, libecpg will free the least used statement. questionmarks Allow question mark as placeholder for compatibility reasons. This used to be the default long ago."}, {"names": ["-t"], "signature": "-t", "description": "Turn on autocommit of transactions. In this mode, each SQL command is automatically committed unless it is inside an explicit transaction block. In the default mode, commands are committed only when EXEC SQL COMMIT is issued."}, {"names": ["-v"], "signature": "-v", "description": "Print additional information including the version and the \"include\" path."}, {"names": ["--version"], "signature": "--version", "description": "Print the ecpg version and exit."}, {"names": ["-?", "--help"], "signature": "-? --help", "description": "Show help about ecpg command line arguments, and exit."}], "synopsis": ["ecpg [ option ...] file ..."], "environment": []}, "comparison_hash": "9b115ab9dbd18516028622d20fe8fe477e01f88cb80ad0615213dea618875d6d", "manual_language": "zh"}}}, "snapshot": {"facts": [{"label": "\u624b\u518c\u4e2d\u7684\u53ef\u6267\u884c\u7a0b\u5e8f", "value": "ecpg"}, {"label": "\u7a0b\u5e8f\u7248\u672c", "value": "18.6"}, {"label": "\u53c2\u8003\u6e05\u5355", "value": "\u5ba2\u6237\u7aef\u7a0b\u5e8f"}, {"label": "\u9009\u9879\u5b9a\u4e49\u7ec4", "value": "12"}], "tables": [{"key": "options", "rows": [{"summary": "\u81ea\u52a8\u4ece SQL \u4ee3\u7801\u751f\u6210\u67d0\u4e9b C \u4ee3\u7801\u3002\u76ee\u524d\uff0c\u8fd9\u9002\u7528\u4e8e EXEC SQL TYPE \u3002", "signature": {"url": "/docs/18/app-ecpg.html", "text": "-c"}}, {"summary": "\u8bbe\u7f6e\u517c\u5bb9\u6a21\u5f0f\u3002 mode \u53ef\u4ee5\u662f INFORMIX \u3001 INFORMIX_SE \uff0c\u6216 ORACLE \u3002", "signature": {"url": "/docs/18/app-ecpg.html", "text": "-C mode"}}, {"summary": "\u5b9a\u4e49\u4e00\u4e2a\u9884\u5904\u7406\u5668\u7b26\u53f7\uff0c\u7b49\u6548\u4e8e EXEC SQL DEFINE \u6307\u4ee4\u3002\u5982\u679c\u672a\u6307\u5b9a value \uff0c\u5219\u8be5\u7b26\u53f7\u4f1a\u88ab\u5b9a\u4e49\u4e3a\u503c 1 \u3002", "signature": {"url": "/docs/18/app-ecpg.html", "text": "-D symbol [= value ]"}}, {"summary": "\u5904\u7406\u5934\u6587\u4ef6\u3002\u6307\u5b9a\u8be5\u9009\u9879\u65f6\uff0c\u8f93\u51fa\u6587\u4ef6\u6269\u5c55\u540d\u53d8\u4e3a .h \u800c\u4e0d\u662f .c \uff0c\u9ed8\u8ba4\u8f93\u5165\u6587\u4ef6\u6269\u5c55\u540d\u4e5f\u53d8\u4e3a .pgh \u800c\u4e0d\u662f .pgc \u3002\u6b64\u5916\uff0c\u8fd8\u4f1a\u5f3a\u5236\u542f\u7528 -c \u9009\u9879\u3002", "signature": {"url": "/docs/18/app-ecpg.html", "text": "-h"}}, {"summary": "\u4e5f\u89e3\u6790\u7cfb\u7edf\u5305\u542b\u6587\u4ef6\u3002", "signature": {"url": "/docs/18/app-ecpg.html", "text": "-i"}}, {"summary": "\u6307\u5b9a\u4e00\u4e2a\u9644\u52a0\u7684\u5305\u542b\u6587\u4ef6\u641c\u7d22\u8def\u5f84\uff0c\u7528\u4e8e\u67e5\u627e\u901a\u8fc7 EXEC SQL INCLUDE \u5305\u542b\u7684\u6587\u4ef6\u3002\u9ed8\u8ba4\u8def\u5f84\u4f9d\u6b21\u4e3a . \uff08\u5f53\u524d\u76ee\u5f55\uff09\u3001 /usr/local/include \u3001\u7f16\u8bd1\u65f6\u5b9a\u4e49\u7684 PostgreSQL \u5305\u542b\u6587\u4ef6\u76ee\u5f55\uff08\u9ed8\u8ba4\uff1a /usr/local/pgsql/include \uff09\uff0c\u4ee5\u53ca /usr/include \u3002", "signature": {"url": "/docs/18/app-ecpg.html", "text": "-I directory"}}, {"summary": "\u6307\u5b9a ecpg \u5e94\u5c06\u5168\u90e8\u8f93\u51fa\u5199\u5165\u7ed9\u5b9a\u7684 filename \u3002\u5199\u6210 -o - \u53ef\u5c06\u5168\u90e8\u8f93\u51fa\u53d1\u9001\u5230\u6807\u51c6\u8f93\u51fa\u3002", "signature": {"url": "/docs/18/app-ecpg.html", "text": "-o filename"}}, {"summary": "\u9009\u62e9\u8fd0\u884c\u65f6\u884c\u4e3a\u3002\u9009\u9879\u53ef\u4ee5\u662f\u4e0b\u5217\u503c\u4e4b\u4e00\uff1a", "signature": {"url": "/docs/18/app-ecpg.html", "text": "-r option"}}, {"summary": "\u6253\u5f00\u4e8b\u52a1\u81ea\u52a8\u63d0\u4ea4\u3002\u5728\u6b64\u6a21\u5f0f\u4e0b\uff0c\u9664\u975e SQL \u547d\u4ee4\u4f4d\u4e8e\u663e\u5f0f\u4e8b\u52a1\u5757\u4e2d\uff0c\u5426\u5219\u6bcf\u6761 SQL \u547d\u4ee4\u90fd\u4f1a\u81ea\u52a8\u63d0\u4ea4\u3002\u5728\u9ed8\u8ba4\u6a21\u5f0f\u4e0b\uff0c\u53ea\u6709\u53d1\u51fa EXEC SQL COMMIT \u65f6\u624d\u4f1a\u63d0\u4ea4\u547d\u4ee4\u3002", "signature": {"url": "/docs/18/app-ecpg.html", "text": "-t"}}, {"summary": "\u6253\u5370\u9644\u52a0\u4fe1\u606f\uff0c\u5305\u62ec\u7248\u672c\u548c\u5305\u542b\u6587\u4ef6\u641c\u7d22\u8def\u5f84\u3002", "signature": {"url": "/docs/18/app-ecpg.html", "text": "-v"}}, {"summary": "\u6253\u5370 ecpg \u7248\u672c\u5e76\u9000\u51fa\u3002", "signature": {"url": "/docs/18/app-ecpg.html", "text": "--version"}}, {"summary": "\u663e\u793a\u5173\u4e8e ecpg \u547d\u4ee4\u884c\u53c2\u6570\u7684\u5e2e\u52a9\u4fe1\u606f\uff0c\u5e76\u9000\u51fa\u3002", "signature": {"url": "/docs/18/app-ecpg.html", "text": "-? --help"}}], "title": "\u624b\u518c\u4e2d\u7684\u9009\u9879", "columns": [{"key": "signature", "label": "\u9009\u9879\u4e0e\u53c2\u6570"}, {"key": "summary", "label": "\u8bf4\u660e"}]}], "options": [{"names": ["-c"], "summary": "Automatically generate certain C code from SQL code. Currently, this works for EXEC SQL TYPE .", "signature": "-c", "source_url": "/docs/18/app-ecpg.html", "description": "Automatically generate certain C code from SQL code. Currently, this works for EXEC SQL TYPE ."}, {"names": ["-C mode"], "summary": "Set a compatibility mode. mode can be INFORMIX , INFORMIX_SE , or ORACLE .", "signature": "-C mode", "source_url": "/docs/18/app-ecpg.html", "description": "Set a compatibility mode. mode can be INFORMIX , INFORMIX_SE , or ORACLE ."}, {"names": ["-D symbol [= value ]"], "summary": "Define a preprocessor symbol, equivalently to the EXEC SQL DEFINE directive. If no value is specified, the symbol is defined with the value 1 .", "signature": "-D symbol [= value ]", "source_url": "/docs/18/app-ecpg.html", "description": "Define a preprocessor symbol, equivalently to the EXEC SQL DEFINE directive. If no value is specified, the symbol is defined with the value 1 ."}, {"names": ["-h"], "summary": "Process header files. When this option is specified, the output file extension becomes .h not .c , and the default input file extension is .pgh not .pgc . Also, the -c option is forced on.", "signature": "-h", "source_url": "/docs/18/app-ecpg.html", "description": "Process header files. When this option is specified, the output file extension becomes .h not .c , and the default input file extension is .pgh not .pgc . Also, the -c option is forced on."}, {"names": ["-i"], "summary": "Parse system include files as well.", "signature": "-i", "source_url": "/docs/18/app-ecpg.html", "description": "Parse system include files as well."}, {"names": ["-I directory"], "summary": "Specify an additional include path, used to find files included via EXEC SQL INCLUDE . Defaults are . (current directory), /usr/local/include , the PostgreSQL include directory which is defined at compile time (default: /usr/local/pgsql/include ), and /usr/include , in that order.", "signature": "-I directory", "source_url": "/docs/18/app-ecpg.html", "description": "Specify an additional include path, used to find files included via EXEC SQL INCLUDE . Defaults are . (current directory), /usr/local/include , the PostgreSQL include directory which is defined at compile time (default: /usr/local/pgsql/include ), and /usr/include , in that order."}, {"names": ["-o filename"], "summary": "Specifies that ecpg should write all its output to the given filename . Write -o - to send all output to standard output.", "signature": "-o filename", "source_url": "/docs/18/app-ecpg.html", "description": "Specifies that ecpg should write all its output to the given filename . Write -o - to send all output to standard output."}, {"names": ["-r option"], "summary": "Selects run-time behavior. Option can be one of the following:", "signature": "-r option", "source_url": "/docs/18/app-ecpg.html", "description": "Selects run-time behavior. Option can be one of the following: no_indicator Do not use indicators but instead use special values to represent null values. Historically there have been databases using this approach. prepare Prepare all statements before using them. Libecpg will keep a cache of prepared statements and reuse a statement if it gets executed again. If the cache runs full, libecpg will free the least used statement. questionmarks Allow question mark as placeholder for compatibility reasons. This used to be the default long ago."}, {"names": ["-t"], "summary": "Turn on autocommit of transactions. In this mode, each SQL command is automatically committed unless it is inside an explicit transaction block. In the default mode, commands are committed only when EXEC SQL COMMIT is issued.", "signature": "-t", "source_url": "/docs/18/app-ecpg.html", "description": "Turn on autocommit of transactions. In this mode, each SQL command is automatically committed unless it is inside an explicit transaction block. In the default mode, commands are committed only when EXEC SQL COMMIT is issued."}, {"names": ["-v"], "summary": "Print additional information including the version and the \"include\" path.", "signature": "-v", "source_url": "/docs/18/app-ecpg.html", "description": "Print additional information including the version and the \"include\" path."}, {"names": ["--version"], "summary": "Print the ecpg version and exit.", "signature": "--version", "source_url": "/docs/18/app-ecpg.html", "description": "Print the ecpg version and exit."}, {"names": ["-?", "--help"], "summary": "Show help about ecpg command line arguments, and exit.", "signature": "-? --help", "source_url": "/docs/18/app-ecpg.html", "description": "Show help about ecpg command line arguments, and exit."}], "related": [], "release": {"ref": "https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2", "label": "18.6", "major": "18", "channel": "stable", "manifest": {"pdf": {"A4": {"url": "/files/documentation/pdf/18/postgresql-18-A4.pdf", "bytes": 15865106, "pages": 3154, "sha256": "19512c405da53f9f7fcf0abba359223aa65f021be025bf3411381918f92e3190", "built_at": "2026-09-26"}, "US": {"url": "/files/documentation/pdf/18/postgresql-18-US.pdf", "bytes": 15748059, "pages": 3328, "sha256": "facbe6c229e598b872d3d98bef53308f46e06746006fa4590de9a7de9dd46319", "built_at": "2026-09-26"}}, "tree": "18", "index": "index.html", "major": "18", "pages": 1148, "release": "18.6", "source_url": "https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2", "svg_assets": 3, "source_mode": "en SGML built with pinned official archive", "source_sha256": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"}, "revision": "ee8d1a3612338fd9adf250730cb640fcc5233b5491337cc00a316a44e3a0b9f8", "evidence_kind": "English manual and source declarations", "source_sha256": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"}, "sources": [{"url": "https://pg.center/docs/18/app-ecpg.html", "file": "app-ecpg.html", "label": "18.6 English manual \u00b7 app-ecpg.html", "anchor": "", "sha256": "46e369f91d3516a728d286bbeab8bf7500f9e5016436847622154cb3777b5173", "language": "en", "original_url": "/docs/18/app-ecpg.html"}, {"url": "https://pg.center/docs/18/reference-client.html", "file": "reference-client.html", "label": "Client applications inventory", "anchor": "", "sha256": "68f726af77272fe73a827be2b7b5958d0f2239a6f8ed44264e9d42496bfa4fd0", "language": "en", "original_url": "/docs/18/reference-client.html"}], "sections": [], "synopsis": ["ecpg [ option ...] file ..."], "signature": "ecpg [ option ...] file ...", "description": ["ecpg \u2014 \u5d4c\u5165\u5f0f SQL C \u9884\u5904\u7406\u5668"], "environment": [], "manual_html": "<div><div class=\"refentry\" id=\"APP-ECPG\">\n<div class=\"titlepage\"></div>\n<div class=\"refnamediv\">\n<h2><span class=\"refentrytitle\"><span class=\"application\">ecpg</span></span></h2>\n<p lang=\"zh\"><span class=\"application\">ecpg</span> \u2014 \u5d4c\u5165\u5f0f SQL C \u9884\u5904\u7406\u5668</p>\n</div>\n<div class=\"refsynopsisdiv\">\n<h2 lang=\"zh\">\u5927\u7eb2</h2>\n<div class=\"cmdsynopsis\">\n<p id=\"id-1.9.4.8.4.1\"><code class=\"command\">ecpg</code> [<em class=\"replaceable\"><code>option</code></em>...] <em class=\"replaceable\"><code>file</code></em>...</p>\n</div>\n</div>\n<div class=\"refsect1\" id=\"APP-ECPG-DESCRIPTION\">\n<h2 lang=\"zh\">\u8bf4\u660e</h2>\n<p lang=\"zh\"><code class=\"command\">ecpg</code>\u662f\u4f9b C \u7a0b\u5e8f\u4f7f\u7528\u7684\u5d4c\u5165\u5f0f SQL \u9884\u5904\u7406\u5668\u3002\u5b83\u4f1a\u628a\u5d4c\u5165\u4e86 SQL \u8bed\u53e5\u7684 C \u7a0b\u5e8f\u8f6c\u6362\u6210\u666e\u901a C \u4ee3\u7801\uff0c\u65b9\u6cd5\u662f\u5c06 SQL \u8c03\u7528\u66ff\u6362\u4e3a\u7279\u6b8a\u7684\u51fd\u6570\u8c03\u7528\u3002\u751f\u6210\u7684\u8f93\u51fa\u6587\u4ef6\u968f\u540e\u53ef\u4ee5\u7531\u4efb\u4f55 C \u7f16\u8bd1\u5668\u5de5\u5177\u94fe\u5904\u7406\u3002</p>\n<p lang=\"zh\"><code class=\"command\">ecpg</code>\u4f1a\u5c06\u547d\u4ee4\u884c\u4e2d\u7ed9\u51fa\u7684\u6bcf\u4e2a\u8f93\u5165\u6587\u4ef6\u8f6c\u6362\u6210\u5bf9\u5e94\u7684 C \u8f93\u51fa\u6587\u4ef6\u3002\u82e5\u8f93\u5165\u6587\u4ef6\u540d\u6ca1\u6709\u4efb\u4f55\u6269\u5c55\u540d\uff0c\u5219\u5047\u5b9a\u5176\u6269\u5c55\u540d\u4e3a<code class=\"filename\">.pgc</code>\u3002\u968f\u540e\u4f1a\u628a\u8be5\u6587\u4ef6\u7684\u6269\u5c55\u540d\u66ff\u6362\u4e3a <code class=\"filename\">.c</code>\uff0c\u4ee5\u6784\u9020\u8f93\u51fa\u6587\u4ef6\u540d\u3002\u4e0d\u8fc7\uff0c\u4e5f\u53ef\u4ee5\u7528<code class=\"option\">-o</code>\u9009\u9879\u8986\u76d6\u8f93\u51fa\u6587\u4ef6\u540d\u3002</p>\n<p lang=\"zh\">\u5982\u679c\u8f93\u5165\u6587\u4ef6\u540d\u53ea\u662f<code class=\"literal\">-</code>\uff0c<code class=\"command\">ecpg</code>\u5c31\u4f1a\u4ece\u6807\u51c6\u8f93\u5165\u8bfb\u53d6\u7a0b\u5e8f\uff08\u5e76\u5199\u5230\u6807\u51c6\u8f93\u51fa\uff0c\u9664\u975e\u4f7f\u7528<code class=\"option\">-o</code>\u8986\u76d6\u8be5\u884c\u4e3a\uff09\u3002</p>\n<p lang=\"zh\">\u672c\u53c2\u8003\u9875\u4e0d\u63cf\u8ff0\u5d4c\u5165\u5f0f SQL \u8bed\u8a00\u3002\u6709\u5173\u8be5\u4e3b\u9898\u7684\u66f4\u591a\u4fe1\u606f\uff0c\u89c1<a class=\"xref\" href=\"/docs/18/ecpg.html\" title=\"\u7b2c\u00a034\u00a0\u7ae0\u00a0ECPG \u2014 C \u4e2d\u7684\u5d4c\u5165\u5f0f SQL\">\u7b2c\u00a034\u00a0\u7ae0</a>\u3002</p>\n</div>\n<div class=\"refsect1\" id=\"id-1.9.4.8.6\">\n<h2 lang=\"zh\">\u9009\u9879</h2>\n<p lang=\"zh\"><code class=\"command\">ecpg</code>\u63a5\u53d7\u4ee5\u4e0b\u547d\u4ee4\u884c\u53c2\u6570\uff1a</p>\n<div class=\"variablelist\">\n<dl class=\"variablelist\">\n<dt><span class=\"term\"><code class=\"option\">-c</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u81ea\u52a8\u4ece SQL \u4ee3\u7801\u751f\u6210\u67d0\u4e9b C \u4ee3\u7801\u3002\u76ee\u524d\uff0c\u8fd9\u9002\u7528\u4e8e<code class=\"literal\">EXEC SQL TYPE</code>\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-C <em class=\"replaceable\"><code>mode</code></em></code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u8bbe\u7f6e\u517c\u5bb9\u6a21\u5f0f\u3002<em class=\"replaceable\"><code>mode</code></em>\u53ef\u4ee5\u662f<code class=\"literal\">INFORMIX</code>\u3001<code class=\"literal\">INFORMIX_SE</code>\uff0c\u6216<code class=\"literal\">ORACLE</code>\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-D <em class=\"replaceable\"><code>symbol</code></em>[=<em class=\"replaceable\"><code>value</code></em>]</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u5b9a\u4e49\u4e00\u4e2a\u9884\u5904\u7406\u5668\u7b26\u53f7\uff0c\u7b49\u6548\u4e8e<code class=\"command\">EXEC SQL DEFINE</code>\u6307\u4ee4\u3002\u5982\u679c\u672a\u6307\u5b9a<em class=\"replaceable\"><code>value</code></em>\uff0c\u5219\u8be5\u7b26\u53f7\u4f1a\u88ab\u5b9a\u4e49\u4e3a\u503c<code class=\"literal\">1</code>\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-h</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u5904\u7406\u5934\u6587\u4ef6\u3002\u6307\u5b9a\u8be5\u9009\u9879\u65f6\uff0c\u8f93\u51fa\u6587\u4ef6\u6269\u5c55\u540d\u53d8\u4e3a<code class=\"literal\">.h</code>\u800c\u4e0d\u662f<code class=\"literal\">.c</code>\uff0c\u9ed8\u8ba4\u8f93\u5165\u6587\u4ef6\u6269\u5c55\u540d\u4e5f\u53d8\u4e3a<code class=\"literal\">.pgh</code>\u800c\u4e0d\u662f<code class=\"literal\">.pgc</code>\u3002\u6b64\u5916\uff0c\u8fd8\u4f1a\u5f3a\u5236\u542f\u7528<code class=\"option\">-c</code>\u9009\u9879\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-i</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u4e5f\u89e3\u6790\u7cfb\u7edf\u5305\u542b\u6587\u4ef6\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-I <em class=\"replaceable\"><code>directory</code></em></code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6307\u5b9a\u4e00\u4e2a\u9644\u52a0\u7684\u5305\u542b\u6587\u4ef6\u641c\u7d22\u8def\u5f84\uff0c\u7528\u4e8e\u67e5\u627e\u901a\u8fc7<code class=\"literal\">EXEC SQL INCLUDE</code>\u5305\u542b\u7684\u6587\u4ef6\u3002\u9ed8\u8ba4\u8def\u5f84\u4f9d\u6b21\u4e3a<code class=\"filename\">.</code>\uff08\u5f53\u524d\u76ee\u5f55\uff09\u3001<code class=\"filename\">/usr/local/include</code>\u3001\u7f16\u8bd1\u65f6\u5b9a\u4e49\u7684<span class=\"productname\">PostgreSQL</span>\u5305\u542b\u6587\u4ef6\u76ee\u5f55\uff08\u9ed8\u8ba4\uff1a<code class=\"filename\">/usr/local/pgsql/include</code>\uff09\uff0c\u4ee5\u53ca<code class=\"filename\">/usr/include</code>\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-o <em class=\"replaceable\"><code>filename</code></em></code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6307\u5b9a<code class=\"command\">ecpg</code>\u5e94\u5c06\u5168\u90e8\u8f93\u51fa\u5199\u5165\u7ed9\u5b9a\u7684<em class=\"replaceable\"><code>filename</code></em>\u3002\u5199\u6210<code class=\"literal\">-o -</code>\u53ef\u5c06\u5168\u90e8\u8f93\u51fa\u53d1\u9001\u5230\u6807\u51c6\u8f93\u51fa\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-r <em class=\"replaceable\"><code>option</code></em></code></span></dt>\n<dd>\n<p lang=\"zh\">\u9009\u62e9\u8fd0\u884c\u65f6\u884c\u4e3a\u3002\u9009\u9879\u53ef\u4ee5\u662f\u4e0b\u5217\u503c\u4e4b\u4e00\uff1a</p>\n<div class=\"variablelist\">\n<dl class=\"variablelist\">\n<dt><span class=\"term\"><code class=\"option\">no_indicator</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u4e0d\u4f7f\u7528\u6307\u793a\u7b26\uff0c\u800c\u6539\u7528\u7279\u6b8a\u503c\u8868\u793a\u7a7a\u503c\u3002\u5386\u53f2\u4e0a\u66fe\u6709\u6570\u636e\u5e93\u91c7\u7528\u8fd9\u79cd\u65b9\u5f0f\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">prepare</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u5728\u4f7f\u7528\u524d\u9884\u5907\u6240\u6709\u8bed\u53e5\u3002libecpg\u4f1a\u7ef4\u62a4\u4e00\u4e2a\u5df2\u9884\u5907\u8bed\u53e5\u7684\u7f13\u5b58\uff1b\u5982\u679c\u67d0\u6761\u8bed\u53e5\u518d\u6b21\u6267\u884c\uff0c\u5c31\u4f1a\u590d\u7528\u5b83\u3002\u82e5\u7f13\u5b58\u5df2\u6ee1\uff0clibecpg\u4f1a\u91ca\u653e\u4f7f\u7528\u6b21\u6570\u6700\u5c11\u7684\u8bed\u53e5\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">questionmarks</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u51fa\u4e8e\u517c\u5bb9\u6027\u539f\u56e0\uff0c\u5141\u8bb8\u4f7f\u7528\u95ee\u53f7\u4f5c\u4e3a\u5360\u4f4d\u7b26\u3002\u8fd9\u5728\u5f88\u4e45\u4ee5\u524d\u66fe\u662f\u9ed8\u8ba4\u884c\u4e3a\u3002</p>\n</p>\n</dd>\n</dl>\n</div>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-t</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6253\u5f00\u4e8b\u52a1\u81ea\u52a8\u63d0\u4ea4\u3002\u5728\u6b64\u6a21\u5f0f\u4e0b\uff0c\u9664\u975e SQL \u547d\u4ee4\u4f4d\u4e8e\u663e\u5f0f\u4e8b\u52a1\u5757\u4e2d\uff0c\u5426\u5219\u6bcf\u6761 SQL \u547d\u4ee4\u90fd\u4f1a\u81ea\u52a8\u63d0\u4ea4\u3002\u5728\u9ed8\u8ba4\u6a21\u5f0f\u4e0b\uff0c\u53ea\u6709\u53d1\u51fa<code class=\"command\">EXEC SQL COMMIT</code>\u65f6\u624d\u4f1a\u63d0\u4ea4\u547d\u4ee4\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-v</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6253\u5370\u9644\u52a0\u4fe1\u606f\uff0c\u5305\u62ec\u7248\u672c\u548c\u5305\u542b\u6587\u4ef6\u641c\u7d22\u8def\u5f84\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">--version</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6253\u5370<span class=\"application\">ecpg</span>\u7248\u672c\u5e76\u9000\u51fa\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\"><code class=\"option\">-?</code><br/></span><span class=\"term\"><code class=\"option\">--help</code></span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u663e\u793a\u5173\u4e8e<span class=\"application\">ecpg</span>\u547d\u4ee4\u884c\u53c2\u6570\u7684\u5e2e\u52a9\u4fe1\u606f\uff0c\u5e76\u9000\u51fa\u3002</p>\n</p>\n</dd>\n</dl>\n</div>\n</div>\n<div class=\"refsect1\" id=\"id-1.9.4.8.7\">\n<h2 lang=\"zh\">\u6ce8\u89e3</h2>\n<p lang=\"zh\">\u5728\u7f16\u8bd1\u9884\u5904\u7406\u540e\u7684 C \u4ee3\u7801\u6587\u4ef6\u65f6\uff0c\u7f16\u8bd1\u5668\u5fc5\u987b\u80fd\u591f\u5728<span class=\"productname\">PostgreSQL</span>\u7684\u5305\u542b\u6587\u4ef6\u76ee\u5f55\u4e2d\u627e\u5230<span class=\"application\">ECPG</span>\u5934\u6587\u4ef6\u3002\u56e0\u6b64\uff0c\u8c03\u7528\u7f16\u8bd1\u5668\u65f6\u4f60\u53ef\u80fd\u9700\u8981\u4f7f\u7528<code class=\"option\">-I</code>\u9009\u9879\uff08\u4f8b\u5982<code class=\"literal\">-I/usr/local/pgsql/include</code>\uff09\u3002</p>\n<p lang=\"zh\">\u4f7f\u7528\u5d4c\u5165\u5f0f SQL \u7684 C \u7a0b\u5e8f\u5fc5\u987b\u4e0e<code class=\"filename\">libecpg</code>\u5e93\u94fe\u63a5\uff0c\u4f8b\u5982\u53ef\u4f7f\u7528\u94fe\u63a5\u5668\u9009\u9879<code class=\"literal\">-L/usr/local/pgsql/lib -lecpg</code>\u3002</p>\n<p lang=\"zh\">\u5f53\u524d\u5b89\u88c5\u4f7f\u7528\u7684\u8fd9\u4e24\u4e2a\u76ee\u5f55\u53ef\u901a\u8fc7<a class=\"xref\" href=\"/docs/18/app-pgconfig.html\" title=\"pg_config\"><span class=\"refentrytitle\"><span class=\"application\">pg_config</span></span></a>\u67e5\u8be2\u3002</p>\n</div>\n<div class=\"refsect1\" id=\"id-1.9.4.8.8\">\n<h2 lang=\"zh\">\u793a\u4f8b</h2>\n<p lang=\"zh\">\u5982\u679c\u4f60\u6709\u4e00\u4e2a\u540d\u4e3a<code class=\"filename\">prog1.pgc</code>\u7684\u5d4c\u5165\u5f0f SQL C \u6e90\u6587\u4ef6\uff0c\u5c31\u53ef\u4ee5\u4f7f\u7528\u4e0b\u5217\u547d\u4ee4\u5e8f\u5217\u521b\u5efa\u4e00\u4e2a\u53ef\u6267\u884c\u7a0b\u5e8f\uff1a</p>\n<pre class=\"programlisting\">ecpg prog1.pgc\ncc -I/usr/local/pgsql/include -c prog1.c\ncc -o prog1 prog1.o -L/usr/local/pgsql/lib -lecpg\n</pre>\n</div>\n</div></div>", "manual_path": "app-ecpg.html", "localization": {"status": "complete", "sources": [{"url": "/docs/18/app-ecpg.html", "method": "same-major semantic node", "sha256": "4a860cfce47e879f368248d96b9884e873055ee6bc252d15424bfb9ad6f9638b", "language": "zh", "matched_nodes": ["#APP-ECPG/div[2]/p[1]", "#APP-ECPG/div[3]/h2[0]", "#APP-ECPG/div[4]/p[1]", "#APP-ECPG/div[4]/p[2]", "#APP-ECPG/div[4]/p[3]", "#APP-ECPG/div[4]/p[4]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[11]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[13]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[15]/div[1]/dl[0]/dd[1]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[15]/div[1]/dl[0]/dd[3]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[15]/div[1]/dl[0]/dd[5]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[17]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[19]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[1]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[21]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[23]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[3]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[5]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[7]", "#APP-ECPG/div[5]/div[2]/dl[0]/dd[9]", "#APP-ECPG/div[5]/p[1]", "#APP-ECPG/div[6]/h2[0]", "#APP-ECPG/div[6]/p[1]", "#APP-ECPG/div[6]/p[2]", "#APP-ECPG/div[6]/p[3]", "#APP-ECPG/div[7]/h2[0]", "#APP-ECPG/div[7]/p[1]"]}], "language": "zh", "original_text": {"/versions/18/description/0": "ecpg \u2014 embedded SQL C preprocessor", "/versions/18/facts/0/label": "Documented executable", "/versions/18/facts/1/label": "Executable version", "/versions/18/facts/2/label": "Reference inventory", "/versions/18/facts/2/value": "Client applications", "/versions/18/facts/3/label": "Option definition groups", "/versions/18/tables/0/title": "Documented options", "/versions/18/tables/0/rows/0/summary": "Automatically generate certain C code from SQL code. Currently, this works for EXEC SQL TYPE .", "/versions/18/tables/0/rows/1/summary": "Set a compatibility mode. mode can be INFORMIX , INFORMIX_SE , or ORACLE .", "/versions/18/tables/0/rows/2/summary": "Define a preprocessor symbol, equivalently to the EXEC SQL DEFINE directive. If no value is specified, the symbol is defined with the value 1 .", "/versions/18/tables/0/rows/3/summary": "Process header files. When this option is specified, the output file extension becomes .h not .c , and the default input file extension is .pgh not .pgc . Also, the -c option is forced on.", "/versions/18/tables/0/rows/4/summary": "Parse system include files as well.", "/versions/18/tables/0/rows/5/summary": "Specify an additional include path, used to find files included via EXEC SQL INCLUDE . Defaults are . (current directory), /usr/local/include , the PostgreSQL include directory which is defined at compile time (default: /usr/local/pgsql/include ), and /usr/include , in that order.", "/versions/18/tables/0/rows/6/summary": "Specifies that ecpg should write all its output to the given filename . Write -o - to send all output to standard output.", "/versions/18/tables/0/rows/7/summary": "Selects run-time behavior. Option can be one of the following:", "/versions/18/tables/0/rows/8/summary": "Turn on autocommit of transactions. In this mode, each SQL command is automatically committed unless it is inside an explicit transaction block. In the default mode, commands are committed only when EXEC SQL COMMIT is issued.", "/versions/18/tables/0/rows/9/summary": "Print additional information including the version and the \"include\" path.", "/versions/18/tables/0/columns/0/label": "Option and arguments", "/versions/18/tables/0/columns/1/label": "Description", "/versions/18/tables/0/rows/10/summary": "Print the ecpg version and exit.", "/versions/18/tables/0/rows/11/summary": "Show help about ecpg command line arguments, and exit."}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "6dacf9415a4b8de6f6ad52b5cdfe4465386111f3555029eb4d2826913323f01d"}, "comparison_data": {"options": [{"names": ["-c"], "signature": "-c", "description": "Automatically generate certain C code from SQL code. Currently, this works for EXEC SQL TYPE ."}, {"names": ["-C mode"], "signature": "-C mode", "description": "Set a compatibility mode. mode can be INFORMIX , INFORMIX_SE , or ORACLE ."}, {"names": ["-D symbol [= value ]"], "signature": "-D symbol [= value ]", "description": "Define a preprocessor symbol, equivalently to the EXEC SQL DEFINE directive. If no value is specified, the symbol is defined with the value 1 ."}, {"names": ["-h"], "signature": "-h", "description": "Process header files. When this option is specified, the output file extension becomes .h not .c , and the default input file extension is .pgh not .pgc . Also, the -c option is forced on."}, {"names": ["-i"], "signature": "-i", "description": "Parse system include files as well."}, {"names": ["-I directory"], "signature": "-I directory", "description": "Specify an additional include path, used to find files included via EXEC SQL INCLUDE . Defaults are . (current directory), /usr/local/include , the PostgreSQL include directory which is defined at compile time (default: /usr/local/pgsql/include ), and /usr/include , in that order."}, {"names": ["-o filename"], "signature": "-o filename", "description": "Specifies that ecpg should write all its output to the given filename . Write -o - to send all output to standard output."}, {"names": ["-r option"], "signature": "-r option", "description": "Selects run-time behavior. Option can be one of the following: no_indicator Do not use indicators but instead use special values to represent null values. Historically there have been databases using this approach. prepare Prepare all statements before using them. Libecpg will keep a cache of prepared statements and reuse a statement if it gets executed again. If the cache runs full, libecpg will free the least used statement. questionmarks Allow question mark as placeholder for compatibility reasons. This used to be the default long ago."}, {"names": ["-t"], "signature": "-t", "description": "Turn on autocommit of transactions. In this mode, each SQL command is automatically committed unless it is inside an explicit transaction block. In the default mode, commands are committed only when EXEC SQL COMMIT is issued."}, {"names": ["-v"], "signature": "-v", "description": "Print additional information including the version and the \"include\" path."}, {"names": ["--version"], "signature": "--version", "description": "Print the ecpg version and exit."}, {"names": ["-?", "--help"], "signature": "-? --help", "description": "Show help about ecpg command line arguments, and exit."}], "synopsis": ["ecpg [ option ...] file ..."], "environment": []}, "comparison_hash": "9b115ab9dbd18516028622d20fe8fe477e01f88cb80ad0615213dea618875d6d", "manual_language": "zh"}, "comparison": {"left": "11", "right": "12", "status": "changed", "diff": "--- PostgreSQL 11\n+++ PostgreSQL 12\n@@ -16,11 +16,11 @@\n       \"signature\": \"-C mode\"\n     },\n     {\n-      \"description\": \"Define a C preprocessor symbol.\",\n+      \"description\": \"Define a preprocessor symbol, equivalently to the EXEC SQL DEFINE directive. If no value is specified, the symbol is defined with the value 1 .\",\n       \"names\": [\n-        \"-D symbol\"\n+        \"-D symbol [= value ]\"\n       ],\n-      \"signature\": \"-D symbol\"\n+      \"signature\": \"-D symbol [= value ]\"\n     },\n     {\n       \"description\": \"Process header files. When this option is specified, the output file extension becomes .h not .c , and the default input file extension is .pgh not .pgc . Also, the -c option is forced on.\","}}