Запрос работает в PGAdmin, но не работает на сервере (узел \ localhost) - PullRequest
0 голосов
/ 17 мая 2018

Мы используем сервер узлов и используем модуль pg для вызова нашей базы данных postgres.При выполнении запроса в pgadmin я получаю желаемые результаты, но при попытке выполнить тот же запрос на нашем сервере (js) он выдает ошибки, кто-нибудь знает, что может вызвать это и как это можно исправить?

Вот запрос:

 SELECT DISTINCT waswindows.computername as servername, waswindows.appcode, ipaddress, result, WASInventorywindows.uploaddate
    FROM public.waswindows JOIN WASInventorywindows
    ON (waswindows.appcode = $1 OR waswindows.computername LIKE $2 OR WASInventorywindows.appcustodian LIKE $2)
    AND position(WASInventorywindows.servername in waswindows.computername) > 0
    AND result = 'FAILED' AND waswindows.uploaddate = (SELECT MAX(uploaddate) FROM waswindows)

Он отлично работает в PGAdmin (заменив $ 1 и $ 2 на параметры), и очень похожий запрос выполняется как в pgAdmin, так и в Server без каких-либо ошибок, но это не получается.Вот журнал ошибок:

PARAMS ARE: Alex  AND   %Alex%
{ error: syntax error at or near "JOIN"
    at Connection.parseE (C:\Users\326009107.MAPLE\Desktop\Compliance\GHSRiskTSSCompliance\node_modules\pg\lib\connection.js:567:11)
    at Connection.parseMessage (C:\Users\326009107.MAPLE\Desktop\Compliance\GHSRiskTSSCompliance\node_modules\pg\lib\connection.js:391:17)
    at Socket.<anonymous> (C:\Users\326009107.MAPLE\Desktop\Compliance\GHSRiskTSSCompliance\node_modules\pg\lib\connection.js:129:22)
    at emitOne (events.js:96:13)
    at Socket.emit (events.js:188:7)
    at readableAddChunk (_stream_readable.js:176:18)
    at Socket.Readable.push (_stream_readable.js:134:10)
    at TCP.onread (net.js:548:20)
  name: 'error',
  length: 94,
  severity: 'ERROR',
  code: '42601',
  detail: undefined,
  hint: undefined,
  position: '143',
  internalPosition: undefined,
  internalQuery: undefined,
  where: undefined,
  schema: undefined,
  table: undefined,
  column: undefined,
  dataType: undefined,
  constraint: undefined,
  file: 'scan.l',
  line: '1086',
  routine: 'scanner_yyerror' }
C:\Users\326009107.MAPLE\Desktop\Compliance\GHSRiskTSSCompliance\API\WAS\getdata.js:44
                                set.push(results.rows);

мы попытались изменить имена на псевдонимы, изменить порядок элементов, изменить строку базы данных и все еще ничего.

1 Ответ

0 голосов
/ 17 мая 2018

Хорошо, поэтому я нашел причину и разместил ее здесь для тех, кто будет бороться с той же проблемой, при объединении строк в запросе на веб-стороне, убедитесь, что есть пробелы, например:

  "SELECT DISTINCT name, address, city" +
  "FROM public.city JOIN employees"...

неверно, правильная версия будет выглядеть так:

  "SELECT DISTINCT name, address, city" +
  " FROM public.city JOIN employees"...
   ^_________note this space_______
...