0

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
4

3 回答 3

2

改变

'选择'113'

'选择 113

或者

'选择“113”

希望能帮助到你。

于 2011-05-25T03:14:24.323 回答
0

使用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
...
于 2011-05-25T18:31:52.703 回答
0

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

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

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

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

于 2011-05-25T06:22:54.750 回答