on 2013 Oct 04 1:03 PM
declare @product_code char(10),@rowNR int,@Mrow int set i=1 select product_code,row_number() over(order by parent_id) as rowNR,parent_id into #FT_1 from product_code where parent_id='cp' //select * from #ft_1 //select @mrow=max(rowNR) from #ft_1 //select @mrow while i<=29 LOOP select @product_code=product_code from #ft_1 where i=rownr select @product_code set i=i+1 end loop select * from #t1
error loop
Request clarification before answering.
Please post proper questions. If you don't know how to phrase them in English, just write them in your own language.
I fear you mis-understand the purposes of groups like these - they aren't here to do your work for you. If you have something you can't make work - explain what the problem is, what you have tried to do to solve it yourself, exactly what error you are getting and when, together with the version of the software, OS etc that you are using.
If you just post some code and say "error loop" - you are expecting someone else to set up a test environment, run your code etc just to find out what the problem is - not many people have the time or inclination to do that. You may do better to employ a consultant with the appropriate skills or use SAP's consulting services.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I think the problem that you are having is that you are mixing WATCOM SQL with TSQL. The WHILE ... LOOP statement is WATCOM SQL whereas the TSQL variant of a WHILE statement does not use the LOOP keyword. You have been using TSQL procedures so you need to use a WHILE statement - i.e. remove the LOOP and END LOOP and add in a BEGIN ... END.
OR alternatively, switch to using WATCOM SQL.
HTH
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
My answer contains the two relevant links for the two variants of the WHILE statement. You can find all of the documentation for SQL Anywhere at http://dcx.sybase.com/index.html
You have a syntax error because you are running a series statements without any separators. You need a semi-colon between separate statements eg:
declare @product_code char(10),@rowNR int,@Mrow int set i=1; select product_code,row_number() over(order by parent_id) as rowNR,parent_id into #FT_1 from product_code where parent_id='cp'; //select * from #ft_1 //select @mrow=max(rowNR) from #ft_1 //select @mrow while i<=29 LOOP select @product_code=product_code from #ft_1 where i=rownr; select @product_code; set i=i+1; end loop
also you haven't declared i
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
declare @product_code char(10),@rowNR int,@Mrow int
declare i
set i=1
select product_code,row_number() over(order by parent_id) as rowNR,parent_id into #FT_1 from product_code where parent_id='cp'
//select * from #ft_1
//select @mrow=max(rowNR) from #ft_1
//select @mrow
while i<=29 LOOP
select @product_code=product_code from #ft_1 where i=rownr;
select @product_code;
set i=i+1;
end loop
error for set i=1
@mfkpie8: Have you read the answers by Justin and Mark? They clearly explain the problem (mixing T-SQL and Watcom-SQL syntax). And you are still mixing these dialects. Sigh.
User | Count |
---|---|
75 | |
30 | |
9 | |
8 | |
7 | |
6 | |
6 | |
5 | |
5 | |
5 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.