Hi Scot,

thanks for your response. I have tried both in the file and in the sql tag. I get an error in both cases.

Cheers,

Gareth

Scot P. Floess wrote:
Gareth:

My apologies, I meant escaping when it exists in another file. I never actually included my SQL statements in my build script - this was probably 3 - 4 years ago when I was doing so.

Gareth Reakes wrote:
Hi,

    Very simplified version:

        <sql
          keepformat="true"
          driver="${jdbc.driverClassName}"
          url="${jdbc.url}"
          userid="${jdbc.username}"
          password="${jdbc.password}"
          delimiter="lineEnding"
          delimitertype="row"
          escapeprocessing="false">
CREATE OR REPLACE FUNCTION update_track_rating_average() RETURNS TRIGGER AS $update_track_rating_average$ \
                BEGIN \
                RETURN NULL; \
                END; \
lineEnding                                 <classpath>
<pathelement location="${lib_dir}/postgresql-8.1-405.jdbc2.jar" />
          </classpath>
        </sql>


Adding \ to end of lines made no difference.


Thanks for your help,

Gareth

Anderson, Rob (Global Trade) wrote:
Can you post the portion of your build.xml that produces the error you
mention below.

-Rob A
-----Original Message-----
From: Gareth Reakes [mailto:[EMAIL PROTECTED] Sent: Tuesday, May 16, 2006 9:15 AM
To: Ant Users List
Subject: postgres stored procedure sql task problem

Hi all,

Apologies if this ends up being a duplicate - It seems this email was not registered

I am having a problem sucking in a stored procedure. I works fine on the command line to psql but gives the error

org.postgresql.util.PSQLException: ERROR: unterminated dollar-quoted string at or near $update_track_rating_average$

    DECLARE
         current_average_rating            FLOAT"


The first few lines of the stored procedure are:

CREATE OR REPLACE FUNCTION update_track_rating_average() RETURNS TRIGGER AS $update_track_rating_average$

    DECLARE
         current_average_rating            FLOAT;
         number_of_ratings                 BIGINT;
     old_rating                        SMALLINT;
     new_rating                        SMALLINT;
     BEGIN

     -- get current average rating / number of ratings
SELECT INTO current_average_rating average_rating FROM tracks WHERE track_id = OLD.track_id; SELECT INTO number_of_ratings ratings FROM tracks WHERE track_id = OLD.track_id;

         -- rating removed / updated
         IF (TG_OP = 'DELETE' OR TG_OP = 'UPDATE') THEN



I have played with delimiter, delimitertype, escapeprocessing and keepformat with no luck. Can anyone offer some advice?


Cheers,

Gareth

--
Gareth Reakes, Managing Director      Parthenon Computing
+44-1865-811184                  http://www.parthcomp.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]





---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]





--
Gareth Reakes, Managing Director      Parthenon Computing
+44-1865-811184                  http://www.parthcomp.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to