问题一: 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 ....
非常急用. 多谢^^
谢谢二位, 在你们帮助下问题解决, 语法和控制台输出没打开, 都有问题.
系统只能选一个人, 让系统决定吧. 展开
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 ....
非常急用. 多谢^^
谢谢二位, 在你们帮助下问题解决, 语法和控制台输出没打开, 都有问题.
系统只能选一个人, 让系统决定吧. 展开
2个回答
展开全部
第二个问题:先申明out参数,再执行过程,记得过程中out参数前的冒号。
即:SQL> VAR PROLD2 VARCHAR;
SQL> EXEC PRO_selectById(proId1value,:PROLD2);
回车显示PL/SQL procedure successfully completed即表示执行成功。(注意proId1value表示入参的值)
即:SQL> VAR PROLD2 VARCHAR;
SQL> EXEC PRO_selectById(proId1value,:PROLD2);
回车显示PL/SQL procedure successfully completed即表示执行成功。(注意proId1value表示入参的值)
追问
你好,输入 VAR PROLD2 VARCHAR;回车提示语法错误- -
追答
VAR PROLD2 VARCHAR2;
注意保证待查询的表 t_user 有记录
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询