English 中文(简体)
PL/SQL PLS-00103 on adding two variables
原标题:
  • 时间:2009-11-21 09:56:07
  •  标签:
  • oracle
  • plsql

i m new to pl/sql and trying to print even numbers up till 100 using the following code:

Declare
    i number;
    sum number:=0;
    x number:=2;
    n number;
Begin
    for i in 1..100 loop
        if (i%x=0) then
            n:=i;       
            sum:=sum+n;
        end if;
    end loop;
    dbms_output.put_line(sum);
end;

i get this error

ERROR at line 10:
ORA-06550: line 10, column 12:
PLS-00103: Encountered the symbol "+" when expecting one of the following:
(
ORA-06550: line 13, column 26:
PLS-00103: Encountered the symbol ")" when expecting one of the following:
( 

Help? :(

There is no % operator in PL/SQL; use the mod(i,x) function instead. Anyway, you don t need the n variable. sum:=sum+i will do. sum might be a reserved word, use s instead.

Now:

  Declare
    i number;
    sum number:=0;
Begin
    for i in 1..100 loop
        if (mod(i,2)=0) then   
                sum:=sum+i;
        end if;
    end loop;
    dbms_output.put_line(sum);
end;

sameproblem :(

问题回答

There is no % operator in PL/SQL; use the mod(i,x) function instead. Anyway, you don t need the n variable. sum:=sum+i will do. But: sum is a PL/SQL keyword, use s instead.

Declare
i number;
sum1  number:=0; 
x number:=2;
n number;
Begin
for i in 1..100 loop
if(i mod x =0)then
n:=i;  
sum1:=sum1+n;
end if;
end loop;
dbms_output.put_line(sum1);
end;
/

Reason :

The "sum" is one of the aggregate function ,so we can t use this as variable name.





相关问题
Export tables from SQL Server to be imported to Oracle 10g

I m trying to export some tables from SQL Server 2005 and then create those tables and populate them in Oracle. I have about 10 tables, varying from 4 columns up to 25. I m not using any constraints/...

Connecting to Oracle 10g with ODBC from Excel VBA

The following code works. the connection opens fine but recordset.recordCount always returns -1 when there is data in the table. ANd If I try to call any methods/properties on recordset it crashes ...

How to make a one to one left outer join?

I was wondering, is there a way to make a kind of one to one left outer join: I need a join that matches say table A with table B, for each record on table A it must search for its pair on table B, ...

Insert if not exists Oracle

I need to be able to run an Oracle query which goes to insert a number of rows, but it also checks to see if a primary key exists and if it does, then it skips that insert. Something like: INSERT ALL ...

How can I store NULLs in NOT NULL field?

I just came across NULL values in NOT-NULL fields in our test database. How could they get there? I know that NOT-NULL constraints can be altered with NOVALIDATE clause, but that would change table s ...

Type reference scope

I m studying databases and am currently working on a object-relational DB project and I ve encountered a small problem with the number of possible constraints in an object table. I m using "Database ...

OracleParameter and DBNull.Value

we have a table in an Oracle Database which contains a column with the type Char(3 Byte). Now we use a parameterized sql to select some rows with a DBNull.Value and it doesn t work: OracleCommand ...

热门标签