What Steve says is exactly what I want, and the code

         my $sth = $dbh->prepare(q{
            BEGIN select vtr_id into :1 from t_vertraege
              where vtr_nr='$vbb_ver_nr'; 
            END;
          });

works very well...

        -----Urspr�ngliche Nachricht-----
        Von:    Steve Sapovits [mailto:[EMAIL PROTECTED]]
        Gesendet am:    Mittwoch, 23. Mai 2001 16:17
        An:     Bart Lateur; [EMAIL PROTECTED]
        Betreff:        RE: AW: (not) Too stupid to bind a variable... :-)


        I think he's trying to use it as a PL/SQL variable -- not
        a table name.  As in this block of PL/SQL code in the 
        DBD::Oracle docs:

              FUNCTION func_np
                RETURN VARCHAR2
              IS
                ret_val VARCHAR2(20);
              BEGIN
                SELECT USER INTO ret_val FROM DUAL;
                RETURN ret_val;
              END;

        In this case the PL/SQL code is selecting from a table into
        a variable.

        The stuff below looks like an attempt to create on the fly
        PL/SQL.  I've never seen that done.



        > -----Original Message-----
        > From: Bart Lateur [mailto:[EMAIL PROTECTED]]
        > Sent: Wednesday, May 23, 2001 10:13 AM
        > To: [EMAIL PROTECTED]
        > Subject: Re: AW: (not) Too stupid to bind a variable... :-)
        > 
        > 
        > On Wed, 23 May 2001 16:02:00 +0200, [EMAIL PROTECTED] wrote:
        > 
        > >What I wanted is:
        > >
        > >  my $sth = $dbh->prepare(q{
        > >    BEGIN select vtr_id into :1 from t_vertraege
        > >      where vtr_nr='$vbb_ver_nr'; 
        > >    END;
        > >  });
        > 
        > You may turn this around as much as you like, but you're 
        > still trying to
        > do something for which placeholders were never intended. You 
        > want to use
        > a placeholder for a table name. Placeholders were only intended to
        > reference field (=column) values. Don't be surprised if anything
else
        > doesn't work: no field names, no table names. That's not what 
        > it's for.
        > Only field values.
        > 
        > -- 
        >       Bart.
        > 

Reply via email to