【发布时间】:2011-12-06 22:08:33
【问题描述】:
我在网上查看了很多教程,我看到了很多类似的问题,因为它们使用不同的 SQL 实现,所以它们并不能回答我的问题。我正在使用 SQLPlus,oracle 10g。
CREATE OR REPLACE PROCEDURE getuserid
(uname in varchar) AS
BEGIN
select accountId from "ValidClients"
where username = uname
END getuserid;
代码 'SELECT accountId 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));
EDIT2:忽略以上内容,留作后人。它不仅足以解决自己的问题,而且可以通过 Google 搜索轻松解决,并且不需要自定义答案。
【问题讨论】:
-
你说得对,我想我不这样做是很粗鲁的。已纠正。
标签: sql oracle stored-procedures