Re: SQL END SQL postgresql

Mike Aubury <[email protected]> Wed, 7 Jul 2021 08:58:34 +0100
Newsgroups gmane.comp.lang.4gl.aubit.general
Message-ID <CAGAq4WGBfcsdTYwN0jR8VdEv9+LyyiUu_7o9ZaUYBZf_CZ6M2Q@mail.gmail.com>
":" is used to denote the use of a 4gl variable (along with $) in the
embedded SQL :(

If you're compiling from source - you can comment that out and just use "$"
:

sql_block_entry:
        INTO expanded_obind_var_list {
                        $<ptr>$=A4GL_new_expr_simple
(ET_EXPR_SQLBLOCK_INTO);
                        $<ptr>$->expr_str_u.expr_list=$<ptr_list>2;
        }
        | DOLLAR SQL_TEXT {
      char  numbered_value[300];
      sprintf(numbered_value,"$%s",$<str>2);
                  $<ptr>$=A4GL_new_expr_simple_string(numbered_value,
ET_EXPR_SQLBLOCK_TEXT);
        }
        | DOLLAR ensured_variable_usage_expression {
                        $<ptr>$=$<ptr>2;
        }
        | COLON ensured_variable_usage_expression {
                        $<ptr>$=$<ptr>2;
        }
        | sql_block_text {
                $<ptr>$=A4GL_new_expr_simple_string($<sql_string>1,
ET_EXPR_SQLBLOCK_TEXT);
                free($<sql_string>1);
        }
;

(aubit4glsrc/compilers/4glc/rules/sqlblock.rule)

<http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>
Virus-free.
www.avg.com
<http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>
<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

On Wed, 7 Jul 2021 at 03:56, Iwan AB <[email protected]> wrote:

> Hi,
>
> I try SQL END SQL block to check whether a table is defined with or
> without oid in postgresql as follow
>
>     SQL WITHOUT CONVERSIONS
>
>         SELECT attname FROM pg_attribute
>             WHERE attrelid = 't_test'::regclass
>               AND attname = 'oid'
>
>     END SQL
>
> when compiled, it came up with the following error
>
>     SQL WITHOUT CONVERSIONS
>
>         SELECT attname FROM pg_attribute
>             WHERE attrelid = 't_test'::regclass
> |___________________________________________^
> | Error at line 24, character 45
> | ':' does not represent a defined variable (:)
>               AND attname = 'oid'
>
>     END SQL
>
> why is that?
>
> Regards,
>
> Iwan
>
>
> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail> Virus-free.
> www.avast.com
> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>
> <#m_4709480780349622479_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
> _______________________________________________
> Aubit4gl-discuss mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/aubit4gl-discuss
>

_______________________________________________
Aubit4gl-discuss mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/aubit4gl-discuss