declare
n number(4);
s number(4);
i number(4);
count number(4);
begin
n:=&n;
s:=0;
count:=0;
while (n>0 AND count MOD 2 = 0)
loop
i:= n mod 10;
s:=s+i;
n:=trunc(n / 10) ;
count:=count+1;
end loop;
dbms_output.put_line('Sum of digit = ' || s);
end;
我已经尝试了但是收到了错误:
ERROR at line 12:
ORA-06550: line 12, column 23:
PLS-00204: function or pseudo-column 'COUNT' may be used inside a SQL statement
only
ORA-06550: line 12, column 8:
PL/SQL: Statement ignored
答案 0 :(得分:0)
MOD
is a function,而不是运营商。尝试:
Module Module1
Structure Car
Public carmake As String
Public carmodel As String
Public caryear As Integer
Public carlicence As String
End Structure
Sub Main()
Dim userchoice
Console.WriteLine("Choose weather to open the database(1), print it (2) or end (3)")
userchoice = Console.ReadLine()
If userchoice = "1" Then
Dim cardatabase(4) As Car
Console.WriteLine("This will allow you to view the database.")
Console.WriteLine("Please enter the car make,licence,model and year")
cardatabase(1).carmake = Console.ReadLine()
cardatabase(1).carlicence = Console.ReadLine()
cardatabase(1).carmodel = Console.ReadLine()
cardatabase(1).caryear = Console.ReadLine()
ElseIf userchoice = "2" Then
Console.WriteLine("The database is,")
ElseIf userchoice = "3" Then
Console.WriteLine("Thanks for using this program.")
End If
Console.ReadLine()
End Sub
End Module
答案 1 :(得分:0)
您必须重命名COUNT变量,因为它是Oracle中的保留字。
但我不确定你的逻辑是否合适。
第一步 - cnt=1, mod (cnt,2) = 1
,你在循环中
第二步 - while
,您不会进入循环内部,IF MOD(cnt,2) = 0 THEN ....
将会结束。也许你应该做count
我将cnt
重命名为foreach (int numImages in array)
{
for (int i = 1; i <= numImages; i++)
{
CreateImage();
}
}
答案 2 :(得分:0)
计数应该是“计数”bcz它是中的保留字条件,而不正确。如果在n = 150以下的样本中,结果将为零
declare
n number(4);
s number(4);
i number(4);
"count" number(4);
begin
n:=150;
s:=0;
"count":=0;
while (n>0)
loop
i:= n mod 10;
s:=s+i;
n:=trunc(n / 10) ;
if ("count" MOD 2 = 0)
then
"count":="count"+1;
end if;
end loop;
dbms_output.put_line('Sum of digit = ' || s);
end;