pg.ddx.io pgsql-sql@postgresql.org mailing list archive
help / color / mirror / Atom feedparser: parse error at or near "$1"
3+ messages / 3 participants
[nested] [flat]
* parser: parse error at or near "$1"
@ 2002-08-14 12:26 Sugandha Shah <Sugandhas@cybage.com>
0 siblings, 2 replies; 3+ messages in thread
From: Sugandha Shah @ 2002-08-14 12:26 UTC (permalink / raw)
To: pgsql-sql
Hi ,
I'm getting this error :
Error occurred while executing PL/pgSQL function ins_schedule_status
line 42 at SQL statement
parser: parse error at or near "$1"
Unable to locate the cause. Please any hint or clue will be of great help.
Below is the function
CREATE FUNCTION ins_schedule_status(int4,time without time zone,varchar(256),int2,int2,int2) RETURNS int4 AS '
DECLARE
schedule_id ALIAS FOR $1;
var_current_time ALIAS FOR $2;
status ALIAS FOR $3;
status_code ALIAS FOR $4;
module ALIAS FOR $5;
var_level ALIAS FOR $6 ;
last_status varchar(256) ;
last_code int2;
level_value int2 ;
BEGIN
IF ( var_level != 0 )THEN
--select level_value =var_level;
level_value :=var_level;
ELSE
IF ( status_code = 0 or status_code < 0 )THEN
--select level_value = 1 ;
level_value := 1 ;
ELSE
--select level_value = 3 ;
level_value := 3 ;
END IF;
END IF;
-- dont report server control values, just positive values
IF ( status_code < 0 ) THEN
--select status_code = null;
--status_code := null;
-- check for the exact same status string reported
-- previously and skip it if found
select into last_status top 1 status, last_code status_code from status_log where schedule_id =schedule_id order by complete_time desc ;
if ( last_status = status and ( ( last_code is null and status_code is null ) or last_code = status_code ) ) THEN
return ;
END IF;
END IF;
insert into status_log ( log_id, computer_id,schedule_id,status,
status_code,
module,
level,
user_id,
schedule_time,
complete_time )
select 1,
computer_id,
schedule_id,
status,
status_code,
module,
level_value,
user_id,
start_time,
var_current_time
from
event_schedule
where
schedule_id =schedule_id;
return status_code;
END;'
LANGUAGE 'plpgsql' ;
Original MS _SQL stored procedure
create procedure ins_schedule_status
@schedule_id int,
@current_time datetime,
@status varchar(254),
@status_code smallint,
@module smallint,
@level smallint = 0
as
declare @level_value smallint
if ( @level != 0 )
select @level_value = @level
else
begin
if ( @status_code = 0 or @status_code < 0 )
select @level_value = 1
else
select @level_value = 3
end
-- don't report server control values, just positive values
if ( @status_code < 0 )
select @status_code = null
-- check for the exact same status string reported
-- previously and skip it if found
declare @last_status varchar(256)
declare @last_code smallint
select top 1 @last_status = status, @last_code = status_code from status_log
where schedule_id = @schedule_id order by complete_time desc
if ( @last_status = @status and ( ( @last_code is null and @status_code is null ) or @last_code = @status_code ) )
return
declare @tran int
set @tran = @@trancount
if (@tran = 0)
begin transaction
insert into status_log
( computer_id,
schedule_id,
status,
status_code,
[module],
[level],
[user_id],
schedule_time,
complete_time )
select
computer_id,
schedule_id,
@status,
@status_code,
@module,
@level_value,
user_id,
start_time,
@current_time
from
event_schedule
where
schedule_id = @schedule_id
if (@@error != 0)
begin
if (@tran = 0)
rollback transaction
end
if (@tran = 0)
commit transaction
GO
Regards,
-Sugandha
^ permalink raw reply [nested|flat] 3+ messages in thread
* Re: parser: parse error at or near "$1"
@ 2002-08-14 13:02 Oliver Elphick <olly@lfix.co.uk>
parent: Sugandha Shah <Sugandhas@cybage.com>
1 sibling, 0 replies; 3+ messages in thread
From: Oliver Elphick @ 2002-08-14 13:02 UTC (permalink / raw)
To: Sugandha Shah <Sugandhas@cybage.com>; +Cc: pgsql-sql
On Wed, 2002-08-14 at 13:26, Sugandha Shah wrote:
> Hi ,
> I'm getting this error :
>
> Error occurred while executing PL/pgSQL function ins_schedule_status
> line 42 at SQL statement
> parser: parse error at or near "$1"
>
> Unable to locate the cause. Please any hint or clue will be of great help.
>
> Below is the function
>
>
> CREATE FUNCTION ins_schedule_status(int4,time without time zone,varchar(256),int2,int2,int2) RETURNS int4 AS '
> DECLARE
> schedule_id ALIAS FOR $1;
...
> insert into status_log ( log_id, computer_id,schedule_id,status,
schedule_id in the insert is a column name; the alias subsitutes $1 at
that point. You had better choose variable names that don't conflict
with anything else.
--
Oliver Elphick Oliver.Elphick@lfix.co.uk
Isle of Wight, UK
http://www.lfix.co.uk/oliver
GPG: 1024D/3E1D0C1C: CA12 09E0 E8D5 8870 5839 932A 614D 4C34 3E1D 0C1C
========================================
"Let us therefore come boldly unto the throne of grace,
that we may obtain mercy, and find grace to help in
time of need." Hebrews 4:16
^ permalink raw reply [nested|flat] 3+ messages in thread
* Re: parser: parse error at or near "$1"
@ 2002-08-14 13:21 Masaru Sugawara <rk73@sea.plala.or.jp>
parent: Sugandha Shah <Sugandhas@cybage.com>
1 sibling, 0 replies; 3+ messages in thread
From: Masaru Sugawara @ 2002-08-14 13:21 UTC (permalink / raw)
To: Sugandha Shah <Sugandhas@cybage.com>; +Cc: pgsql-sql
On Wed, 14 Aug 2002 17:56:16 +0530
"Sugandha Shah" <Sugandhas@cybage.com> wrote:
> -- check for the exact same status string reported
> -- previously and skip it if found
>
> select into last_status top 1 status, last_code status_code from
>status_log where schedule_id =schedule_id order by complete_time desc ;
PostgreSQL doesn't have a TOP keyword. You'll need to use a LIMIT keyword.
See docs.
http://www.postgresql.org/idocs/index.php?sql-select.html
Regards,
Masaru Sugawara
^ permalink raw reply [nested|flat] 3+ messages in thread
end of thread, other threads:[~2002-08-14 13:21 UTC | newest]
Thread overview: 3+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2002-08-14 12:26 parser: parse error at or near "$1" Sugandha Shah <Sugandhas@cybage.com>
2002-08-14 13:02 ` Oliver Elphick <olly@lfix.co.uk>
2002-08-14 13:21 ` Masaru Sugawara <rk73@sea.plala.or.jp>
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox