2017-11-21 2 views
0
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); 

この関数は、エラー

ERROR: unterminated dollar-quoted string at or near "$BODY$

を返します。どうすれば解決できますか?

+0

を引用し、それは全体のコード..です投稿してください?エラーも同様 –

+0

これはコード全体です...エラーは、ドルで区切られた文字列で終了していません – James

+0

関数本体の 'end'がありません。 –

答えて

2

定義は、それを終了するよuneedを完了していない、例えば:

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$安全で引用された - 関数定義は、内部のままでは

+0

CREATE TEMP TABLE tmp AS SELECT(xpath( '// some_id/text()'、x))[1] ::テキストAS id FROM unnest( '/ xml/path/to/datum'、myxml )) バツ; – James

+0

myxmlのエラー、列が見つかりません – James

+1

コメントでデバッグしないでください。問題が発生した場合は、ドキュメントやグーグルを読んで解決できません。新しい質問を投稿してください –

関連する問題