0
表1:編譯錯誤
id_client | XY
--------------
01 | str1
02 | str2
03 | str1
表2:
id_client | id_something
-------------------
02 | 32
02 | 48
01 | 32
表3:
id_something | name
--------------------
48 | john
32 | george
我想要寫這需要的XY
一個從表1的值作爲程序一個論點,並給出了我最大的id_something
我的name
我表2。我有這樣的代碼:
CREATE or REPLACE PROCEDURE myprocedure(XYvalue in VARCHAR2(100))
is
cursor countsCursor is select id_something, count(*) count
from table1 join table2 using (id_client)
WHERE XY=XYvalue
group by id_something;
cnt countsCursor%ROWTYPE;
max NUMBER;
idMax table2.id_something%TYPE;
maxName table3.name%TYPE;
BEGIN
max := 0;
open countsCursor;
loop
fetch countsCursor into cnt;
exit when countsCursor%NOTFOUND;
IF (cnt.count > max) THEN
max := cnt.count;
idMax := cnt.id_something;
END IF;
END loop;
select name into maxName from table3 where id_something = idMax;
if (max = 0) THEN
dbms_output.put_line('No id found');
else
dbms_output.put_line('Most occured is ' || maxName || ', with count: ' || max || '.');
END;
/
這是其中了,不能弄清楚什麼是問題的錯誤:
1/59 PLS-00103: Encountered the symbol "(" when expecting one of the following:
:= .) , @ % default character
The symbol ":=" was substituted for "(" to continue.
3/71 PLS-00103: Encountered the symbol "JOIN" when expecting one of the following:
, ; for group having intersect minus order start union where
connect
我希望你能明白我試圖解釋。
謝謝,我沒有在我的代碼中使用'count',它只是作爲一個解釋,我也嘗試了'VARCHAR2'沒有最大長度,但我用'max'作爲變量名稱,這是問題所在,它現在工作正常。 –