将一个XML文件导入postgres,为什么$ body $ error?

时间:2017-11-21 09:51:55

标签: postgresql plpgsql

CREATE OR REPLACE FUNCTION f_sync_from_xml()
  RETURNS boolean AS
$BODY$
DECLARE
    myxml    xml;
    datafile text := 'path/to/my_file.xml';
BEGIN

myxml := pg_read_file(datafile, 0, 100000000); 

此函数返回错误

  

错误:未结算的美元引用字符串在或附近" $ BODY $

。我该如何解决?

1 个答案:

答案 0 :(得分:2)

定义没有完成,你没有终止它,例如:

CREATE OR REPLACE FUNCTION f_sync_from_xml()
  RETURNS boolean AS
$BODY$
DECLARE
    myxml    xml;
    datafile text := 'path/to/my_file.xml';
BEGIN

myxml := pg_read_file(datafile, 0, 100000000); 

END;
$BODY$ language plpgsql;

这里$BODY$是一个安全的引用 - 函数定义保留在引号内