Re: Syntax help please

Поиск
Список
Период
Сортировка
От Fernando Hevia
Тема Re: Syntax help please
Дата
Msg-id 09e301c90ec7$52a49b90$8f01010a@iptel.com.ar
обсуждение исходный текст
Ответ на Syntax help please  ("Ruben Gouveia" <rubes7202@gmail.com>)
Ответы Re: Syntax help please  ("Ruben Gouveia" <rubes7202@gmail.com>)
Список pgsql-sql
You seem to be missing a ';' in this line:       v_from := c_from ;       v_where := p_where            <--- missing ;
here      v_stmt := c_select || v_from || v_where;
 

Regards,
Fernando



________________________________
De: pgsql-sql-owner@postgresql.org
[mailto:pgsql-sql-owner@postgresql.org] En nombre de Ruben GouveiaEnviado el: Jueves, 04 de Septiembre de 2008
16:37Para:pgsql-sql@postgresql.orgAsunto: [SQL] Syntax help pleaseI can't for the life of me figure out what's wrong
withthis syntax.
 
I get the following error when i try and create this function.ERROR:  syntax error at or near "$2" at character
15QUERY: SELECT   $1   $2  :=  $3  ||  $4  ||  $5 CONTEXT:  SQL statement in PL/PgSQL function "fcn_gen_statement"
 
near line 24here's what i am trying to create:CREATE OR REPLACE FUNCTION fcn_gen_statement(p_type varchar,
                               p_where varchar,                                             p_newonly numeric)RETURNS
varcharAS $$DECLARE    c_select varchar(64) := 'select count(distinct m.id) ';    c_from varchar(64) := 'from job m ';
 c_newonly_from varchar(128) := 'from (select id,
 
min(date_created) as date_created '||                                         'from hr '||
          'group_by id) m ';    v_from varchar(512);    v_where varchar(512);    v_stmt varchar(2048);
               BEGIN    if p_newonly = 1 then        v_from := c_newonly_from;    else        v_from := c_from;    end
if;   if upper(p_type) = 'NEW' then        v_stmt := c_select || v_from || p_where;    elsif upper(p_type) = 'OLD' then
      v_from := c_from ;        v_where := p_where        v_stmt := c_select || v_from || v_where;      elsif
upper(p_type)= 'LAST_JOB' then        v_from := v_from ||             ', (select distinct job_id ' ||            'from
job_log'||            'where status = 10) d ';        v_where := p_where ||            'and m.id = d.job_id ';
v_stmt:= c_select || v_from || v_where;    elsif upper(p_type) = 'NEW_JOB' then        v_from := v_from ||
',(select distinct job_id ' ||            'from job_log' ||            'where status = 12) d ';        v_where :=
p_where||            'and m.id = d.job_id ';        v_stmt := c_select || v_from || v_where;    end if;    return
(v_stmt);END;$$LANGUAGE plpgsql;   
 




В списке pgsql-sql по дате отправления:

Предыдущее
От: "Ruben Gouveia"
Дата:
Сообщение: Syntax help please
Следующее
От: "Ruben Gouveia"
Дата:
Сообщение: Re: Syntax help please