我已經瀏覽了很多網上的教程,並且我看到了很多類似的問題,因爲他們使用不同的SQL實現,所以不回答我的問題。我正在使用SQLPlus,oracle 10g。這個簡單的(Oracle)SQL存儲過程代碼有什麼問題?
CREATE OR REPLACE PROCEDURE getuserid
(uname in varchar) AS
BEGIN
select accountId from "ValidClients"
where username = uname
END getuserid;
代碼'SELECT clientId from「ValidClients」WHERE username ='testname'; '正常工作,所以我不明白我做錯了什麼使SQLPlus給我一個編譯錯誤。
編輯:沒有INTO子句是答案,謝謝大家幫助。一方面可以解決問題,我可以問一下確認:一個java程序將調用這些存儲過程並嘗試將它們存儲在結果集中。以下代碼是否可以爲上述存儲過程正常工作?
CallableStatement cs = connection.prepareCall("{call getuserid(?)}");
cs.setString(1, user);
ResultSet rs = cs.executeQuery();
int userid = Integer.parseInt(rs.getString(1));
編輯2:忽略了上述內容,它爲後代保留。它不僅足以應對自己的問題,而且可以通過Google搜索輕鬆解決問題,而且不需要定製答案。
你說得對,我想我一直都很粗魯,沒有這樣做。糾正。 – buggritall