从其他数据库插入表

| 的SQL
INSERT INTO t_publikasi
  (\"idPublikasi\",\"kdBahanPustaka\",\"bulanTerbit\", \"tahunTerbit\", \"noUrutBI\",
   \"pdfDir\", \"judul\")
SELECT * 
  FROM dblink(\'dbname=perpus2 port=5432 user=dbdev password=develop\',
              \'SELECT \'113\' || substring(\"no_pustaka\",4,2) as bb ||
                      substring(\"no_pustaka\",6,2) as cc ||
                      substring(\"no_pustaka\",9,4) as dd,
                      \'113\', 
                      substring(\"no_pustaka\",4,2) as bb,
                      substring(\"no_pustaka\",6,2) as cc,
                      substring(\"no_pustaka\",9,4) as dd,
                      \"file_pdf\",\"judul\"
                 FROM kuesioner 
             ORDER BY bb, cc, dd\') AS kuesioner (
    id varchar(10), 
    kd varchar(10),
    bln varchar(10),
    thn varchar(10),
    urut varchar(10),
    file_pdf varchar(50), 
    judul varchar(50));
错误
ERROR:  syntax error at or near \"113\"
LINE 1: ...2 port=5432 user=dbdev password=develop\',\'SELECT \'113\' || su...

                                                            ^
ERROR: syntax error at or near \"113\"
SQL state: 42601
    
已邀请:
更改 \'选择\'113 \' 至 \'选择113 要么 \'选择\“ 113 \” 希望能帮助到你。     
当您编写“ 2”时,您将终止包含SELECT语句的dblink()调用的第二个参数,然后启动一个数字文字,即113。
\'SELECT 113
之所以有效,是因为它将选择一个数字而不是字符文字。 然后,“ 4”运算符会将其静默转换回字符值。 在字符文字中嵌入单引号的正确方法是编写两个单引号:
, \'SELECT \'\'113\'\'||substring(... \'
    
使用ѭ6或美元报价。
...
FROM dblink(\'dbname=perpus2 port=5432 user=dbdev password=develop\',
          $my_dblink_arg$SELECT \'113\' ||
...
      FROM kuesioner 
         ORDER BY bb, cc, dd$my_dblink_arg$) AS kuesioner
...
    

要回复问题请先登录注册