Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Netbeans 8.1+;PostgreSQL:错误:未终止的美元引号字符串位于或接近$$_Postgresql_Netbeans_Netbeans 8.1 - Fatal编程技术网

Netbeans 8.1+;PostgreSQL:错误:未终止的美元引号字符串位于或接近$$

Netbeans 8.1+;PostgreSQL:错误:未终止的美元引号字符串位于或接近$$,postgresql,netbeans,netbeans-8.1,Postgresql,Netbeans,Netbeans 8.1,我正在尝试执行SQL以创建存储函数并收到此错误(第一个错误): 谷歌为其他工具提供了很多注释,说问题出在客户端驱动程序中,但我找不到如何在NetBeans中特别解决这个问题的提示。我的环境是: Netbeans 8.1 目标数据库服务器-PostgreSQL 9.5 beta 2 JDBC驱动程序(使用这两种驱动程序进行测试): 与Netbeans捆绑的一个:postgresql-9.2-1002.jdbc4.jar 从postgres站点下载的最新版本:postgresql-9.4-120

我正在尝试执行SQL以创建存储函数并收到此错误(第一个错误):

谷歌为其他工具提供了很多注释,说问题出在客户端驱动程序中,但我找不到如何在NetBeans中特别解决这个问题的提示。我的环境是:

  • Netbeans 8.1
  • 目标数据库服务器-PostgreSQL 9.5 beta 2
  • JDBC驱动程序(使用这两种驱动程序进行测试):
    • 与Netbeans捆绑的一个:postgresql-9.2-1002.jdbc4.jar
    • 从postgres站点下载的最新版本:postgresql-9.4-1204.jdbc42.jar
SQL(在除Netbeans以外的所有SQL runner应用程序中运行正常,例如PgAdminIII):


那么-要使Netbeans成功执行,必须做些什么呢?

Netbeans不理解美元报价,因此将所有内容发送到第一个
(位于
ret_val varchar;
)到服务器-这当然是一个不完整的语句。是的,这就是其他工具所说的。有治疗网虫的方法吗?我不知道。尽管我专门使用NetBeans进行开发,但我从未使用它来处理数据库。简言之:您不能将NetBeans与美元报价函数一起使用。您需要使用标准的SQL引号(当您编写复杂的函数时,这非常烦人)NetBeans不理解美元引号,因此将所有内容发送到第一个
(位于
ret_val varchar;
)到服务器-这当然是一个不完整的语句。是的,这就是其他工具所说的。有治疗网虫的方法吗?我不知道。尽管我专门使用NetBeans进行开发,但我从未使用它来处理数据库。简言之:您不能将NetBeans与美元报价函数一起使用。您需要使用标准的SQL引用(当您编写复杂的函数时,这真的很烦人)
Error code 0, SQL state 42601: ERROR: unterminated dollar-quoted string at or near "$$
    DECLARE
      ret_val varchar"
  Position: 98
Line 1, column 5
CREATE OR REPLACE FUNCTION test(IN arg varchar)
  RETURNS varchar 
  LANGUAGE plpgsql AS $$
DECLARE
  ret_val varchar;
BEGIN
  select concat(arg, ' result') into ret_val;
  return ret_val;
END $$;

select test('aaa')