{"id":41561,"date":"2023-08-09T05:23:41","date_gmt":"2023-08-11T01:44:42","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%b0%9d%e8%af%95%e4%bb%8eoracle%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%9e%e6%8e%a5%e5%88%b0postgresql%e6%95%b0%e6%8d%ae%e5%ba%93%e3%80%82\/"},"modified":"2024-04-30T17:42:39","modified_gmt":"2024-04-30T09:42:39","slug":"%e6%88%91%e5%b0%9d%e8%af%95%e4%bb%8eoracle%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%9e%e6%8e%a5%e5%88%b0postgresql%e6%95%b0%e6%8d%ae%e5%ba%93%e3%80%82","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%b0%9d%e8%af%95%e4%bb%8eoracle%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%9e%e6%8e%a5%e5%88%b0postgresql%e6%95%b0%e6%8d%ae%e5%ba%93%e3%80%82\/","title":{"rendered":"\u6211\u5c1d\u8bd5\u4eceOracle\u6570\u636e\u5e93\u8fde\u63a5\u5230PostgreSQL\u6570\u636e\u5e93"},"content":{"rendered":"<p>\u672c\u6587\u662fJPOUG Advent Calendar 2021\u7b2c16\u7bc7\u6587\u7ae0\u3002\u6628\u5929ora_gonsuke777\u5148\u751f\u7684\u6587\u7ae0\u662f\u300c\u901a\u8fc7CMAN\uff08Oracle\u8fde\u63a5\u7ba1\u7406\u5668\uff09\u548c\u57fa\u4e8e\u89d2\u8272\u7684\u670d\u52a1\/NLB\u5c06OCI DBCS\u6570\u636e\u4fdd\u62a4\u914d\u7f6e\u7684Primary\u8fde\u63a5\u8f6c\u53d8\u4e3a\u5355\u4e00\u7aef\u70b9\uff08Oracle\u6570\u636e\u5e93\uff0cOracle Cloud\u57fa\u7840\u8bbe\u65bd\uff09\u300d\u3002\u660e\u5929\u662ftomo\u5148\u751f\u7684\u6587\u7ae0\u3002<\/p>\n<p>\u901a\u8fc7Oracle Database Gateway for ODBC\u7684\u529f\u80fd\uff0c\u4f7f\u7528ODBC\u9a71\u52a8\u7a0b\u5e8f\u521b\u5efa\u8fde\u63a5\u5230PostgreSQL\u6570\u636e\u5e93\u7684DATABASE LINK\u3002<\/p>\n<h1>ODBC \u5bf9\u63a5 Oracle \u6570\u636e\u5e93\u7684\u7f51\u5173<\/h1>\n<p>Oracle\u7684ODBC\u6570\u636e\u5e93\u7f51\u5173\u662fOracle\u6570\u636e\u5e93\u7684\u6807\u51c6\u529f\u80fd\uff0c\u53ef\u4ee5\u5728\u4efb\u4f55\u7248\u672c\u4e2d\u4f7f\u7528\u3002\u6709\u5173\u8bb8\u53ef\u4fe1\u606f\uff0c\u8bf7\u53c2\u9605&#8221;\u6570\u636e\u5e93\u8bb8\u53ef\u4fe1\u606f\u7528\u6237\u624b\u518c&#8221;\u3002\u4f7f\u7528ODBC\u9a71\u52a8\u7a0b\u5e8f\uff0c\u8fd9\u4e2a\u529f\u80fd\u53ef\u4ee5\u5411\u9664Oracle\u6570\u636e\u5e93\u4e4b\u5916\u7684\u5173\u7cfb\u6570\u636e\u5e93\u7ba1\u7406\u7cfb\u7edf\uff08RDBMS\uff09\u53d1\u51faSQL\u8bed\u53e5\u3002\u672c\u6587\u4ecb\u7ecd\u4e86\u5982\u4f55\u5728Red Hat Enterprise Linux\u73af\u5883\u4e0b\u8fde\u63a5Oracle Database 19c\u81f3PostgreSQL 14\u3002\u6709\u5173\u8be6\u7ec6\u4fe1\u606f\uff0c\u8bf7\u53c2\u9605&#8221;Oracle Database Gateway for ODBC\u7528\u6237\u6307\u5357&#8221;\u63d0\u4f9b\u7684\u624b\u518c\u3002<\/p>\n<h1>\u51c6\u5907\u5b89\u88c5<\/h1>\n<h2>PostgreSQL \u4fa7<\/h2>\n<p>\u5728\u5b89\u88c5PostgreSQL\u65f6\uff0c\u4e0d\u9700\u8981\u8fdb\u884c\u7279\u6b8a\u7684\u51c6\u5907\u3002\u53ea\u9700\u5728\u8bbe\u7f6e\u4e2d\u6307\u5b9a\u7b49\u5f85\u5916\u90e8\u8fde\u63a5\u7684\u5730\u5740\uff08listen_addresses\uff09\u548c\u7aef\u53e3\u53f7\uff08port\uff09\uff0c\u5e76\u5728pg_hba.conf\u6587\u4ef6\u4e2d\u8bb0\u5f55\u5141\u8bb8\u6765\u81eaOracle\u6570\u636e\u5e93\u670d\u52a1\u5668\u7684\u8fde\u63a5\u3002\u5728\u4e0b\u9762\u7684\u793a\u4f8b\u4e2d\uff0c\u5141\u8bb8\u4eceOracle\u6570\u636e\u5e93\u670d\u52a1\u5668\u5730\u5740192.168.1.100\u8fde\u63a5\u5230postgres\u6570\u636e\u5e93\u3002md5\u8868\u793a\u4f7f\u7528\u5bc6\u7801\u8fdb\u884c\u8eab\u4efd\u9a8c\u8bc1\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span><span class=\"nb\">cat<\/span> <span class=\"nv\">$PGDATA<\/span>\/pg_hba.conf\r\n\r\n<span class=\"c\"># TYPE  DATABASE        USER            ADDRESS                 METHOD<\/span>\r\nhost    postgres        all             192.168.1.100\/32        md5\r\n<\/code><\/pre>\n<h2>Oracle\u6570\u636e\u5e93\u670d\u52a1\u5668<\/h2>\n<p>\u4e3a\u4e86\u8fde\u63a5Oracle\u6570\u636e\u5e93\u670d\u52a1\u5668\uff0c\u9700\u8981\u5728Linux\u4e0a\u5b89\u88c5ODBC Manager\u5305\u3001PostgreSQL ODBC Driver\u548cPostgreSQL Client\u3002\u5728\u4e0b\u9762\u7684\u793a\u4f8b\u4e2d\uff0c\u786e\u8ba4ODBC Manager\u5df2\u5b89\u88c5\u5e76\u5b89\u88c5\u4e86PostgreSQL 14\u7684rpm\u5305\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"c\"># rpm -qa | grep ODBC<\/span>\r\nunixODBC-2.3.7-1.el8.x86_64\r\n<span class=\"c\"># rpm -ivh postgresql14-14.1-1PGDG.rhel7.x86_64.rpm postgresql14-libs-14.1-1PGDG.rhel7.x86_64.rpm postgresql14-odbc-13.02.0000-1PGDG.rhel7.x86_64.rpm<\/span>\r\nwarning: postgresql14-14.1-1PGDG.rhel7.x86_64.rpm: Header V4 DSA\/SHA1 Signature, key ID 442df0f8: NOKEY\r\nPreparing...                          <span class=\"c\">################################# [100%]<\/span>\r\nUpdating \/ installing...\r\n   1:postgresql14-libs-14.1-1PGDG.rhel################################# <span class=\"o\">[<\/span> 33%]\r\n   2:postgresql14-14.1-1PGDG.rhel7    <span class=\"c\">################################# [ 67%]<\/span>\r\n   3:postgresql14-odbc-13.02.0000-1PGD################################# <span class=\"o\">[<\/span>100%]\r\n<\/code><\/pre>\n<h1>ODBC\u914d\u7f6e<\/h1>\n<p>\u786e\u8ba4\u5728\u8fd0\u884cOracle\u6570\u636e\u5e93\u7684Linux\u4e0a\u7684ODBC Manager\u914d\u7f6e\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"c\"># odbc_config --odbcini --odbcinstini<\/span>\r\n\/etc\/odbc.ini\r\n\/etc\/odbcinst.ini\r\n\r\n<span class=\"c\"># odbcinst -j<\/span>\r\nunixODBC 2.3.7\r\nDRIVERS............: \/etc\/odbcinst.ini\r\nSYSTEM DATA SOURCES: \/etc\/odbc.ini\r\nFILE DATA SOURCES..: \/etc\/ODBCDataSources\r\nUSER DATA SOURCES..: \/root\/.odbc.ini\r\nSQLULEN Size.......: 8\r\nSQLLEN Size........: 8\r\nSQLSETPOSIROW Size.: 8\r\n<\/code><\/pre>\n<p>\u5b89\u88c5PostgreSQL ODBC\u9a71\u52a8\u7a0b\u5e8f\u540e\uff0c\u5c06\u5728\/etc\/odbcinst.ini\u6587\u4ef6\u4e2d\u8ffd\u52a0\u9a71\u52a8\u7a0b\u5e8f\u4fe1\u606f\u3002\u6839\u636e\u9700\u8981\u8fdb\u884c\u4fee\u6539\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"c\"># cat odbcinst.ini<\/span>\r\n\r\n<span class=\"c\"># Example driver definitions<\/span>\r\n\r\n<span class=\"c\"># Driver from the postgresql-odbc package<\/span>\r\n<span class=\"c\"># Setup from the unixODBC package<\/span>\r\n<span class=\"o\">[<\/span>PostgreSQL]\r\nDescription     <span class=\"o\">=<\/span> ODBC <span class=\"k\">for <\/span>PostgreSQL\r\nDriver          <span class=\"o\">=<\/span> \/usr\/pgsql-14\/lib\/psqlodbcw.so\r\nSetup           <span class=\"o\">=<\/span> \/usr\/pgsql-14\/lib\/libodbcpsqlS.so\r\nDriver64        <span class=\"o\">=<\/span> \/usr\/pgsql-14\/lib\/psqlodbcw.so\r\nSetup64         <span class=\"o\">=<\/span> \/usr\/pgsql-14\/lib\/libodbcpsqlS.so\r\nFileUsage       <span class=\"o\">=<\/span> 1\r\n<\/code><\/pre>\n<p>\u5728odbc.ini\u6587\u4ef6\u4e2d\u8ffd\u52a0\u8fde\u63a5\u5230PostgreSQL\u6570\u636e\u5e93\u7684\u5c5e\u6027\u3002\u60a8\u53ef\u4ee5\u5728\u4efb\u610f\u540d\u79f0\u7684\u90e8\u5206\uff08\u4f8b\u5982pgdsn\uff09\u4e0b\u6dfb\u52a0\u4fe1\u606f\u3002\u4ee5\u4e0b\u662f\u6700\u4f4e\u5fc5\u9700\u7684\u914d\u7f6e\u9009\u9879\u3002<\/p>\n<div>\n<div class=\"post-table\">\u9805\u76ee\u8aac\u660e[\u30bb\u30af\u30b7\u30e7\u30f3\u540d]\u4efb\u610f\u306e\u540d\u524dDriver\u30c9\u30e9\u30a4\u30d0\u30fc\u540d odbcinst.ini \u30d5\u30a1\u30a4\u30eb\u304b\u3089\u8ee2\u8a18Description\u4efb\u610f\u306e\u8aac\u660eDatabase\u63a5\u7d9a\u5148 PostgreSQL \u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u540dServername\u63a5\u7d9a\u5148\u30db\u30b9\u30c8\u540d\u307e\u305f\u306f TCP\/IP \u30a2\u30c9\u30ec\u30b9Port\u63a5\u7d9a\u5148 PostgreSQL \u306e\u63a5\u7d9a\u30dd\u30fc\u30c8\u756a\u53f7<\/div>\n<\/div>\n<pre class=\"post-pre\"><code><span class=\"c\"># cat \/etc\/odbc.ini<\/span>\r\n\r\n<span class=\"o\">[<\/span>pgdsn]\r\nDriver <span class=\"o\">=<\/span> PostgreSQL\r\nDescription <span class=\"o\">=<\/span> PostgreSQL ODBC Driver\r\nDatabase <span class=\"o\">=<\/span> postgres\r\nServername <span class=\"o\">=<\/span> 192.168.1.223\r\nPort <span class=\"o\">=<\/span> 5432\r\nUseDeclareFetch <span class=\"o\">=<\/span> 1\r\nDebug <span class=\"o\">=<\/span> 1\r\nLowerCaseIdentifier <span class=\"o\">=<\/span> 1\r\nShowOidColumn <span class=\"o\">=<\/span> 0\r\n<\/code><\/pre>\n<h1>\u8bbe\u5b9a\u521d\u59cb\u53c2\u6570<\/h1>\n<p>\u5728\u4e2d\u56fd\uff0c\u53ea\u9700\u8981\u4e00\u4e2a\u9009\u9879\u3002<br \/>\n\u51c6\u5907\u5f02\u673a\u79cd\u95f4\u63a5\uff08HS\uff09\u7d9a\u4e13\u7528\u7684\u521d\u59cb\u5316\u53c2\u6570\u3002\u6587\u4ef6\u9700\u8981\u5728 $ORACLE_HOME\/hs\/admin \u76ee\u5f55\u4e0b\u4ee5 init{\u63a5\u53e3\u540d}.ora \u7684\u540d\u79f0\u521b\u5efa\u3002\u4ee5\u4e0b\u793a\u4f8b\u4f7f\u7528 pgdsn \u4f5c\u4e3a\u8fde\u63a5\u540d\u8fdb\u884c\u521d\u59cb\u5316\u53c2\u6570\u8bbe\u7f6e\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span><span class=\"nb\">pwd<\/span>\r\n\/u01\/app\/oracle\/homes\/OraDB19Home1\/hs\/admin\r\n<span class=\"err\">$<\/span>\r\n<span class=\"nv\">$ <\/span><span class=\"nb\">ls\r\n<\/span>initpgdsn.ora\r\n<span class=\"err\">$<\/span>\r\n<span class=\"nv\">$ <\/span><span class=\"nb\">cat <\/span>initpgdsn.ora\r\nHS_FDS_CONNECT_INFO <span class=\"o\">=<\/span> pgdsn\r\nHS_FDS_TRACE_LEVEL <span class=\"o\">=<\/span> DEBUG\r\nHS_FDS_SHAREABLE_NAME <span class=\"o\">=<\/span> \/usr\/lib64\/libodbc.so\r\n<span class=\"nv\">HS_LANGUAGE<\/span><span class=\"o\">=<\/span>AMERICAN_AMERICA.WE8ISO8859P1\r\n<span class=\"nb\">set <\/span><span class=\"nv\">ODBCINI<\/span><span class=\"o\">=<\/span>\/etc\/odbc.ini\r\n<\/code><\/pre>\n<div>\n<div class=\"post-table\">\u9805\u76ee\u8aac\u660eHS_FDS_CONNECT_INFO\u63a5\u7d9a\u540d\u79f0HS_FDS_TRACE_LEVEL\u30c8\u30ec\u30fc\u30b9\u30fb\u30d5\u30a1\u30a4\u30eb\u306b\u51fa\u529b\u3059\u308b\u30ec\u30d9\u30ebHS_FDS_SHAREABLE_NAMEODBC Driver Manager\u3078\u306e\u30d1\u30b9HS_LANGUAGE\u8a00\u8a9e\u8a2d\u5b9aHS_FDS_FETCH_ROWS\u30d5\u30a7\u30c3\u30c1\u30b5\u30a4\u30baset ODBCINIODBC \u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3078\u306e\u30d1\u30b9<\/div>\n<\/div>\n<h1>\u7f51\u7edc\u8bbe\u7f6e<\/h1>\n<p>\u7136\u540e\uff0c\u6211\u4eec\u5c06\u8fdb\u884c\u542c\u4f17\u8bbe\u7f6e\u3002\u5f53Oracle Database Gateway\u8fde\u63a5\u5230\u4e0d\u540c\u7684\u6570\u636e\u5e93\u65f6\uff0c\u5b83\u5c06\u901a\u8fc7\u76d1\u542c\u5668\u542f\u52a8dg4odbc\u8fdb\u7a0b\u3002\u6211\u4eec\u9700\u8981\u5728\u76d1\u542c\u5668\u8bbe\u7f6e\u6587\u4ef6\uff08listener.ora\uff09\u4e2d\u6dfb\u52a0\u7528\u4e8e\u5916\u90e8\u8fde\u63a5\u7684SID_LIST\u3002\u540c\u65f6\uff0c\u6211\u4eec\u8fd8\u9700\u8bbe\u7f6e\u73af\u5883\u53d8\u91cfLD_LIBRARY_PATH\u4ee5\u53ca\u542f\u52a8\u8fdb\u7a0b\u7684PROGRAM=dg4odbc\u8bbe\u7f6e\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span><span class=\"nb\">pwd<\/span>\r\n\/u01\/app\/oracle\/homes\/OraDB21Home1\/network\/admin\r\n<span class=\"err\">$<\/span>\r\n<span class=\"nv\">$ <\/span><span class=\"nb\">cat <\/span>listener.ora\r\n<span class=\"c\"># listener.ora Network Configuration File: \/u01\/app\/oracle\/homes\/OraDB21Home1\/network\/admin\/listener.ora<\/span>\r\n<span class=\"c\"># Generated by Oracle configuration tools.<\/span>\r\n\r\nLISTENER <span class=\"o\">=<\/span>\r\n  <span class=\"o\">(<\/span>DESCRIPTION_LIST <span class=\"o\">=<\/span>\r\n    <span class=\"o\">(<\/span>DESCRIPTION <span class=\"o\">=<\/span>\r\n      <span class=\"o\">(<\/span>ADDRESS <span class=\"o\">=<\/span> <span class=\"o\">(<\/span>PROTOCOL <span class=\"o\">=<\/span> TCP<span class=\"o\">)(<\/span>HOST <span class=\"o\">=<\/span> 192.168.1.200<span class=\"o\">)(<\/span>PORT <span class=\"o\">=<\/span> 1521<span class=\"o\">))<\/span>\r\n      <span class=\"o\">(<\/span>ADDRESS <span class=\"o\">=<\/span> <span class=\"o\">(<\/span>PROTOCOL <span class=\"o\">=<\/span> IPC<span class=\"o\">)(<\/span>KEY <span class=\"o\">=<\/span> EXTPROC1521<span class=\"o\">))<\/span>\r\n    <span class=\"o\">)<\/span>\r\n  <span class=\"o\">)<\/span>\r\n\r\nSID_LIST_LISTENER <span class=\"o\">=<\/span>\r\n<span class=\"o\">(<\/span>SID_LIST <span class=\"o\">=<\/span>\r\n  <span class=\"o\">(<\/span><span class=\"nv\">SID_DESC<\/span><span class=\"o\">=<\/span>\r\n    <span class=\"o\">(<\/span>SID_NAME <span class=\"o\">=<\/span> pgdsn<span class=\"o\">)<\/span>\r\n    <span class=\"o\">(<\/span>ORACLE_HOME <span class=\"o\">=<\/span> \/u01\/app\/oracle\/product\/19.0.0\/dbhome_1<span class=\"o\">)<\/span>\r\n    <span class=\"o\">(<\/span><span class=\"nv\">ENVS<\/span><span class=\"o\">=<\/span><span class=\"s2\">\"LD_LIBRARY_PATH=\/usr\/local\/lib:\/usr\/lib64:\/u01\/app\/oracle\/product\/19.0.0\/dbhome_1\/lib\"<\/span><span class=\"o\">)<\/span>\r\n    <span class=\"o\">(<\/span><span class=\"nv\">PROGRAM<\/span><span class=\"o\">=<\/span>dg4odbc<span class=\"o\">)<\/span>\r\n  <span class=\"o\">)<\/span>\r\n<span class=\"o\">)<\/span>\r\n<\/code><\/pre>\n<p>\u5c06\u8fde\u63a5\u6570\u636e\u5e93\u7684\u5165\u53e3\u6dfb\u52a0\u5230 tnsnames.ora \u6587\u4ef6\u4e2d\u3002\u8fde\u63a5\u5230\u672c\u5730\u4e3b\u673a\u7684\u76d1\u542c\u5668\uff0c\u5e76\u6dfb\u52a0 HS=OK \u7684\u8bbe\u7f6e\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span><span class=\"nb\">cat <\/span>tnsnames.ora\r\n\r\npgdsn  <span class=\"o\">=<\/span>\r\n<span class=\"o\">(<\/span><span class=\"nv\">DESCRIPTION<\/span><span class=\"o\">=<\/span>\r\n    <span class=\"o\">(<\/span><span class=\"nv\">ADDRESS<\/span><span class=\"o\">=(<\/span><span class=\"nv\">PROTOCOL<\/span><span class=\"o\">=<\/span>tcp<span class=\"o\">)(<\/span>HOST <span class=\"o\">=<\/span> localhost<span class=\"o\">)(<\/span>PORT <span class=\"o\">=<\/span> 1521<span class=\"o\">))<\/span>\r\n    <span class=\"o\">(<\/span><span class=\"nv\">CONNECT_DATA<\/span><span class=\"o\">=(<\/span><span class=\"nv\">SID<\/span><span class=\"o\">=<\/span>pgdsn<span class=\"o\">))<\/span>\r\n    <span class=\"o\">(<\/span><span class=\"nv\">HS<\/span><span class=\"o\">=<\/span>OK<span class=\"o\">)<\/span>\r\n<span class=\"o\">)<\/span>\r\n<\/code><\/pre>\n<h1>\u521b\u5efa\u6570\u636e\u5e93\u94fe\u63a5<\/h1>\n<p>\u6211\u4f1a\u521b\u5efa\u4e00\u4e2a\u5f15\u7528PostgreSQL\u5b9e\u4f8b\u7684DATABASE LINK\u3002\u6211\u4f1a\u63d0\u4f9bPostgreSQL\u6570\u636e\u5e93\u7684\u7528\u6237\u540d\u548c\u5bc6\u7801\u3002\u4e3a\u4e86\u6ce8\u610f\u5927\u5c0f\u5199\uff0c\u6211\u4f1a\u7528\u53cc\u5f15\u53f7\u62ec\u8d77\u7528\u6237\u540d\u548c\u5bc6\u7801\u3002\u6211\u4f1a\u5728USING\u5b50\u53e5\u4e2d\u6307\u5b9a\u5728tnsnames.ora\u6587\u4ef6\u4e2d\u6dfb\u52a0\u7684\u8fde\u63a5\u5668\u3002\u5728\u4e0b\u9762\u7684\u793a\u4f8b\u4e2d\uff0c\u6211\u5c06\u521b\u5efa\u4e00\u4e2aDATABASE LINK\uff0c\u5e76\u5f15\u7528pg_am\u76ee\u5f55\u7684\u5b9a\u4e49\u3002\u5982\u679c\u80fd\u591f\u6210\u529f\u5730\u5f15\u7528\u67e5\u770b\u5b9a\u4e49\u800c\u4e0d\u8f93\u51fa\u9519\u8bef\uff0c\u5219\u8868\u793a\u6210\u529f\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"k\">SQL<\/span><span class=\"o\">&gt;<\/span> <span class=\"k\">CREATE<\/span> <span class=\"k\">DATABASE<\/span> <span class=\"n\">LINK<\/span> <span class=\"n\">pglink<\/span> <span class=\"k\">CONNECT<\/span> <span class=\"k\">TO<\/span> <span class=\"nv\">\"demo\"<\/span> <span class=\"n\">identified<\/span> <span class=\"k\">by<\/span> <span class=\"nv\">\"&lt;&lt;PASSWORD&gt;&gt;\"<\/span>\r\n  <span class=\"mi\">2<\/span>  <span class=\"k\">USING<\/span> <span class=\"s1\">'pgdsn'<\/span><span class=\"p\">;<\/span>\r\n\r\n<span class=\"err\">\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u30fb\u30ea\u30f3\u30af\u304c\u4f5c\u6210\u3055\u308c\u307e\u3057\u305f\u3002<\/span>\r\n\r\n<span class=\"k\">SQL<\/span><span class=\"o\">&gt;<\/span> <span class=\"k\">DESCRIBE<\/span> <span class=\"nv\">\"pg_am\"<\/span><span class=\"o\">@<\/span><span class=\"n\">pglink<\/span>\r\n <span class=\"err\">\u540d\u524d<\/span>                                    <span class=\"k\">NULL<\/span><span class=\"o\">?<\/span>    <span class=\"err\">\u578b<\/span>\r\n <span class=\"c1\">----------------------------------------- -------- ----------------------------<\/span>\r\n <span class=\"n\">oid<\/span>                                       <span class=\"k\">NOT<\/span> <span class=\"k\">NULL<\/span> <span class=\"n\">NUMBER<\/span><span class=\"p\">(<\/span><span class=\"mi\">10<\/span><span class=\"p\">)<\/span>\r\n <span class=\"n\">amname<\/span>                                    <span class=\"k\">NOT<\/span> <span class=\"k\">NULL<\/span> <span class=\"n\">VARCHAR2<\/span><span class=\"p\">(<\/span><span class=\"mi\">189<\/span><span class=\"p\">)<\/span>\r\n <span class=\"n\">amhandler<\/span>                                 <span class=\"k\">NOT<\/span> <span class=\"k\">NULL<\/span> <span class=\"n\">VARCHAR2<\/span><span class=\"p\">(<\/span><span class=\"mi\">765<\/span><span class=\"p\">)<\/span>\r\n <span class=\"n\">amtype<\/span>                                    <span class=\"k\">NOT<\/span> <span class=\"k\">NULL<\/span> <span class=\"nb\">CHAR<\/span><span class=\"p\">(<\/span><span class=\"mi\">3<\/span><span class=\"p\">)<\/span>\r\n<\/code><\/pre>\n<h1>\u6267\u884c SQL \u8bed\u53e5<\/h1>\n<p>\u7531\u4e8e\u53ef\u4ee5\u521b\u5efa DATABASE LINK\uff0c\u56e0\u6b64\u53ef\u4ee5\u5bf9 PostgreSQL \u4e0a\u7684\u8868\u6267\u884c SQL \u8bed\u53e5\u3002\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0cPostgreSQL \u6570\u636e\u5e93\u7684\u5bf9\u8c61\u540d\u57fa\u672c\u4e0a\u4ee5\u5c0f\u5199\u5b58\u50a8\uff0c\u56e0\u6b64\u5728\u6307\u5b9a\u5bf9\u8c61\u540d\u65f6\u9700\u8981\u4f7f\u7528\u53cc\u5f15\u53f7\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"k\">SQL<\/span><span class=\"o\">&gt;<\/span> <span class=\"k\">SELECT<\/span> <span class=\"k\">COUNT<\/span><span class=\"p\">(<\/span><span class=\"o\">*<\/span><span class=\"p\">)<\/span> <span class=\"k\">FROM<\/span> <span class=\"n\">pg_am<\/span><span class=\"o\">@<\/span><span class=\"n\">pglink<\/span><span class=\"p\">;<\/span>\r\n<span class=\"k\">SELECT<\/span> <span class=\"k\">COUNT<\/span><span class=\"p\">(<\/span><span class=\"o\">*<\/span><span class=\"p\">)<\/span> <span class=\"k\">FROM<\/span> <span class=\"n\">pg_am<\/span><span class=\"o\">@<\/span><span class=\"n\">pglink<\/span>\r\n                     <span class=\"o\">*<\/span>\r\n<span class=\"err\">\u884c<\/span><span class=\"mi\">1<\/span><span class=\"err\">\u3067\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002<\/span><span class=\"p\">:<\/span>\r\n<span class=\"n\">ORA<\/span><span class=\"o\">-<\/span><span class=\"mi\">28500<\/span><span class=\"p\">:<\/span>\r\n<span class=\"n\">Oracle<\/span><span class=\"err\">\u304b\u3089<\/span><span class=\"n\">Oracle<\/span><span class=\"err\">\u4ee5\u5916\u306e\u30b7\u30b9\u30c6\u30e0\u3078\u306e\u63a5\u7d9a\u3067\u6b21\u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u304c\u623b\u3055\u308c\u307e\u3057\u305f<\/span><span class=\"p\">:<\/span>  <span class=\"n\">ERROR<\/span><span class=\"p\">:<\/span> <span class=\"n\">relation<\/span> <span class=\"nv\">\"PG_AM\"<\/span> <span class=\"n\">does<\/span>\r\n<span class=\"k\">not<\/span> <span class=\"n\">exist<\/span><span class=\"p\">;<\/span>\r\n<span class=\"k\">No<\/span> <span class=\"n\">query<\/span> <span class=\"n\">has<\/span> <span class=\"n\">been<\/span> <span class=\"n\">executed<\/span> <span class=\"k\">with<\/span> <span class=\"n\">that<\/span> <span class=\"n\">handle<\/span> <span class=\"p\">{<\/span><span class=\"mi\">42<\/span><span class=\"n\">P01<\/span><span class=\"p\">,<\/span><span class=\"n\">NativeErr<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">1<\/span><span class=\"p\">}<\/span>\r\n<span class=\"n\">ORA<\/span><span class=\"o\">-<\/span><span class=\"mi\">02063<\/span><span class=\"p\">:<\/span> <span class=\"err\">\u5148\u884c\u306e\u30a8\u30e9\u30fc\u30fb\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044<\/span><span class=\"mi\">3<\/span> <span class=\"n\">lines<\/span><span class=\"p\">(<\/span><span class=\"n\">PGLINK<\/span><span class=\"p\">)<\/span><span class=\"err\">\u3002<\/span>\r\n\r\n<span class=\"k\">SQL<\/span><span class=\"o\">&gt;<\/span> <span class=\"k\">SELECT<\/span> <span class=\"k\">COUNT<\/span><span class=\"p\">(<\/span><span class=\"o\">*<\/span><span class=\"p\">)<\/span> <span class=\"k\">FROM<\/span> <span class=\"nv\">\"pg_am\"<\/span><span class=\"o\">@<\/span><span class=\"n\">pglink<\/span><span class=\"p\">;<\/span>\r\n\r\n  <span class=\"k\">COUNT<\/span><span class=\"p\">(<\/span><span class=\"o\">*<\/span><span class=\"p\">)<\/span>\r\n<span class=\"c1\">----------<\/span>\r\n         <span class=\"mi\">7<\/span>\r\n<\/code><\/pre>\n<h1>\u6545\u969c\u6392\u9664<\/h1>\n<p>\u6700\u521d\u7684\u9a8c\u8bc1\u4f7f\u7528\u4e86Red Hat Enterprise 7\u548cRed Hat Enterprise 8\u9644\u5e26\u7684PostgreSQL 9\u6216PostgreSQL 10\u7684ODBC\u9a71\u52a8\u7a0b\u5e8f\u3002\u7136\u800c\uff0c\u7531\u4e8e\u65e0\u6cd5\u8fde\u63a5\u5230PostgreSQL 14\u6216\u5728\u641c\u7d22oid\u5217\uff08\u5728PostgreSQL 12\u4e2d\u5df2\u5f03\u7528\uff09\u65f6\u51fa\u73b0\u9519\u8bef\u7b49\u95ee\u9898\uff0c\u6211\u4eec\u51b3\u5b9a\u5b89\u88c5\u9002\u7528\u4e8ePostgreSQL 14\u7684\u65b0\u9a71\u52a8\u7a0b\u5e8f\u3002\u4ee5\u4e0b\u662fPostgreSQL 10 ODBC\u9a71\u52a8\u7a0b\u5e8f\u5728\u8fdb\u884c\u8868\u5b58\u5728\u68c0\u67e5\u65f6\u51fa\u73b0\u9519\u8bef\u7684\u65e5\u5fd7\u3002<\/p>\n<pre class=\"post-pre\"><code>2021-10-19 00:37:20.221 JST [4142] ERROR:  column c.relhasoids does not exist at character 245\r\n2021-10-19 00:37:20.221 JST [4142] STATEMENT:  select n.nspname, c.relname, a.attname, a.atttypid, t.typname, a.attnum, a.attlen, a.atttypmod, a.attnotnull, c.relhasrules, c.relkind, c.oid, pg_get_expr(d.adbin, d.adrelid), case t.typtype when 'd' then t.typbasetype else 0 end, t.typtypmod, c.relhasoids, attidentity, c.relhassubclass from (((pg_catalog.pg_class c inner join pg_catalog.pg_namespace n on n.oid = c.relnamespace and c.oid = 16984) inner join pg_catalog.pg_attribute a on (not a.attisdropped) and a.attnum &gt; 0 and a.attrelid = c.oid) inner join pg_catalog.pg_type t on t.oid = a.atttypid) left outer join pg_attrdef d on a.atthasdef and d.adrelid = a.attrelid and d.adnum = a.attnum order by n.nspname, c.relname, attnum\r\n2021-10-19 00:37:20.222 JST [4142] ERROR:  current transaction is aborted, commands ignored until end of transaction block\r\n<\/code><\/pre>\n<p>\u5f53\u53d1\u751f\u9519\u8bef\u65f6\uff0c\u9700\u8981\u68c0\u67e5\u7684\u65e5\u5fd7\u6587\u4ef6\u5c06\u88ab\u521b\u5efa\u5728 $ORACLE_HOME\/hs\/log \u76ee\u5f55\u4e2d\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span><span class=\"nb\">pwd<\/span>\r\n\/u01\/app\/oracle\/homes\/OraDB19Home1\/hs\/log\r\n\r\n<span class=\"nv\">$ <\/span><span class=\"nb\">ls\r\n<\/span>37951.log            pgdsn_agt_38220.trc  pgdsn_agt_6608.trc\r\n38059.log            pgdsn_agt_38282.trc  pgdsn_agt_6811.trc\r\n38174.log            pgdsn_agt_38728.trc  pgdsn_agt_7245.trc\r\n38220.log            pgdsn_agt_39133.trc  pgdsn_agt_7432.trc\r\n38282.log            pgdsn_agt_39282.trc  pgdsn_agt_7970.trc\r\npgdsn_agt_10390.trc  pgdsn_agt_39390.trc  pgdsn_agt_8004.trc\r\npgdsn_agt_37657.trc  pgdsn_agt_5867.trc   pgdsn_agt_8021.trc\r\npgdsn_agt_37721.trc  pgdsn_agt_5954.trc   pgdsn_agt_8081.trc\r\npgdsn_agt_37951.trc  pgdsn_agt_5994.trc   pgdsn_agt_8451.trc\r\npgdsn_agt_38059.trc  pgdsn_agt_6143.trc   pgdsn_agt_8526.trc\r\npgdsn_agt_38174.trc  pgdsn_agt_6328.trc\r\n<\/code><\/pre>\n<p>\u5982\u679c\u5728\u521d\u59cb\u5316\u53c2\u6570HS_LANGUAGE\u4e2d\u8bbe\u7f6e\u9664AMERICAN_AMERICA.WE8ISO8859P1\u4ee5\u5916\u7684\u503c\uff0c\u90a3\u4e48SQL\u8bed\u53e5\u7684\u6267\u884c\u5c06\u4f1a\u5931\u8d25\uff0c\u56e0\u6b64\u65e0\u6cd5\u5b8c\u6210\u6c49\u5b57\u7f16\u7801\u8f6c\u6362\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"k\">SQL<\/span><span class=\"o\">&gt;<\/span> <span class=\"k\">INSERT<\/span> <span class=\"k\">INTO<\/span> <span class=\"nv\">\"data1\"<\/span><span class=\"o\">@<\/span><span class=\"n\">pglink<\/span> <span class=\"k\">VALUES<\/span> <span class=\"p\">(<\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'\u6f22\u5b57'<\/span><span class=\"p\">);<\/span>\r\n<span class=\"k\">INSERT<\/span> <span class=\"k\">INTO<\/span> <span class=\"nv\">\"data1\"<\/span><span class=\"o\">@<\/span><span class=\"n\">pglink<\/span> <span class=\"k\">VALUES<\/span> <span class=\"p\">(<\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'\u6f22\u5b57'<\/span><span class=\"p\">)<\/span>\r\n<span class=\"o\">*<\/span>\r\n<span class=\"err\">\u884c<\/span><span class=\"mi\">1<\/span><span class=\"err\">\u3067\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002<\/span><span class=\"p\">:<\/span>\r\n<span class=\"n\">ORA<\/span><span class=\"o\">-<\/span><span class=\"mi\">28500<\/span><span class=\"p\">:<\/span>\r\n<span class=\"n\">Oracle<\/span><span class=\"err\">\u304b\u3089<\/span><span class=\"n\">Oracle<\/span><span class=\"err\">\u4ee5\u5916\u306e\u30b7\u30b9\u30c6\u30e0\u3078\u306e\u63a5\u7d9a\u3067\u6b21\u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u304c\u623b\u3055\u308c\u307e\u3057\u305f<\/span><span class=\"p\">:<\/span>  <span class=\"n\">ERROR<\/span><span class=\"p\">:<\/span> <span class=\"n\">invalid<\/span> <span class=\"nb\">byte<\/span> <span class=\"n\">sequence<\/span>\r\n<span class=\"k\">for<\/span> <span class=\"k\">encoding<\/span> <span class=\"nv\">\"UTF8\"<\/span><span class=\"p\">:<\/span> <span class=\"mi\">0<\/span><span class=\"n\">xbf<\/span><span class=\"p\">;<\/span>\r\n<span class=\"n\">Error<\/span> <span class=\"n\">while<\/span> <span class=\"n\">preparing<\/span> <span class=\"k\">parameters<\/span> <span class=\"p\">{<\/span><span class=\"mi\">22021<\/span><span class=\"p\">,<\/span><span class=\"n\">NativeErr<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">1<\/span><span class=\"p\">}<\/span>\r\n<span class=\"n\">ORA<\/span><span class=\"o\">-<\/span><span class=\"mi\">02063<\/span><span class=\"p\">:<\/span> <span class=\"err\">\u5148\u884c\u306e\u30a8\u30e9\u30fc\u30fb\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044<\/span><span class=\"mi\">3<\/span> <span class=\"n\">lines<\/span><span class=\"p\">(<\/span><span class=\"n\">PGLINK<\/span><span class=\"p\">)<\/span><span class=\"err\">\u3002<\/span>\r\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u672c\u6587\u662fJPOUG Advent Calendar 2021\u7b2c16\u7bc7\u6587\u7ae0\u3002\u6628\u5929ora_gonsuke777\u5148\u751f\u7684 [&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-41561","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\u5c1d\u8bd5\u4eceOracle\u6570\u636e\u5e93\u8fde\u63a5\u5230PostgreSQL\u6570\u636e\u5e93 - 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\u5c1d\u8bd5\u4eceoracle\u6570\u636e\u5e93\u8fde\u63a5\u5230postgresql\u6570\u636e\u5e93\u3002\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u6211\u5c1d\u8bd5\u4eceOracle\u6570\u636e\u5e93\u8fde\u63a5\u5230PostgreSQL\u6570\u636e\u5e93\" \/>\n<meta property=\"og:description\" content=\"\u672c\u6587\u662fJPOUG Advent Calendar 2021\u7b2c16\u7bc7\u6587\u7ae0\u3002\u6628\u5929ora_gonsuke777\u5148\u751f\u7684 [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u6211\u5c1d\u8bd5\u4eceoracle\u6570\u636e\u5e93\u8fde\u63a5\u5230postgresql\u6570\u636e\u5e93\u3002\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-08-11T01:44:42+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-30T09:42:39+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=\"4 \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%e5%b0%9d%e8%af%95%e4%bb%8eoracle%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%9e%e6%8e%a5%e5%88%b0postgresql%e6%95%b0%e6%8d%ae%e5%ba%93%e3%80%82\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%b0%9d%e8%af%95%e4%bb%8eoracle%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%9e%e6%8e%a5%e5%88%b0postgresql%e6%95%b0%e6%8d%ae%e5%ba%93%e3%80%82\/\",\"name\":\"\u6211\u5c1d\u8bd5\u4eceOracle\u6570\u636e\u5e93\u8fde\u63a5\u5230PostgreSQL\u6570\u636e\u5e93 - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-08-11T01:44:42+00:00\",\"dateModified\":\"2024-04-30T09:42:39+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/41e222757cdd2a3365361328bd79970a\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%b0%9d%e8%af%95%e4%bb%8eoracle%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%9e%e6%8e%a5%e5%88%b0postgresql%e6%95%b0%e6%8d%ae%e5%ba%93%e3%80%82\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%b0%9d%e8%af%95%e4%bb%8eoracle%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%9e%e6%8e%a5%e5%88%b0postgresql%e6%95%b0%e6%8d%ae%e5%ba%93%e3%80%82\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%b0%9d%e8%af%95%e4%bb%8eoracle%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%9e%e6%8e%a5%e5%88%b0postgresql%e6%95%b0%e6%8d%ae%e5%ba%93%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\u5c1d\u8bd5\u4eceOracle\u6570\u636e\u5e93\u8fde\u63a5\u5230PostgreSQL\u6570\u636e\u5e93\"}]},{\"@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%e5%b0%9d%e8%af%95%e4%bb%8eoracle%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%9e%e6%8e%a5%e5%88%b0postgresql%e6%95%b0%e6%8d%ae%e5%ba%93%e3%80%82\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u6211\u5c1d\u8bd5\u4eceOracle\u6570\u636e\u5e93\u8fde\u63a5\u5230PostgreSQL\u6570\u636e\u5e93 - 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\u5c1d\u8bd5\u4eceoracle\u6570\u636e\u5e93\u8fde\u63a5\u5230postgresql\u6570\u636e\u5e93\u3002\/","og_locale":"zh_CN","og_type":"article","og_title":"\u6211\u5c1d\u8bd5\u4eceOracle\u6570\u636e\u5e93\u8fde\u63a5\u5230PostgreSQL\u6570\u636e\u5e93","og_description":"\u672c\u6587\u662fJPOUG Advent Calendar 2021\u7b2c16\u7bc7\u6587\u7ae0\u3002\u6628\u5929ora_gonsuke777\u5148\u751f\u7684 [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u6211\u5c1d\u8bd5\u4eceoracle\u6570\u636e\u5e93\u8fde\u63a5\u5230postgresql\u6570\u636e\u5e93\u3002\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-08-11T01:44:42+00:00","article_modified_time":"2024-04-30T09:42:39+00:00","author":"\u79d1, \u96c5","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u79d1, \u96c5","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"4 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%b0%9d%e8%af%95%e4%bb%8eoracle%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%9e%e6%8e%a5%e5%88%b0postgresql%e6%95%b0%e6%8d%ae%e5%ba%93%e3%80%82\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%b0%9d%e8%af%95%e4%bb%8eoracle%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%9e%e6%8e%a5%e5%88%b0postgresql%e6%95%b0%e6%8d%ae%e5%ba%93%e3%80%82\/","name":"\u6211\u5c1d\u8bd5\u4eceOracle\u6570\u636e\u5e93\u8fde\u63a5\u5230PostgreSQL\u6570\u636e\u5e93 - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-08-11T01:44:42+00:00","dateModified":"2024-04-30T09:42:39+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/41e222757cdd2a3365361328bd79970a"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%b0%9d%e8%af%95%e4%bb%8eoracle%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%9e%e6%8e%a5%e5%88%b0postgresql%e6%95%b0%e6%8d%ae%e5%ba%93%e3%80%82\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%b0%9d%e8%af%95%e4%bb%8eoracle%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%9e%e6%8e%a5%e5%88%b0postgresql%e6%95%b0%e6%8d%ae%e5%ba%93%e3%80%82\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%b0%9d%e8%af%95%e4%bb%8eoracle%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%9e%e6%8e%a5%e5%88%b0postgresql%e6%95%b0%e6%8d%ae%e5%ba%93%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\u5c1d\u8bd5\u4eceOracle\u6570\u636e\u5e93\u8fde\u63a5\u5230PostgreSQL\u6570\u636e\u5e93"}]},{"@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%e5%b0%9d%e8%af%95%e4%bb%8eoracle%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%9e%e6%8e%a5%e5%88%b0postgresql%e6%95%b0%e6%8d%ae%e5%ba%93%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\/41561","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=41561"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/41561\/revisions"}],"predecessor-version":[{"id":93346,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/41561\/revisions\/93346"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=41561"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=41561"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=41561"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}