pl/sql写一个存储过程,实现按名字查询数据库,将查到的值(比如说有ID,NAME,PASSWORD等)传出给JAVA

 我来答
笑年1977
2011-03-22 · TA获得超过7.2万个赞
知道大有可为答主
回答量:2.2万
采纳率:81%
帮助的人:1.2亿
展开全部
/*SQL 存储过程,这是带参数的调用*/
create proc Findname
@name varchar(255)
as
select ID,NAME,PASSWORD
from 数据表
where NAME=@name

/*JAVA里SQL调用*/
sql="Findname '张三' "
更多追问追答
追问
缺少into句子
追答
我是VB6.0+SQL2000,不需要into.
柠不要香菜6X
2011-03-22 · 超过21用户采纳过TA的回答
知道答主
回答量:75
采纳率:0%
帮助的人:59.8万
展开全部
create or replace procedure pc_get(
in_name in varchar,
id out int,
name out varchar,
password out varchar
)
is
begin
select tb.id,tb.name,tb.password into id,name,password from tab tb where tb.name=in_name;
end;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
在看一姑娘
2011-03-22 · 超过11用户采纳过TA的回答
知道答主
回答量:61
采纳率:0%
帮助的人:25万
展开全部
你这需求需要用存储过程么?完全没必要啊。最简单的dao不就行了?
追问
我这个是培训,主要是练习怎么用存储过程,能帮帮忙吗
追答
CREATE OR REPLACE PROCEDURE Findname
(p_Name in out VARCHAR ,p_ID out VARCHAR ,p_PASSWORD out VARCHAR )
AS
BEGIN
select ID,NAME,PASSWORD
into p_ID,p_Name,p_PASSWORD
from AAA a
where a.Name = p_Name;
End Findname;

java调用:注意上面的存储参数类型,第一个是in +out,后两个是out.其实即使上课没听懂,网上多找找其他例子,直接找别人给你做出来效果不好。我也是刚参加玩培训,自己的一点体会
CallableStatement state = con.prepareCall("{call findname(?,?,?)}");
state.setString(1, "q");//设置参数
state.registerOutParameter(1, Types.VARCHAR);
state.registerOutParameter(2, Types.VARCHAR);
state.registerOutParameter(3, Types.VARCHAR);
state.execute();

String a=state.getString(1);
String b=state.getString(2);
String c=state.getString(3);
System.out.println(a);
System.out.println(b);
System.out.println(c);
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式