【问题标题】:insert table from different database从不同的数据库插入表
【发布时间】:2023-03-29 16:21:01
【问题描述】:

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

【问题讨论】:

  • 您可能希望更改您的perpus2 数据库的dbdev 帐户的密码...
  • 你需要引用那些名言...
  • 从删除 dblink 语句中第一列的列别名开始...
  • @Mitch Wheat:我已经删除了列别名,但我想与 '.' 合并...如果在一个数据库中选择 113 || '。来自 kuesioner 是有效的,但是当我在差异数据库中这样做时它不起作用

标签: sql postgresql insert dblink


【解决方案1】:

改变

'选择'113'

'选择 113

'选择“113”

希望对你有帮助。

【讨论】:

  • SELECT "113" 是无效的 SQL 语法,因为字符文字不能用双引号引起来。双引号仅用于引用对象名称(列、表、...)
【解决方案2】:

当您编写 'SELECT '113'|| 时,您将终止包含 SELECT 语句的 dblink() 调用的第二个参数,然后您开始一个数字文字 113。

'SELECT 113 有效,因为它将选择一个数字而不是字符文字。 然后|| 运算符会默默地将其转换回字符值。

在字符文字中嵌入单引号的正确方法是写两个单引号:

, 'SELECT ''113''||substring(... '

【讨论】:

    【解决方案3】:

    使用E 或美元报价。

    ...
    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
    ...
    

    【讨论】:

      猜你喜欢
      • 2013-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-18
      • 2017-06-14
      • 1970-01-01
      • 2019-08-30
      相关资源
      最近更新 更多