Subject | Re: [firebird-support] Re: Token unknown - SUSPEND/END |
---|---|
Author | Nick Upson |
Post date | 2003-07-09T12:27:01Z |
here is the complete metadata for an SP with a union and suspend, this is
tested and runs
CREATE PROCEDURE ZZZ (INPARAM1 INTEGER)
returns (OUTPARAM1 VARCHAR(50))
AS
begin
for
select companyname from company where plustolerance > :inparam1
UNION
select companyname from company where minustolerance > :inparam1
INTO :outparam1
do
begin
suspend;
end
end
it's called by
select * from zzz (5)
obviously the selects return different values but they have to be compatible
types
to go into the variable (outparam1 above)
Hotmail messages direct to your mobile phone http://www.msn.co.uk/msnmobile
tested and runs
CREATE PROCEDURE ZZZ (INPARAM1 INTEGER)
returns (OUTPARAM1 VARCHAR(50))
AS
begin
for
select companyname from company where plustolerance > :inparam1
UNION
select companyname from company where minustolerance > :inparam1
INTO :outparam1
do
begin
suspend;
end
end
it's called by
select * from zzz (5)
obviously the selects return different values but they have to be compatible
types
to go into the variable (outparam1 above)
>From: "Ghanshyam" <ghanshyam_patil@...>_________________________________________________________________
>Every SELECT statement differs in the values fetched. As per your
>suggestion, I've used only one INTO at the end. But, still error.
>Error in detail:
>
>Invalid token.
>Dynamic SQL Error.
>SQL error code = -104.
>Invalid command.
>Data type unknown.
>
>--- In firebird-support@yahoogroups.com, Alan McDonald <alan@m...>
>wrote:
> > you need one into at the end
> > INTO :v_location, :v_locid, :v_name;
> >
> > Alan
> >
> > > -----Original Message-----
> > > From: Ghanshyam [mailto:ghanshyam_patil@m...]
> > > Sent: Wednesday, 9 July 2003 9:37 PM
> > > To: firebird-support@yahoogroups.com
> > > Subject: [firebird-support] Re: Token unknown - SUSPEND/END
> > >
> > >
> > >
> > > Hello,
> > >
> > > In the given SP, I've concatenated country, state & county and
> > > fetched it as location. Whether I need to write INTO for each
> > > individual select in SP (i.e. SELECT .. UNION SELECT .. UNION
> > > SELECT .. ) or only one INTO at the end of last SELECT ?
> > > If I write INTO for individual SELECT, it gave error - "Token
> > > Unknown - UNION" & if INTO is written at the end of last SELECT,
>then
> > > it gives error "Invalid command. Data type unknown."
> > > Any help appreciated.
> > >
> > > Part of SP :
> > >
> > > SELECT tblcountry.country || '/' || tblstate.state || '/' ||
> > > tblcounty.county AS location ,tblcounty.countyid AS locid ,'1' AS
> > > name FROM tblcounty,tblstate,tblcountry WHERE
>tblcountry.countryid =
> > > tblstate.countryid AND tblcounty.stateid = tblstate.stateid AND
> > > countyid IN (SELECT tblcounty.countyid FROM tblcounty,tbltaxcounty
> > > WHERE tblcounty.countyid = tbltaxcounty.countyid AND
> > > tbltaxcounty.taxid=:taxno )
> > >
> > > UNION
> > > SELECT tblcountry.country || '/' || tblstate.state AS
> > > location ,tblstate.stateid AS locid ,'2' AS state
> > > FROM tblstate,tblcountry WHERE tblcountry.countryid =
> > > tblstate.countryid AND tblstate.stateid IN ( SELECT
>tblstate.stateid
> > > FROM tblstate,tbltaxstate WHERE tblstate.stateid =
> > > tbltaxstate.stateid AND tbltaxstate.taxid=:taxno)
> > > UNION
> > > SELECT country,countryid AS locid ,'3' AS country FROM tblcountry
> > > WHERE countryid IN ( SELECT tblcountry.countryid FROM
> > > tblcountry,tbltaxcountry WHERE tblcountry.countryid =
> > > tbltaxcountry.countryid AND tbltaxcountry.taxid=:taxno)
> > >
> > >
> > > Regards,
> > > Ghanshyam.
> > >
> > >
> > > --- In firebird-support@yahoogroups.com, "Fabrice Aeschbacher"
> > > <fabrice.aeschbacher@s...> wrote:
> > > > Ghanshyam,
> > > >
> > > > Here is an example:
> > > >
> > > > create procedure MyProc ( InParam1 integer )
> > > > returns ( OutParam1 integer, OutParam2 as varchar(10))
> > > > as
> > > > begin
> > > > for select Field1, Field2 from MyTable
> > > > where TheKey = :InParam1
> > > > into :OutParam1, :OutParam2
> > > >
> > > > do suspend;
> > > > end
> > > >
> > > > --- In firebird-support@yahoogroups.com, "Ghanshyam"
> > > > <ghanshyam_patil@m...> wrote:
> > > > > Hello,
> > > > > When I'm trying to create a SP (Having union of 3 nested
>select
> > > > > statements) by executing the following code (The entire code
>is
> > > given
> > > > > below), it gives me an error -
> > > > >
> > > > > "Token unknown - SUSPEND"
> > > > >
> > > > > iF SUSPEND is removed, it gives error "Token unknown - END"
> > > > > i.e anything written after last SELECT is an error. May be
>last
> > > > > SELECT is having some problem. Or is there any other problem
> > > related
> > > > > to UNION?
> > > > >
> > > > >
> > > > > CREATE PROCEDURE showlocation(taxno INTEGER)
> > > > > AS
> > > > > BEGIN
> > > > > SELECT tblcountry.country || '/' || tblstate.state
>|| '/' ||
> > > > > tblcounty.county AS location ,tblcounty.countyid AS
>locid ,'1'
> > > AS
> > > > > name
> > > > > FROM tblcounty,tblstate,tblcountry WHERE
>tblcountry.countryid
> > > =
> > > > > tblstate.countryid AND
> > > > > tblcounty.stateid = tblstate.stateid AND countyid IN
> > > > > (SELECT tblcounty.countyid FROM tblcounty,tbltaxcounty WHERE
> > > > > tblcounty.countyid = tbltaxcounty.countyid AND
> > > > > tbltaxcounty.taxid=:taxno)
> > > > > UNION
> > > > > SELECT tblcountry.country || '/' || tblstate.state AS
> > > > > location ,tblstate.stateid AS locid ,'2' AS state
> > > > > FROM tblstate,tblcountry WHERE tblcountry.countryid =
> > > > > tblstate.countryid AND
> > > > > tblstate.stateid IN ( SELECT tblstate.stateid FROM
> > > > > tblstate,tbltaxstate WHERE tblstate.stateid =
>tbltaxstate.stateid
> > > AND
> > > > > tbltaxstate.taxid=:taxno)
> > > > > UNION
> > > > > SELECT country,countryid AS locid ,'3' AS country FROM
> > > tblcountry
> > > > > WHERE countryid IN ( SELECT tblcountry.countryid FROM
> > > > > tblcountry,tbltaxcountry WHERE tblcountry.countryid =
> > > > > tbltaxcountry.countryid AND tbltaxcountry.taxid=:taxno)
> > > > > SUSPEND;
> > > > > END
> > > > >
> > > > >
> > > > > Thanx in advance for any help.
> > > > >
> > > > > Regards,
> > > > > Ghanshyam.
> > >
> > >
> > >
> > > To unsubscribe from this group, send an email to:
> > > firebird-support-unsubscribe@yahoogroups.com
> > >
> > >
> > >
> > > Your use of Yahoo! Groups is subject to
>http://docs.yahoo.com/info/terms/
> > >
> > >
>
>
>
>To unsubscribe from this group, send an email to:
>firebird-support-unsubscribe@yahoogroups.com
>
>
>
>Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
>
>
Hotmail messages direct to your mobile phone http://www.msn.co.uk/msnmobile