问题一: java中调用oracle无参存储过程报错.问题二: sqlplus如何exec oracle带out参数的存储过程.

问题一:java调用oracle无参存储过程(查询,仅返回一行):存储过程:CreateOrReplaceprocedurePRO_selectByIdasproidt_... 问题一:
java 调用oracle无参存储过程(查询,仅返回一行):
存储过程:
Create Or Replace procedure PRO_selectById
as
proid t_user.userid%Type;
Begin
Select t.userid Into proId From t_user t Where t.userid=1;
End; 在sqlplus调用成功,返回结果.
java代码:
CallableStatement proc = conn.prepareCall("{call PRO_selectById} "); System.out.println(proc.execute()); 这句会返回false System.out.println(proc.getString(1));这句会返回"无效的索引,改为getString(0)也同样.
问题二:
在 sqlplus 调用带out参数的存储过程,怎么写?
Create Or Replace procedure PRO_selectById(proId1 In Varchar ,proId2 Out varchar)
as
Begin
Select t.userid Into proId2 From t_user t Where t.userid=proId1;
End;
在sqlplus界面,怎么调用? 比如exec ....
非常急用. 多谢^^
谢谢二位, 在你们帮助下问题解决, 语法和控制台输出没打开, 都有问题.
系统只能选一个人, 让系统决定吧.
展开
 我来答
百度网友3a8f439
2012-05-09 · TA获得超过300个赞
知道小有建树答主
回答量:224
采纳率:100%
帮助的人:159万
展开全部
第二个问题:先申明out参数,再执行过程,记得过程中out参数前的冒号。
即:SQL> VAR PROLD2 VARCHAR;
SQL> EXEC PRO_selectById(proId1value,:PROLD2);
回车显示PL/SQL procedure successfully completed即表示执行成功。(注意proId1value表示入参的值)
追问
你好,输入 VAR PROLD2 VARCHAR;回车提示语法错误- -
追答
VAR PROLD2 VARCHAR2;

注意保证待查询的表 t_user 有记录
啊_科
2012-05-12 · TA获得超过268个赞
知道小有建树答主
回答量:284
采纳率:0%
帮助的人:127万
展开全部
set serveroutput on; ---打开控制台输出开关
declare
proId2 varchar2(20);
begin
PRO_selectById(proId1Value,proId2);
dbms_output.put_line(proId2); --输出proId2
end;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式