{"id":42052,"date":"2023-01-19T00:05:23","date_gmt":"2023-12-18T11:26:25","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e7%94%a8%e4%ba%86%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%81%e7%a7%bb%e5%b7%a5%e5%85%b7%ef%bc%88%e4%bb%8eoracle%e8%bf%81%e7%a7%bb%e5%88%b0postgresql%ef%bc%89%e3%80%82\/"},"modified":"2024-04-29T10:27:38","modified_gmt":"2024-04-29T02:27:38","slug":"%e6%88%91%e7%94%a8%e4%ba%86%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%81%e7%a7%bb%e5%b7%a5%e5%85%b7%ef%bc%88%e4%bb%8eoracle%e8%bf%81%e7%a7%bb%e5%88%b0postgresql%ef%bc%89%e3%80%82","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e7%94%a8%e4%ba%86%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%81%e7%a7%bb%e5%b7%a5%e5%85%b7%ef%bc%88%e4%bb%8eoracle%e8%bf%81%e7%a7%bb%e5%88%b0postgresql%ef%bc%89%e3%80%82\/","title":{"rendered":"\u6211\u7528\u4e86\u6570\u636e\u5e93\u8fc1\u79fb\u5de5\u5177\uff08\u4eceOracle\u8fc1\u79fb\u5230PostgreSQL\uff09"},"content":{"rendered":"<p>\u8fd9\u662fPostgreSQL Advent Calendar 2022\u7684\u7b2c13\u5929\u7684\u5e16\u5b50\u3002<\/p>\n<p>\u6628\u5929\uff0c\u6211\u5728@hmatsu47\u7684Supabase\u4e0a\u5c1d\u8bd5\u4e86\u4e00\u4e0b\u4ece\u5e94\u7528\u7a0b\u5e8f\u4e2d\u4f7f\u7528TCE\uff08\u900f\u660e\u5217\u52a0\u5bc6\uff09\u3002<\/p>\n<h2>\u9996\u5148<\/h2>\n<p>\u7531\u4e8e\u8fd9\u662f\u6211\u7b2c\u4e00\u6b21\u8fdb\u884c\u6570\u636e\u5e93\u8fc1\u79fb\uff0c\u53ef\u80fd\u4f1a\u6709\u4e00\u4e9b\u9519\u8bef\uff08\u6b22\u8fce\u63d0\u51fa\u6307\u6b63\uff01\uff09\u4e5f\u8bf7\u8c05\u89e3\u6211\u5728\u4f7f\u7528PostgreSQL\u65b9\u9762\u7684\u7ecf\u9a8c\u8f83\u5c11\u3002<\/p>\n<h2>\u8fd9\u6b21\u7684\u76ee\u6807<\/h2>\n<p>\u76ee\u524d\u7684\u60c5\u51b5\u662f\u9884\u8ba1\u5c06\u4f7f\u7528\u7684Oracle\u6570\u636e\u5e93\u8fc1\u79fb\u5230PostgreSQL\u3002<br \/>\n\u4ee5\u4e0b\u53ef\u80fd\u662f\u5176\u4f18\u70b9\uff1a<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u30b3\u30b9\u30c8\u30c0\u30a6\u30f3<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\u4ed6\u306e\u5546\u7528DBMS\u3068\u5909\u308f\u3089\u306a\u3044\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9<\/ul>\n<h2>\u5173\u4e8eDB\u8fc1\u79fb\u5de5\u5177<\/h2>\n<p>\u672c\u6b21\u4f7f\u7528ora2pg\u5de5\u5177\uff0c\u4eceOracle\u4e2d\u63d0\u53d6\u4e86DDL\u5b9a\u4e49\u7b49\u5185\u5bb9\uff0c\u5b8c\u6210\u4e86\u5411PostgreSQL 15\u7248\u672c\u7684\u8fc1\u79fb\u3002<\/p>\n<blockquote><p>ora2pg\u662f\u4e00\u79cd\u4f7f\u7528Perl\u7f16\u5199\u7684\u5f00\u6e90\u8f6f\u4ef6\uff0c\u53ef\u4ee5\u5c06Oracle\u6216MySQL\u6570\u636e\u5e93\u8fc1\u79fb\u5230PostgreSQL\u3002\u60a8\u53ef\u4ee5\u5728\u6b64\u5904\u4e0b\u8f7d\u3002\u6700\u65b0\u7248\u672c\u4e3a23.2\u3002<\/p><\/blockquote>\n<h2>\u73af\u5883<\/h2>\n<p>\u64cd\u4f5c\u7cfb\u7edf\uff1aCentOS<br \/>\n\u7248\u672c\uff1a7.5<br \/>\n\u6570\u636e\u5e93\u2460\uff1aOracle12c<br \/>\n\u6570\u636e\u5e93\u2461\uff1aPostgreSQL15<\/p>\n<h2>\u5b89\u88c5\u6b65\u9aa4<\/h2>\n<p>\u7531\u4e8e\u672c\u6b21\u662f\u79bb\u7ebf\u8fdb\u884c\uff0c\u6211\u4eec\u4e0b\u8f7d\u4e86\u8d44\u6e90\u5e76\u901a\u8fc7Make\u547d\u4ee4\u8fdb\u884c\u6784\u5efa\u3002<br \/>\n\u8fd8\u6709\u4e00\u79cd\u65b9\u6cd5\u662f\u901a\u8fc7CPAN\u7b49\u8fdb\u884c\u5b89\u88c5\u3002<br \/>\n\u53e6\u5916\uff0c\u5728\u5b89\u88c5ora2pg\u4e4b\u524d\uff0c\u8fd8\u9700\u8981\u786e\u4fddPerl\u7684\u7248\u672c\u57285.16\u4ee5\u4e0a\u3002<\/p>\n<pre class=\"post-pre\"><code>$ perl -v\r\n\r\nThis is perl 5, version 30, subversion 3 (v5.30.3) built for darwin-thread-multi-2level\r\n(with 2 registered patches, see perl -V for more detail)\r\n<\/code><\/pre>\n<h3>\u6211\u5011\u6e96\u5099\u7684\u8cc7\u6750\u5982\u4e0b\u5217\u6240\u793a\u3002<\/h3>\n<blockquote><p>\u4f7f\u7528WinSCP\u7b49\u5de5\u5177\u5c06\u8d44\u6750\u5b58\u50a8\u5230\u6307\u5b9a\u4f4d\u7f6e\u3002<\/p><\/blockquote>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">ora2pg<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">DBD::Oracle<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">DBI<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">Time-Hires<\/ul>\n<pre class=\"post-pre\"><code>$ tar zxf ora2pg.tar.gz\r\n$ cd ora2pg\r\n$ perl Makefile.PL\r\n$ make &amp; make install\r\n$ ll \/usr\/local\/bin\/ora2pg\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>$ tar zxf DBD-Oracle-1.83.tar.gz\r\n$ cd DBD-Oracle-1.83\r\n$ perl Makefile.PL\r\n$ make &amp; make install\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>$ tar zxf DBI-1.643.tar.gz\r\n$ cd DBI-1.643\r\n$ perl Makefile.PL\r\n$ make &amp; make install\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>$ tar zxf Time-HiRes-1.9764.tar.gz\r\n$ cd Time-HiRes-1.9764\r\n$ perl Makefile.PL\r\n$ make &amp; make install\r\n<\/code><\/pre>\n<h2>\u6267\u884c\u547d\u4ee4<\/h2>\n<h3>1. \u4fee\u6539conf\u6587\u4ef6 conf<\/h3>\n<pre class=\"post-pre\"><code><span class=\"c\"># ORACLE\u63a5\u7d9a\u60c5\u5831\r\n<\/span><span class=\"n\">ORACLE_DSN<\/span>      <span class=\"n\">dbi<\/span>:<span class=\"n\">Oracle<\/span>:<span class=\"n\">host<\/span>=<span class=\"n\">localhost<\/span>;<span class=\"n\">sid<\/span>=<span class=\"n\">userinfo<\/span>;<span class=\"n\">port<\/span>=<span class=\"m\">1521<\/span>\r\n<span class=\"n\">ORACLE_USER<\/span>     <span class=\"n\">user<\/span>\r\n<span class=\"n\">ORACLE_PWD<\/span>      <span class=\"n\">password<\/span>\r\n<span class=\"n\">SCHEMA<\/span> <span class=\"n\">USERINFO<\/span>\r\n\r\n<span class=\"c\"># \u62e1\u5f35\u6a5f\u80fd\uff1aORAFCE\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\u306f\u30011\u3092\u8a2d\u5b9a\r\n<\/span><span class=\"n\">ORAFCE<\/span> <span class=\"m\">0<\/span>\r\n<\/code><\/pre>\n<h3>2.\u548cOracle\u8fdb\u884c\u8fde\u63a5\u786e\u8ba4<\/h3>\n<pre class=\"post-pre\"><code>$ ora2pg -c .\/config\/ora2pg.conf -t SHOW_VERSION\r\nOracle Database 12c Enterprise Edition Release 12.2.0.1.0\r\n<\/code><\/pre>\n<h3>3. \u5982\u679c\u8fdb\u884c\u4e00\u6b21\u6027\u62bd\u53d6\u7684\u60c5\u51b5\u4e0b<\/h3>\n<p>\u521b\u5efa\u4e00\u4e2a\u6a21\u677f\u6587\u4ef6\u5939\uff0c\u5e76\u6267\u884c\u751f\u6210\u7684 Shell\u3002<\/p>\n<pre class=\"post-pre\"><code># mkdir .\/db_migration\r\n# ora2pg --project_base .\/db_migration --init_project test_project\r\nCreating project test_project.\r\n\/root\/db_migration\/test_project\/\r\n        schema\/\r\n                dblinks\/\r\n                directories\/\r\n                functions\/\r\n                grants\/\r\n                mviews\/\r\n                packages\/\r\n                partitions\/\r\n                procedures\/\r\n                sequences\/\r\n                synonyms\/\r\n                tables\/\r\n                tablespaces\/\r\n                triggers\/\r\n                types\/\r\n                views\/\r\n        sources\/\r\n                functions\/\r\n                mviews\/\r\n                packages\/\r\n                partitions\/\r\n                procedures\/\r\n                triggers\/\r\n                types\/\r\n                views\/\r\n        data\/\r\n        config\/\r\n        reports\/\r\n\r\nGenerating generic configuration file\r\nCreating script export_schema.sh to automate all exports.\r\nCreating script import_all.sh to automate all imports.\r\n<\/code><\/pre>\n<p>\u6211\u4f1a\u518d\u6b21\u4fee\u6539\u8bbe\u7f6e\u6587\u4ef6\u3002<br \/>\n\u4fee\u6539\u5b8c\u540e\uff0c\u4f1a\u6267\u884c\u6279\u91cf\u63d0\u53d6\u64cd\u4f5c\u3002<\/p>\n<pre class=\"post-pre\"><code>$ sh -x export_schema.sh\r\n<\/code><\/pre>\n<p>\u786e\u8ba4\u6267\u884c\u540e\u7684\u8f93\u51fa\u6587\u4ef6\uff08\u4f7f\u7528tree\u547d\u4ee4\uff09\u3002<\/p>\n<pre class=\"post-pre\"><code>[root@localhost:test_project]# tree\r\n.\r\n\u251c\u2500\u2500 config\r\n\u2502   \u2514\u2500\u2500 ora2pg.conf\r\n\u251c\u2500\u2500 data\r\n\u251c\u2500\u2500 export_schema.sh\r\n\u251c\u2500\u2500 import_all.sh\r\n\u251c\u2500\u2500 reports\r\n\u2502   \u251c\u2500\u2500 columns.txt\r\n\u2502   \u251c\u2500\u2500 report.html\r\n\u2502   \u2514\u2500\u2500 tables.txt\r\n\u251c\u2500\u2500 schema\r\n\u2502   \u251c\u2500\u2500 dblinks\r\n\u2502   \u251c\u2500\u2500 directories\r\n\u2502   \u2502   \u2514\u2500\u2500 directories.sql\r\n\u2502   \u251c\u2500\u2500 functions\r\n\u2502   \u251c\u2500\u2500 grants\r\n\u2502   \u251c\u2500\u2500 mviews\r\n\u2502   \u2502   \u2514\u2500\u2500 mviews.sql\r\n\u2502   \u251c\u2500\u2500 packages\r\n\u2502   \u251c\u2500\u2500 partitions\r\n\u2502   \u251c\u2500\u2500 procedures\r\n\u2502   \u2502   \u251c\u2500\u2500 procedure.sql\r\n\u2502   \u2502   \u2514\u2500\u2500 TEST_ADD_procedure.sql\r\n\u2502   \u251c\u2500\u2500 sequences\r\n\u2502   \u2502   \u2514\u2500\u2500 sequence.sql\r\n\u2502   \u251c\u2500\u2500 synonyms\r\n\u2502   \u251c\u2500\u2500 tables\r\n\u2502   \u2502   \u251c\u2500\u2500 CONSTRAINTS_table.sql\r\n\u2502   \u2502   \u251c\u2500\u2500 FKEYS_table.sql\r\n\u2502   \u2502   \u251c\u2500\u2500 INDEXES_table.sql\r\n\u2502   \u2502   \u2514\u2500\u2500 table.sql\r\n\u2502   \u251c\u2500\u2500 tablespaces\r\n\u2502   \u251c\u2500\u2500 triggers\r\n\u2502   \u251c\u2500\u2500 types\r\n\u2502   \u2514\u2500\u2500 views\r\n\u2502       \u251c\u2500\u2500 TESTview.sql\r\n\u2502       \u2514\u2500\u2500 view.sql\r\n\u2514\u2500\u2500 sources\r\n    \u251c\u2500\u2500 functions\r\n    \u251c\u2500\u2500 mviews\r\n    \u2502   \u2514\u2500\u2500 mviews.sql\r\n    \u251c\u2500\u2500 packages\r\n    \u251c\u2500\u2500 partitions\r\n    \u251c\u2500\u2500 procedures\r\n    \u2502   \u251c\u2500\u2500 procedure.sql\r\n    \u2502   \u2514\u2500\u2500 TEST_ADD_procedure.sql\r\n    \u251c\u2500\u2500 triggers\r\n    \u251c\u2500\u2500 types\r\n    \u2514\u2500\u2500 views\r\n        \u251c\u2500\u2500 TEST_view.sql\r\n        \u2514\u2500\u2500 view.sql\r\n<\/code><\/pre>\n<h3>4. \u5982\u679c\u9010\u500b\u63d0\u53d6\u7684\u60c5\u6cc1<\/h3>\n<p>\u4f7f\u7528\u5de5\u5177\u65f6\uff0c\u6709\u90e8\u5206\u4ee4\u4eba\u62c5\u5fe7\u7684\u662f\u67d0\u4e9b\u8868\u65e0\u6cd5\u62bd\u53d6\u7684\u60c5\u51b5\u3002\u65e0\u6cd5\u786e\u5b9a\u662fOracle\u7aef\u7684\u8bbe\u7f6e\u95ee\u9898\u8fd8\u662fOra2pg\u7684\u8bbe\u7f6e\u95ee\u9898\uff0c\u56e0\u6b64\u81f3\u4eca\u672a\u80fd\u89e3\u51b3\u3002\u56e0\u6b64\uff0c\u5e94\u8be5\u4f1a\u6709\u65f6\u5019\u9700\u8981\u63d0\u53d6\u51fa\u65e0\u6cd5\u62bd\u53d6\u7684\u8868\u7684DDL\uff0c\u5e76\u901a\u8fc7ora2pg\u8fdb\u884c\u8f6c\u6362\u3002<\/p>\n<pre class=\"post-pre\"><code>ora2pg -c ora2pg.conf -t TABLE -b ~\/table\/ -o ora2pg_TABLE.sql\r\n<\/code><\/pre>\n<p>\u8bf7\u5728ora2pg\u7684\u5b98\u65b9\u6587\u4ef6\u4e2d\u6307\u5b9a\u8981\u4f7f\u7528\u7684TYPE\u3002<\/p>\n<h2>\u5bf9PostgreSQL\u548cOracle\u8fdb\u884c\u6570\u636e\u517c\u5bb9\u6027\u6d4b\u8bd5\u3002<\/h2>\n<h3>\u524d\u63d0<\/h3>\n<p>\u30fb\u786e\u4fdd\u73af\u5883\u4e2d\u5b89\u88c5\u6709PostgreSQL\u3002<\/p>\n<h3>\u5b89\u88c5\u8bbf\u95eePostgreSQL\u6570\u636e\u5e93\u7684\u6a21\u5757\u3002<\/h3>\n<ul class=\"post-ul\">DBD::Pg<\/ul>\n<pre class=\"post-pre\"><code>$ tar zxf DBD-Pg-3.16.0.tar.gz\r\n$ cd DBD-Pg-3.16.0\r\n$ perl Makefile.PL\r\n$ make &amp; make install\r\n<\/code><\/pre>\n<h3>\u4fee\u6539conf\u6587\u4ef6<\/h3>\n<p>\u4fee\u6539\u4f7f\u7528\u6a21\u677f\u521b\u5efa\u7684ora2pg.conf\u6587\u4ef6\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"n\">PG_SCHEMA<\/span> <span class=\"n\">userinfo<\/span>\r\n<span class=\"n\">PG_DSN<\/span> <span class=\"n\">dbi<\/span>:<span class=\"n\">Pg<\/span>:<span class=\"n\">dbname<\/span>=<span class=\"n\">userinfo<\/span>;<span class=\"n\">host<\/span>=<span class=\"n\">localhost<\/span>;<span class=\"n\">port<\/span>=<span class=\"m\">5432<\/span>\r\n<span class=\"n\">PG_USER<\/span> <span class=\"n\">user<\/span>\r\n<span class=\"n\">PG_PWD<\/span> <span class=\"n\">password<\/span>\r\n<\/code><\/pre>\n<h3>\u6267\u884c\u6d4b\u8bd5\u547d\u4ee4<\/h3>\n<pre class=\"post-pre\"><code>ora2pg -t TEST -c .\/config\/ora2pg.conf &gt; diff.txt\r\n<\/code><\/pre>\n<h3>4.\u68c0\u67e5\u5de5\u4f5c\u5f62\u5f0f<\/h3>\n<p>\u8fd9\u662f\u4e00\u4e2a\u6458\u5f55\u7248\u672c\u3002\u5982\u679c\u663e\u793a\u5982\u4e0b\uff0c\u5219\u770b\u8d77\u6765\u6ca1\u6709\u5dee\u5f02\u3002<br \/>\n\u7531\u4e8e\u53ef\u80fd\u4f1a\u8f93\u51fa\u9519\u8bef\uff0c\u56e0\u6b64\u6700\u597d\u6839\u636e\u5185\u5bb9\u8fdb\u884c\u786e\u8ba4\u3002<\/p>\n<pre class=\"post-pre\"><code>[TEST TABLE COUNT]\r\nORACLEDB:TABLE:5\r\nPOSTGRES:TABLE:5\r\n[ERRORS TABLE COUNT]\r\nOK, Oracle and PostgreSQL have the same number of TABLE.\r\n<\/code><\/pre>\n<h2>\u6269\u5c55\u529f\u80fd<\/h2>\n<div>\n<div class=\"post-table\">\u62e1\u5f35\u6a5f\u80fd\u8aac\u660eexternal_fileOracle\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092PostgreSQL\u3067\u3082\u4f7f\u7528\u3057\u305f\u3044\u6642pgttPostgreSQL Global Temporary Tables\u3092\u4f7f\u3044\u305f\u3044\u6642orafceOracle\u306e\u95a2\u6570\u3092\u4e00\u90e8\u4f7f\u7528\u3067\u304d\u308b\u3088\u3046\u306b\u3059\u308bpostgresql-fdw\u5916\u90e8\u30c7\u30fc\u30bf\u3068\u306e\u9023\u643a\u3057\u305f\u3044\u6642 <del>\uff08\u3042\u307e\u308a\u3088\u304f\u308f\u304b\u3063\u3066\u3044\u306a\u3044\uff09<\/del><\/div>\n<\/div>\n<pre class=\"post-pre\"><code>$ tar zxf external_file-1.0.tar.gz\r\n$ cd external_file-1.0\r\n$ make&amp;make install\r\n\u21e8pgtt\u3082\u540c\u69d8\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>$ rpm -ivh orafce_15-4.0.1-1.rhel7.x86_64.rpm\r\n<\/code><\/pre>\n<p>\u5728\u4e0a\u8ff0\u4efb\u52a1\u4e2d\uff0c\u5df2\u7ecf\u5c06\u5404\u4e2a\u6269\u5c55\u529f\u80fd\u5b89\u88c5\u5230PostgreSQL\u7684Extension\u6587\u4ef6\u5939\u4e2d\u3002<br \/>\n\u63a5\u4e0b\u6765\uff0c\u6211\u4eec\u5c06\u4f7f\u5f97\u8fd9\u4e9b\u6269\u5c55\u529f\u80fd\u53ef\u4ee5\u5728\u6570\u636e\u5e93\u4e2d\u4f7f\u7528\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"o\">#<\/span> <span class=\"k\">CREATE<\/span> <span class=\"n\">EXTENSION<\/span> <span class=\"n\">external_file<\/span><span class=\"p\">;<\/span>\r\n<span class=\"k\">CREATE<\/span> <span class=\"n\">EXTENSION<\/span>\r\n<span class=\"o\">#<\/span> <span class=\"k\">CREATE<\/span> <span class=\"n\">EXTENSION<\/span> <span class=\"n\">pgtt<\/span><span class=\"p\">;<\/span>\r\n<span class=\"k\">CREATE<\/span> <span class=\"n\">EXTENSION<\/span>\r\n<span class=\"o\">#<\/span> <span class=\"k\">CREATE<\/span> <span class=\"n\">EXTENSION<\/span> <span class=\"n\">orafce<\/span><span class=\"p\">;<\/span>\r\n<span class=\"k\">CREATE<\/span> <span class=\"n\">EXTENSION<\/span>\r\n<span class=\"o\">#<\/span> <span class=\"k\">CREATE<\/span> <span class=\"n\">EXTENSION<\/span> <span class=\"n\">postgres_fdw<\/span><span class=\"p\">;<\/span>\r\n<span class=\"k\">CREATE<\/span> <span class=\"n\">EXTENSION<\/span>\r\n<span class=\"o\">#<\/span> <span class=\"err\">\\<\/span><span class=\"n\">dn<\/span>\r\n     <span class=\"n\">List<\/span> <span class=\"k\">of<\/span> <span class=\"n\">schemas<\/span>\r\n     <span class=\"n\">Name<\/span>     <span class=\"o\">|<\/span>  <span class=\"k\">Owner<\/span>\r\n<span class=\"c1\">--------------+----------<\/span>\r\n <span class=\"n\">dbms_alert<\/span>   <span class=\"o\">|<\/span> <span class=\"k\">user<\/span>\r\n <span class=\"n\">dbms_assert<\/span>  <span class=\"o\">|<\/span> <span class=\"k\">user<\/span>\r\n <span class=\"n\">dbms_output<\/span>  <span class=\"o\">|<\/span> <span class=\"k\">user<\/span>\r\n <span class=\"n\">dbms_pipe<\/span>    <span class=\"o\">|<\/span> <span class=\"k\">user<\/span>\r\n <span class=\"n\">dbms_random<\/span>  <span class=\"o\">|<\/span> <span class=\"k\">user<\/span>\r\n <span class=\"n\">dbms_utility<\/span> <span class=\"o\">|<\/span> <span class=\"k\">user<\/span>\r\n <span class=\"n\">oracle<\/span>       <span class=\"o\">|<\/span> <span class=\"k\">user<\/span>\r\n <span class=\"n\">plunit<\/span>       <span class=\"o\">|<\/span> <span class=\"k\">user<\/span>\r\n <span class=\"n\">plvchr<\/span>       <span class=\"o\">|<\/span> <span class=\"k\">user<\/span>\r\n <span class=\"n\">plvdate<\/span>      <span class=\"o\">|<\/span> <span class=\"k\">user<\/span>\r\n <span class=\"n\">plvlex<\/span>       <span class=\"o\">|<\/span> <span class=\"k\">user<\/span>\r\n <span class=\"n\">plvstr<\/span>       <span class=\"o\">|<\/span> <span class=\"k\">user<\/span>\r\n <span class=\"n\">plvsubst<\/span>     <span class=\"o\">|<\/span> <span class=\"k\">user<\/span>\r\n <span class=\"k\">public<\/span>       <span class=\"o\">|<\/span> <span class=\"n\">postgres<\/span>\r\n <span class=\"n\">utl_file<\/span>     <span class=\"o\">|<\/span> <span class=\"k\">user<\/span>\r\n <span class=\"n\">pgtt_schema<\/span>  <span class=\"o\">|<\/span> <span class=\"k\">user<\/span>\r\n <span class=\"n\">external_file<\/span><span class=\"o\">|<\/span> <span class=\"k\">user<\/span>\r\n <span class=\"n\">userinfo<\/span>     <span class=\"o\">|<\/span> <span class=\"k\">user<\/span>\r\n<span class=\"o\">#<\/span> <span class=\"k\">SHOW<\/span> <span class=\"n\">search_path<\/span><span class=\"p\">;<\/span>\r\n<span class=\"n\">search_path<\/span>\r\n<span class=\"c1\">--------------------------------<\/span>\r\n<span class=\"nv\">\"$user\"<\/span><span class=\"p\">,<\/span> <span class=\"k\">public<\/span>\r\n<span class=\"o\">#<\/span> <span class=\"k\">ALTER<\/span> <span class=\"k\">ROLE<\/span> <span class=\"k\">user<\/span> <span class=\"k\">SET<\/span> <span class=\"n\">search_path<\/span> <span class=\"o\">=<\/span> <span class=\"n\">userinfo<\/span><span class=\"p\">,<\/span><span class=\"n\">oracle<\/span><span class=\"p\">,<\/span><span class=\"n\">external_file<\/span><span class=\"p\">,<\/span><span class=\"n\">pgtt_schema<\/span><span class=\"p\">,,,;<\/span>\r\n<span class=\"k\">ALTER<\/span> <span class=\"k\">ROLE<\/span>\r\n<\/code><\/pre>\n<h2>PostgreSQL\u6587\u4ef6\u5bfc\u5165\u6307\u4ee4<\/h2>\n<p>\u53ea\u9650\u6307\u7279\u5b9a\u7684\u5f15\u5165\u6216\u91c7\u53d6\u884c\u52a8\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"n\">psql<\/span> <span class=\"o\">-<\/span><span class=\"n\">U<\/span> <span class=\"k\">user<\/span> <span class=\"o\">-<\/span><span class=\"n\">d<\/span> <span class=\"n\">userinfo<\/span> <span class=\"o\">-<\/span><span class=\"n\">f<\/span> <span class=\"p\">.<\/span><span class=\"o\">\/<\/span><span class=\"k\">schema<\/span><span class=\"o\">\/<\/span><span class=\"n\">tables<\/span><span class=\"o\">\/<\/span><span class=\"k\">table<\/span><span class=\"p\">.<\/span><span class=\"k\">sql<\/span>\r\n<\/code><\/pre>\n<p>\u4e00\u6b21\u6027\u5bfc\u5165<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>sh <span class=\"nt\">-x<\/span> import_all.sh\r\n<\/code><\/pre>\n<h2>\u6ce8\u610f\u4e8b\u9879<\/h2>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Oracle\u3068PostgreSQL\u3067\u306f\u3001\u30c7\u30fc\u30bf\u64cd\u4f5c\u30af\u30a8\u30ea\u306b\u3066\u4e00\u90e8\u4f7f\u7528\u3067\u304d\u306a\u3044\u95a2\u6570\u304c\u4f7f\u308f\u308c\u3066\u3044\u308b\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u4f8b\u3048\u3070\u3001ROWNUM\u304c\u4f7f\u3048\u306a\u3044\u306a\u3069\u3042\u308b\u305f\u3081\u3001\u4e92\u63db\u6027\u4e00\u89a7\u3092\u968f\u6642\u78ba\u8a8d\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u30c7\u30fc\u30bf\u306e\u6700\u5927\u30d0\u30a4\u30c8\u6570\u304c\u9055\u3046<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">PostgreSQL\uff1a1GB<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Oracle\uff1a2GB<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\u4e00\u90e8\u5909\u63db\u3067\u304d\u306a\u3044\u3068\u3053\u308d\u304c\u3042\u308b\u305f\u3081\u3001\u624b\u4f5c\u696d\u304c\u5fc5\u8981\u3068\u306a\u308a\u307e\u3059\u3002<\/ul>\n<h2>\u7ed3\u675f<\/h2>\n<p>\u975e\u5e38\u611f\u8b1d\u60a8\u7684\u95b1\u8b80\u76f4\u5230\u6700\u5f8c\u3002<\/p>\n<h2>\u8bf7\u8fd4\u56de<\/h2>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">ora2pg\u3092\u4f7f\u7528\u3057\u3066Oracle\u304b\u3089PostgreSQL\u3078\u79fb\u884c\u3059\u308b<\/ul>\n<\/li>\n<\/ul>\n<p>Oracle\u304b\u3089PostgreSQL\u79fb\u884c\u306b\u3064\u3044\u3066<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u8fd9\u662fPostgreSQL Advent Calendar 2022\u7684\u7b2c13\u5929\u7684\u5e16\u5b50\u3002 \u6628\u5929\uff0c\u6211\u5728@hmatsu [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-42052","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u6211\u7528\u4e86\u6570\u636e\u5e93\u8fc1\u79fb\u5de5\u5177\uff08\u4eceOracle\u8fc1\u79fb\u5230PostgreSQL\uff09 - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/zh\/blog\/\u6211\u7528\u4e86\u6570\u636e\u5e93\u8fc1\u79fb\u5de5\u5177\uff08\u4eceoracle\u8fc1\u79fb\u5230postgresql\uff09\u3002\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u6211\u7528\u4e86\u6570\u636e\u5e93\u8fc1\u79fb\u5de5\u5177\uff08\u4eceOracle\u8fc1\u79fb\u5230PostgreSQL\uff09\" \/>\n<meta property=\"og:description\" content=\"\u8fd9\u662fPostgreSQL Advent Calendar 2022\u7684\u7b2c13\u5929\u7684\u5e16\u5b50\u3002 \u6628\u5929\uff0c\u6211\u5728@hmatsu [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u6211\u7528\u4e86\u6570\u636e\u5e93\u8fc1\u79fb\u5de5\u5177\uff08\u4eceoracle\u8fc1\u79fb\u5230postgresql\uff09\u3002\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-12-18T11:26:25+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-29T02:27:38+00:00\" \/>\n<meta name=\"author\" content=\"\u79d1, \u96c5\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u79d1, \u96c5\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e7%94%a8%e4%ba%86%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%81%e7%a7%bb%e5%b7%a5%e5%85%b7%ef%bc%88%e4%bb%8eoracle%e8%bf%81%e7%a7%bb%e5%88%b0postgresql%ef%bc%89%e3%80%82\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e7%94%a8%e4%ba%86%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%81%e7%a7%bb%e5%b7%a5%e5%85%b7%ef%bc%88%e4%bb%8eoracle%e8%bf%81%e7%a7%bb%e5%88%b0postgresql%ef%bc%89%e3%80%82\/\",\"name\":\"\u6211\u7528\u4e86\u6570\u636e\u5e93\u8fc1\u79fb\u5de5\u5177\uff08\u4eceOracle\u8fc1\u79fb\u5230PostgreSQL\uff09 - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-12-18T11:26:25+00:00\",\"dateModified\":\"2024-04-29T02:27:38+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/41e222757cdd2a3365361328bd79970a\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e7%94%a8%e4%ba%86%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%81%e7%a7%bb%e5%b7%a5%e5%85%b7%ef%bc%88%e4%bb%8eoracle%e8%bf%81%e7%a7%bb%e5%88%b0postgresql%ef%bc%89%e3%80%82\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e7%94%a8%e4%ba%86%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%81%e7%a7%bb%e5%b7%a5%e5%85%b7%ef%bc%88%e4%bb%8eoracle%e8%bf%81%e7%a7%bb%e5%88%b0postgresql%ef%bc%89%e3%80%82\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e7%94%a8%e4%ba%86%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%81%e7%a7%bb%e5%b7%a5%e5%85%b7%ef%bc%88%e4%bb%8eoracle%e8%bf%81%e7%a7%bb%e5%88%b0postgresql%ef%bc%89%e3%80%82\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u6211\u7528\u4e86\u6570\u636e\u5e93\u8fc1\u79fb\u5de5\u5177\uff08\u4eceOracle\u8fc1\u79fb\u5230PostgreSQL\uff09\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/41e222757cdd2a3365361328bd79970a\",\"name\":\"\u79d1, \u96c5\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1b2d3e00a7df03689797ebd4af8c5827ba5af936849a71050ec331f4cf902c5d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/1b2d3e00a7df03689797ebd4af8c5827ba5af936849a71050ec331f4cf902c5d?s=96&d=mm&r=g\",\"caption\":\"\u79d1, \u96c5\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/keya\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e7%94%a8%e4%ba%86%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%81%e7%a7%bb%e5%b7%a5%e5%85%b7%ef%bc%88%e4%bb%8eoracle%e8%bf%81%e7%a7%bb%e5%88%b0postgresql%ef%bc%89%e3%80%82\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u6211\u7528\u4e86\u6570\u636e\u5e93\u8fc1\u79fb\u5de5\u5177\uff08\u4eceOracle\u8fc1\u79fb\u5230PostgreSQL\uff09 - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/zh\/blog\/\u6211\u7528\u4e86\u6570\u636e\u5e93\u8fc1\u79fb\u5de5\u5177\uff08\u4eceoracle\u8fc1\u79fb\u5230postgresql\uff09\u3002\/","og_locale":"zh_CN","og_type":"article","og_title":"\u6211\u7528\u4e86\u6570\u636e\u5e93\u8fc1\u79fb\u5de5\u5177\uff08\u4eceOracle\u8fc1\u79fb\u5230PostgreSQL\uff09","og_description":"\u8fd9\u662fPostgreSQL Advent Calendar 2022\u7684\u7b2c13\u5929\u7684\u5e16\u5b50\u3002 \u6628\u5929\uff0c\u6211\u5728@hmatsu [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u6211\u7528\u4e86\u6570\u636e\u5e93\u8fc1\u79fb\u5de5\u5177\uff08\u4eceoracle\u8fc1\u79fb\u5230postgresql\uff09\u3002\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-12-18T11:26:25+00:00","article_modified_time":"2024-04-29T02:27:38+00:00","author":"\u79d1, \u96c5","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u79d1, \u96c5","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"3 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e7%94%a8%e4%ba%86%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%81%e7%a7%bb%e5%b7%a5%e5%85%b7%ef%bc%88%e4%bb%8eoracle%e8%bf%81%e7%a7%bb%e5%88%b0postgresql%ef%bc%89%e3%80%82\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e7%94%a8%e4%ba%86%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%81%e7%a7%bb%e5%b7%a5%e5%85%b7%ef%bc%88%e4%bb%8eoracle%e8%bf%81%e7%a7%bb%e5%88%b0postgresql%ef%bc%89%e3%80%82\/","name":"\u6211\u7528\u4e86\u6570\u636e\u5e93\u8fc1\u79fb\u5de5\u5177\uff08\u4eceOracle\u8fc1\u79fb\u5230PostgreSQL\uff09 - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-12-18T11:26:25+00:00","dateModified":"2024-04-29T02:27:38+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/41e222757cdd2a3365361328bd79970a"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e7%94%a8%e4%ba%86%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%81%e7%a7%bb%e5%b7%a5%e5%85%b7%ef%bc%88%e4%bb%8eoracle%e8%bf%81%e7%a7%bb%e5%88%b0postgresql%ef%bc%89%e3%80%82\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e7%94%a8%e4%ba%86%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%81%e7%a7%bb%e5%b7%a5%e5%85%b7%ef%bc%88%e4%bb%8eoracle%e8%bf%81%e7%a7%bb%e5%88%b0postgresql%ef%bc%89%e3%80%82\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e7%94%a8%e4%ba%86%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%81%e7%a7%bb%e5%b7%a5%e5%85%b7%ef%bc%88%e4%bb%8eoracle%e8%bf%81%e7%a7%bb%e5%88%b0postgresql%ef%bc%89%e3%80%82\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u6211\u7528\u4e86\u6570\u636e\u5e93\u8fc1\u79fb\u5de5\u5177\uff08\u4eceOracle\u8fc1\u79fb\u5230PostgreSQL\uff09"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website","url":"https:\/\/www.silicloud.com\/zh\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/41e222757cdd2a3365361328bd79970a","name":"\u79d1, \u96c5","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/1b2d3e00a7df03689797ebd4af8c5827ba5af936849a71050ec331f4cf902c5d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1b2d3e00a7df03689797ebd4af8c5827ba5af936849a71050ec331f4cf902c5d?s=96&d=mm&r=g","caption":"\u79d1, \u96c5"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/keya\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e7%94%a8%e4%ba%86%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%81%e7%a7%bb%e5%b7%a5%e5%85%b7%ef%bc%88%e4%bb%8eoracle%e8%bf%81%e7%a7%bb%e5%88%b0postgresql%ef%bc%89%e3%80%82\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/42052","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=42052"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/42052\/revisions"}],"predecessor-version":[{"id":84721,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/42052\/revisions\/84721"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=42052"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=42052"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=42052"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}